Spatie 权限:Laravel 中多个页面上的多个角色
Spatie Permission: Multiple Roles on Multiple Pages in Laravel
我有多个页面,其中一个用户可以有多个角色。但是我无法在 Spatie Permission 中获得用户的分页角色。我怎样才能像下面这样获得 Spatie 权限:
Page | Role | User |
------------------------
A | Admin | 1 |
B | Member | 1 |
A | Cashier| 2 |
使用 Spatie 设置角色和权限,然后在页面中,您需要检查相关权限,这就是它的意思。但是,您始终可以使用自己的一组自定义权限处理来扩展 Spatie。
即您可以创建一个配置文件,其中包含每个用户都可以访问的路由列表,然后添加一个辅助方法。
配置文件:
return [
ROLE_ADMIN => [
'route-name1',
'route-name2',
'route-name3',
],
ROLE_MEMBER => ['route-name2'],
ROLE_CASHIER => [],
];
权限方式:
hasPageAccess(string $role, string $routeName): bool
{
$permissions = Arr::get(config('my-page-permissions'), $role, []);
return !!array_search($routeName, $permissions);
}
我有多个页面,其中一个用户可以有多个角色。但是我无法在 Spatie Permission 中获得用户的分页角色。我怎样才能像下面这样获得 Spatie 权限:
Page | Role | User |
------------------------
A | Admin | 1 |
B | Member | 1 |
A | Cashier| 2 |
使用 Spatie 设置角色和权限,然后在页面中,您需要检查相关权限,这就是它的意思。但是,您始终可以使用自己的一组自定义权限处理来扩展 Spatie。
即您可以创建一个配置文件,其中包含每个用户都可以访问的路由列表,然后添加一个辅助方法。
配置文件:
return [
ROLE_ADMIN => [
'route-name1',
'route-name2',
'route-name3',
],
ROLE_MEMBER => ['route-name2'],
ROLE_CASHIER => [],
];
权限方式:
hasPageAccess(string $role, string $routeName): bool
{
$permissions = Arr::get(config('my-page-permissions'), $role, []);
return !!array_search($routeName, $permissions);
}