在Sitecore中,如何隐藏用户工作箱中的某些状态?

时间:2011-10-27 15:09:09

标签: workflow sitecore sitecore6

假设我在Sitecore中有一个具有以下状态的工作流程:

  • 草案
  • 管理层审核
  • IT审核
  • 企业评论
  • 已批准

我希望IT小组中的用户只能在他们访问工作箱时看到“按IT审核”状态的项目。现在我通过拒绝所有其他州的读取权限来做到这一点。这很好用。 IT用户只能看到处于其状态的项目。

然而,这有一个有趣的副作用。由于IT用户在查看该项目的历史记录时对其他状态没有“读取”权限,因此说明如下:

从何而来?至 ?在11/27/11 搬了?由IT于2011年10月27日审核

似乎用户无法看到其他状态的名称,因为他没有读取权限。这是预期的行为吗?还有其他方法可以将状态保持在用户的工作箱之外吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试执行的操作是覆盖Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl实现。

  1. 将WorkboxHistory.xml从\sitecore\shell\Applications\Workbox复制到\sitecore\shell\override
  2. 创建一个继承自Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl的类,并通过将其包装在安全禁用程序中来覆盖OnLoad

    protected override void OnLoad(EventArgs e) { using(new SecurityDisabler()) { base.OnLoad(e); }}

  3. \sitecore\shell\override\WorkboxHistory.xml中更改对新实施的引用:

    ...inherits="Custom.Workbox.WorkboxHistoryXmlControl,Custom">

  4. 我没有测试过,但它应该有用。