我即将结帐/评估Symphony3的ACL功能。即使每个人都建议使用选民,我也不确定它是否符合我的需要,所以我决定深入挖掘这个主题。正如我在Source和API-Documentation中发现的那样,我遇到了两种方法:
getParentAcl()
setParentAcl(AclInterface $acl = null)
这些方法是创建权限的层次结构,还是出于其他目的而存在?
我想拥有的是一个“权限树”,就像那样:
+ registered User [VIEW, VOTE]
|
+-+ authorized User (level 1) [FLAG, UN- and PUBLISH]
|
+ authorized User (level 2) [EDIT, DELETE]
以便权限从父对象总结。从上面的示例中,»授权用户(级别2)«应具有所有权限(VIEW,VOTE,FLAG,...,DELETE)。
总而言之:理念是将某些权限分配给一个角色,该角色可以相互继承,并使用RoleSecurityIdentity在类级别上分配权限。
symfony3的ACL父/子关系是否意味着做这些事情?
我感谢任何帮助,并对一些详细的文档感到高兴!
向前谢谢!
答案 0 :(得分:0)
PermissionGrantingStrategy首先检查所有对象范围的ACE。如果不适用,则将检查类范围ACE。如果不适用,则将使用父ACL的ACE重复该过程。如果不存在父ACL,则将引发异常。 Process for Reaching Authorization Decisions