ObjectIdentity 的父对象是什么?

What is the parent of an ObjectIdentity?

我正在尝试了解 ACL 的内部工作原理。生成的数据库模式包括 acl_object_identities table 的 parent_object_identity_id 列 我找不到任何关于 ObjectIdentity 的父级的信息,它甚至不在接口的定义中.这是什么?

同理,ObjectIdentity的祖先是什么?我认为它与 ObjectIdentity 的父对象是同一回事,但我不知道它是什么。

如果设置了 parent_object_entity_id,这将指向在同一 table 中找到的父对象标识 ID。当没有使用父对象标识时,此列将设置为 NULL.

这是为了 "chain" 实体 ID 在一起,它允许您创建更高效​​的 ACL(而不是创建许多 ACE,它们可以全部使用相同的父代)。

考虑一个包含主题和博文的论坛。版主只能审核特定主题的博文,不能审核其他主题。通常,这意味着您将在主题中的每篇博文中添加所有者的 ACE,以及​​版主的 ACE。

如果我们有多个版主,这可能会导致每篇博文都有很多 ACE。相反,我们在主题实体上创建一个主持人 ACE,并且 "chain" 所有博文博文 ACL 到给定主题 ACL。这节省了 ACLS 上的大量重复和维护工作。尤其是在添加新版主时(您只需要更新一个主题 ACL,而不是所有博文 ACL 等)。