我有多个页面,一个用户可以在其中扮演多个角色。但是我无法在Spatie Permission中获得用户的分页角色。我怎样才能获得Spatie许可,如下所示:
Page | Role | User |
------------------------
A | Admin | 1 |
B | Member | 1 |
A | Cashier| 2 |
答案 0 :(得分: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);
}