ObjectIdentity的父级是什么?

时间:2015-07-02 16:23:18

标签: symfony acl

我试图了解ACL如何在内部工作。生成的数据库模式包含parent_object_identity_id表的acl_object_identities列,我找不到有关ObjectIdentity的父级的任何信息,它甚至不在接口的定义中。它是什么?

以同样的方式,ObjectIdentity的祖先是什么?我认为它与ObjectIdentity的父母一样,但我不知道它是什么。

1 个答案:

答案 0 :(得分:1)

如果设置了parent_object_entity_id,则会指向在同一个表中找到的父对象标识ID。如果未使用父对象标识,则此列将设置为NULL

将“实体ID”链接在一起,它允许您创建更高效​​的ACL(而不是创建许多ACE,它们都可以使用相同的父代)。

想想一个包含主题和博客帖子的论坛。主持人只能在某个主题中调整博客帖子,而不能调整其他主题。通常情况下,这意味着您将在主题中将EACH博客帖子添加为所有者的ACE,并为主持人添加ACE。

如果我们有多个版主,这可能导致每个博客帖子都有很多ACE。相反,我们在topic-entity上创建一个主持人ACE,并将所有blogpost blogpost ACL“链”到给定主题ACL。这节省了ACLS上的大量复制和维护。特别是当添加新版主时(您只需更新一个主题ACL,而不是所有博客ACL等)。