我们在Sitecore中设置安全的方式是,我们有部门角色,通过继承来定义特定站点部分的安全性。例如,角色"A"对站点的一个部分具有写访问权,而角色"B"对另一个部分具有写访问权。
假设我们有一个需要附加到这些内容项的工作流。我们有特定的"功能性"角色,如"作者"或"审批者"。作者在起草内容后提交审批人,审批人在达到审批人的状态之前不能碰它,以此类推。如果我需要"Author"内容,我必须有角色"A"one_answers"Author",或者"B"one_answers"Author"。"
除了当人们需要一个部门的特定角色时,这种方法很有效。如果我需要"撰写"A"内容,并"批准"B"内容,那么我必须有角色:"A"B"作者"审批者"。问题是没有办法告诉系统他们需要被禁止"创作"B"内容,反之亦然。
似乎解决这个问题的唯一方法是拥有"A部门作者"one_answers"B部门作者"等角色,但似乎随着部门和功能的增加,这将成为维护的噩梦。对于这种看似常见的情况,Sitecore的最佳实践是什么?
谢谢。
编辑:我们使用的是Sitecore 6.4的最新版本
Sitecore支持子角色('角色中的角色'),但是,这不是您可以通过UI设置的。
你可以通过DB浏览器管理页面(/sitecore/admin/dbbrowser.aspx
)来设置这个,但是,如果你想要一些用户友好的方式来设置这个,你可能想要建立你自己的控件,通过Sitecore UI来访问。
Author
-- Dept A
-- Dept B
Approver
-- Dept A
-- Dept B
我不确定是否将此归类为常见场景。我的第一反应是鼓励你的客户/用户简化工作流程。过于复杂的工作流程会让你的用户泄气,阻碍采用。
也就是说,如何使用克隆来为每个站点部分创建工作流,您可以单独对其应用安全性?你是对的,这可能需要更多的角色。角色中的角色可以在这方面有所帮助,但最终您将尝试建模一些相当复杂的规则,不确定您将避免解决方案中的复杂性。