Laravel Gate ::在创建SuperAdmin之前不起作用

时间:2019-07-08 07:55:47

标签: laravel flask-superadmin

在authserviceprovider中使用gate :: before进入如下所示的启动功能

Gate::before(function (Admin $user, $ability) {
                          if ($user->isSuperAdmin('Super-admin')){
                                 return true;
                                }
                            });

然后在如下所示的管理模型中给出定义isSuperAdmin()方法

public function isSuperAdmin($ability){
                              foreach (\auth()->user()->roles as $role){
                               foreach ($role->permissions as $permission){
                                  return $permission->name == $ability;}}}

但是superAdmin仍然受到限制

1 个答案:

答案 0 :(得分:2)

 Gate::before(function (Admin $user, $ability) {
        return $user->hasRole('Super-admin') ? true : null;
    });

我认为这就足够了。无需foreach,权限检查和其他功能。