我正在使用 Laravel Spatie 程序包,并插入了我想要的所有权限和一个管理员角色。
我正在尝试做的事情:
我正在尝试检查每条路径中的用户是否是 管理员(可以执行任何操作) ,还是不是管理员并具有一定的权限。
我尝试过的事情:
我尝试添加|
符号。
// GET ALL SEASONS
Route::get('/', 'SeasonsController@index')
-> name('index')
-> middleware(['role:admin|permission:seasons show active']);
发生了什么事与预期行为:
每当我以具有seasons show active
权限的用户身份登录时,我都会得到403 Forbidden
。
但是,如果我删除了role:admin
,则该用户将获得许可。
答案 0 :(得分:1)
最好只使用权限。
向您的角色管理员授予所有权限(季节显示为活动中...等)。 这样,您就不需要中间件中的role:admin了。
要授予您对角色管理员代码的所有权限,如下所示
$permissions = \Spatie\Permission\Models\Permission::all()
$role = \Spatie\Permission\Models\Role::where('name', 'admin')->first();
// foreach on permissions
$role->givePermissionTo($permission);
// end foreach