仅允许Sitecore用户在Workflow中查看自己的项目

时间:2011-05-20 15:18:05

标签: sitecore sitecore6

有没有办法允许用户查看工作流程,但只允许他们在工作流程中查看自己的项目?

这似乎是一个常见的问题。您拥有大量内容创建者,您只希望他们看到他们的内容在工作流程中的移动方式,而不是其他人创建的内容。

可能的(近似和混乱)解决方案: 我能想到的唯一可能是关闭权限继承,以便我可以明确拒绝查看工作流权限。然后,通过工作流中的自定义操作,我可以明确打开用户提交的每个项目的查看权限。

我是否在正确的轨道上?我希望不是。 ;)

问题澄清: 我希望审批人看到一切,但我希望作者打开工作流程,只看到他们自己的项目,而不是其他作者的数十项。

2 个答案:

答案 0 :(得分:3)

这不是默认行为,因为工作流程的常见用途是批准过程。在这种情况下,审批小组将登录并查看等待创作团队批准的项目,如果他们只能看到他们创建的项目,那么他们根本看不到任何内容。

我能想到的一种方法是覆盖工作箱应用程序的代码。看一下这个文件Website \ sitecore \ shell \ Applications \ Workbox \ Workbox.xml和它的codebeside类Sitecore.Shell.Applications.Workbox.WorkboxForm。如果你把自己的类放在这里,你可以将你需要的所有逻辑添加到'GetItems'方法。

答案 1 :(得分:2)

从另一个角度对此进行攻击,如果您想要了解作者是否已批准其项目,而不是让他们访问工作箱,为什么不将自定义的电子邮件操作添加到已批准的状态(或批准)命令)以便作者在其项目获得批准后收到电子邮件。您还可以自定义电子邮件,使其包含指向已批准项目的链接或包含项目的详细信息,以便作者可以识别单个项目(如果他们已创作多个项目)。

Sitecore.Kernel程序集中的 Sitecore.Workflows.Simple.EmailAction 类中有一个示例电子邮件操作,您可以将其用作自定义的基础。

如果您想确保在特定时间范围内批准所有项目,您还可以使用ASR shared source module生成有关在特定时间范围内未获批准的项目的报告,并让它自动通过电子邮件发送给您定期报告。