所以伙计们,
我一直在使用Laravel 5
创建我的新网络应用程序,用于管理各个学校的评论。我已经决定将Cartalyst Sentinel
包用于RBAC。
到目前为止,我已设置了4个角色:Administrator
,Principal
,Staff
,User
Administrator
可以在整个网络应用程序中执行任何操作,例如添加学校,用户和评论等。Principal
可以在Staff
分配的学校上添加/删除Reviews
和Administrator
。请注意,Principal
只能将现有User
作为Staff
分配到学校。 Staff
可以Reviews
或Administrator
Principal
添加到他所分配的学校
User
是默认角色,在整个系统中没有多少权限。 我使用的流程Administrator
会在系统中创建默认情况下已分配User
角色的用户。然后他创建schools
,保存school
后,他会将User
个用户指定为Staff
或Principal
。
我遇到的问题: Sentinel
中的角色适用于应用程序级别,但在我解释我的Web应用程序时,我还需要Entity
个别用户的级别权限。因此,对于User A
,Principal
School X
为Staff
,但School Y
可能Entity
。
我应该如何在Sentinel中处理它?通过引入User
/ Permission
映射表,还是应该使用基于Permission
的访问权限?如果它是基于{{1}}的访问权限,那么针对给定学校的用户ID分配检查将在何处编程?
希望我的问题不是太宽泛 - 如果需要,我会尝试进一步缩小范围。事实是我已经搜索了好几个小时,但我无法正确地检查是否应该执行某项操作 - 比如检查用户是否是工作人员"或者通过检查用户是否可以编辑"。