2

我正在使用这个包https://github.com/spatie/laravel-permission来获取角色和权限。在我的应用程序中,我有几个角色,例如:

  1. 用户
  2. 雇主
  3. 店主
  4. 供应商

根据信任级别,我希望每个特定角色的人只能访问特定权限。对于user具有 id角色的用户,7我希望他或她拥有editor“购物”权限,并且没有其他权限。

65同一角色的另一个 id 用户user可以拥有editor,'shopping ,'edit profile,'view maps' 权限。

当我查看文档时https://docs.spatie.be/laravel-permission/v3/basic-usage/role-permissions/

可以为特定角色的用户授予与同一角色的其他用户不同的权限吗?

4

2 回答 2

3

像这样。?

您可以管理的特定用户角色和权限

$user = User::find(7);

$user->assignRole("user"); // assign role to that user

$user->givePermissionTo(['editor','shopping']); // for giving permission to user

$user->revokePermissionTo(['editor','shopping']); // for revoke permission to user

$user = User::find(65);

$user->assignRole("user"); // assign role to that user

$user->givePermissionTo(['editor','shopping','edit profile']); // for giving permission to user

$user->revokePermissionTo(['editor','shopping','edit profile']); // for revoke permission to user

于 2020-01-29T12:06:05.607 回答
1

您可以为此使用直接权限

从文档:

可以向任何用户授予权限:

$user->givePermissionTo('edit articles');

// You can also give multiple permission at once
$user->givePermissionTo('edit articles', 'delete articles');

// You may also pass an array
$user->givePermissionTo(['edit articles', 'delete articles']);

可以撤销用户的权限:

$user->revokePermissionTo('edit articles');

//Or revoke & add new permissions in one go:    
$user->syncPermissions(['edit articles', 'delete articles']);

在你的情况下:

// assign the role to the user
$user->assignRole('user');

// assign the permissions to the user
$user->givePermissionTo(['editor', 'shopping', 'edit profile', 'view maps']);
于 2020-01-29T12:05:58.973 回答