我正在使用核心服务为 OrganizationalItemData 对象创建权限设置列表,并正在寻求帮助确认何时在 CME 中明确设置权限。
问题
给定一个组织项目并知道它的共享、本地化和权限继承设置,我们什么时候需要显式设置它的权限(在 CME 中Properties
>下Security
)?
API 详细信息
鉴于OrganizationalItemData orgItem
我可以检查以下内容(包含文档中的详细信息)。
IsShared
获取或设置项目是否在当前上下文发布中共享。IsLocalized
获取或设置项目是否在当前上下文发布中本地化。IsPermissionsInheritanceRoot
如果为项目本身指定了权限,则为 true;否则,如果项目从父项目继承权限,则为 false。
示例代码
我可以使用核心服务检查给定 CMS 中的权限设置。例如:
var CreatedHere = !orgItem.BluePrintInfo.IsShared.GetValueOrDefault();
var IsLocalized = orgItem.BluePrintInfo.IsLocalized.GetValueOrDefault();
var PermissionsFromParent = !orgItem.IsPermissionsInheritanceRoot.GetValueOrDefault();
我想输出给定组织项目的权限,还想输出 CMS 管理员何时实际需要在其发布中设置属性的说明。例如,我可以针对 CMS Test 使用脚本来显示 CMS Production 可能需要的内容。
场景
这是它的真相(我认为)。
Shared Local(ized) PermissionsRoot Set here?
No No No No, set in parent in this Publication.
No No Yes Yes, set in this "local" item.
No Yes No Not possible. Can't localize non-shared item.
No Yes Yes Not possible. Can't localize non-shared item.
Yes No No No, set in parent item in higher Publication.
Yes No Yes No, set in this item but in a higher publication.
Yes Yes No No, set in parent item in this Publication.
Yes Yes Yes Yes
我对这些选项的理解可能是错误的,但到目前为止,我们似乎只需要为两种情况显式设置权限:
- 对于作为权限根的非共享(本地)项目(
Inherit Security Settings from Parent
未选中) - 对于作为权限根的共享本地化项目。
我是否有正确的场景和/或我在上面的 2^3 场景中遗漏了什么?