即使我为用户分配了单个角色,只允许他们查看一个资源,为什么他们拥有与超级管理员相同的权限?(除了管理角色)就好像我创建的每个用户都继承了角色。我已经从 Tinker 中检查过它们,它正确地指示了他们的角色和权限。但是,他们仍然拥有比分配的权限多得多的权限。
即使我为用户分配了单个角色,只允许他们查看一个资源,为什么他们拥有与超级管理员相同的权限?(除了管理角色)就好像我创建的每个用户都继承了角色。我已经从 Tinker 中检查过它们,它正确地指示了他们的角色和权限。但是,他们仍然拥有比分配的权限多得多的权限。
确保您已运行核心 Shield 策略生成命令:
此命令为您的资源创建必要的策略并进行相应注册。这是安装 Shield 或添加新资源后必不可少的步骤。
此外,如果您需要定义自定义权限(例如
publish
,,archive
等),您可以通过实现接口直接在资源类中指定它们HasShieldPermissions
。以下是一个例子:
这使得 Shield 能够通过角色和策略识别和管理这些权限。
官方文档:
生成命令:https://filamentphp.com/plugins/bezhansalleh-shield#generate-command-options
核心命令:https://filamentphp.com/plugins/bezhansalleh-shield#core-commands
自定义权限:https://filamentphp.com/plugins/bezhansalleh-shield#custom-permissions
我输入了您告诉我的命令,因为我不想添加自定义权限,我只想创建一个唯一权限是查看资源的角色。
但是,具有该角色的用户不会对授予他们的权限做出响应;只有当他们的角色是超级用户时才会这样做。