Symfony 3 - ACL父/子关系

时间:2016-05-23 08:56:43

标签: inheritance acl symfony

我即将结帐/评估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父/子关系是否意味着做这些事情?

我感谢任何帮助,并对一些详细的文档感到高兴!

向前谢谢!

1 个答案:

答案 0 :(得分:0)

  

PermissionGrantingStrategy首先检查所有对象范围的ACE。如果不适用,则将检查类范围ACE。如果不适用,则将使用父ACL的ACE重复该过程。如果不存在父ACL,则将引发异常。   Process for Reaching Authorization Decisions