我有 4 种类型的用户使用我的系统:1.超级管理员2.超级管理员团队、3.管理员和 4。 管理团队成员,
因为我使用 spatie 来处理角色和权限,所以我有一组对于所有类型的用户来说都很常见的模块(权限),还有其他一组模块(权限)仅适用于超级管理员,例如付款方式等。
现在,一旦为我的数据库播种以获得许可,我是否必须全部播种一次? ['contacts','email','bids']
带有网络防护(但是我对防护的确切用法及其工作原理有点困惑),因此管理员只能从这些允许的权限中向他的团队分配权限但是,对于超级管理员,我应该使用超级管理员守卫创建其他权限集吗?我想知道什么是最佳实践。
使用案例:超级管理员首先登录系统,然后从列表中决定应授予管理员哪些权限。
2. 管理员登录系统,并将分配哪组权限将授予他的团队,但管理员将无法查看超级管理员拥有的权限列表。
我希望我已经阐明了我的观点,请让我知道实施它的适当方式。
我想您正在使用一种模型,即用户并将权限直接分配给用户。这是我的方法所以,您可以做的是,您可以首先创建一个角色并为角色授予适当的权限,然后将该角色分配给用户。
首先,为角色分配权限
现在,将角色与用户同步
这些是内置的 spatie 中间件,您可以在 app/Http/Kernel.php 中编写
现在,您可以在路由中使用“角色”中间件来保护,
所以,现在您需要获得特定角色的权限,即超级管理员或管理员。这是你可以做的,
此外,您还可以通过这种方式获取用户角色
还有一件事,对于超级管理员,您不需要从角色获得权限,您可以直接获得所有权限。而且由于超级管理员可以访问整个系统,因此您可以通过这样做绕过超级管理员的权限检查,
希望对你有帮助:)