我正在使用策略和门(角色-Role_User用户)向我的Laravel项目中的用户分配权限,一切正常。但是我不知道管理员帐户如何才能执行所有操作,而不必为其分配所有权限。
// AuthServiceProvider
public function boot()
{
$this->registerPolicies();
$this->registerStaffPolicies();
$this->registerTaskPolicies();
$this->registerDepartmentPolicies();
$this->registerPositionPolicies();
$this->registerPermissionPolicies();
}
public function registerStaffPolicies()
{
Gate::define('staff-view', function($user){
return $user->hasAccess(['staff-view']);
});
Gate::define('staff-add', function($user){
return $user->hasAccess(['staff-add']);
});
Gate::define('staff-edit', function($user){
return $user->hasAccess(['staff-edit']);
});
Gate::define('staff-delete', function($user){
return $user->hasAccess(['staff-delete']);
});
}
// registerTaskPolicies ...
// My route
Route::get('/staff', 'StaffController@index')->middleware('can:staff-view');
Route::get('/staff/add', 'StaffController@add')->middleware('can:staff-add');
Route::post('/staff/add', 'StaffController@add')->middleware('can:staff-add');
答案 0 :(得分:0)
您可以为管理员角色定义门拦截器。
Gate::before(function ($user, $ability) {
if ($user->isAdmin()) {
return true;
}
});