'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); $isSuperAdmin = null; if(!Schema::hasTable('users')){return;} Gate::before(function ($user)use(&$isSuperAdmin) { if($isSuperAdmin===null){ $isSuperAdmin=$user->isSuperAdmin(); } if ($isSuperAdmin) { Cache::put('isSuperAdmin', true); }else{ Cache::put('isSuperAdmin', false); } }); if(!Schema::hasTable('authorities')){return;} $authorities = Authority::with('roles')->get(); foreach($authorities as $authority) { Gate::define($authority->name, function($user) use ($authority) { if(Cache::get('isSuperAdmin')){ if($authority['permission']=='允许'){ return true; } } return $user->hasRole($authority->roles); }); } } }