Zizaco/entrust 权限控制支持 auth guard 指定分组权限控制么?
项目里面用户Auth验证是分开的,后台用的 Auth::guard('admin')->user() 来获取用户信息,权限控制用的https://github.com/Zizaco/entrust 。
判断某个用户是否有某个权限,用如下方法写是可以的
//写法1
Auth::guard('admin')->user()->can('admin.post.create'); //true
换成这种写法就不行
//写法2
Entrust::can('admin.post.create'); //false
在blade里面这样写也是不行的
//写法3
@permission('admin.post.create')
I can create
@endpermission
调试发现,vendor/zizaco/entrust/src/Entrust/EntrustFacade.php这个函数的can里面的$this->user打印出来是null
/**
* Check if the current user has a permission by its name
*
* @param string $permission Permission string.
*
* @return bool
*/
public function can($permission, $requireAll = false)
{
if ($user = $this->user()) {
return $user->can($permission, $requireAll);
}
return false;
}
怎样才能在auth是多个分组的情况下也支持第二、三种写法呢?目前暂时用下面这个写法实现了,还有别的比较好的方法么?
//php 文件
$adminUserinfo = Auth::guard('admin')->user();
//blade 模板
@if($adminUserInfo->can('admin.post.create'))
<a>create</a>
@endif
不支持的,首先配置文件里就没有支持.
https://github.com/ScoLib/admin/blob/maste...
你可以参考一下我的这个 auth的中间件,认证时需要指定guard的
@klgd 谢谢 我看下
楼主解决了吗? 我也遇到了这个问题,求指教