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

发布于 12-12 00:28 字数 424 浏览 0 评论 0原文

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

  • 草稿
  • 审核 由管理
  • 审核 由 IT
  • 审核 由公司
  • 审核 已批准

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

然而,这有一个有趣的副作用。由于 IT 用户在查看该项目的历史记录时没有对其他状态的读取访问权限,因此会显示以下内容:

移自?到 ? 2011 年 10 月 27 日 搬自?由 IT 于 2011 年 10 月 27 日审核

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

Let's say I have a Workflow in Sitecore that has the following states:

  • Draft
  • Review by Management
  • Review by IT
  • Review by Corporate
  • Approved

I want a user in the IT group to only see items that are in the "Review by IT" state when they go to their Workbox. Right now I am doing this by denying the Read permission to all other states. This works fine. An IT user will only see items that are in their state.

However, this has an interesting side effect. Because the IT user does not have Read access to the other states when he views the history for that item it says the following:

Moved from ? to ? on 10/27/11
Moved from ? to Review by IT on 10/27/11

It seems like the user can not see the names of the other states because he does not have Read permissions. Is this expected behavior? Is there some other way to keep states out of a user's Workbox?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薆情海2024-12-19 00:28:05

您可以尝试做的是覆盖 Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl 实现。

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

    受保护的覆盖 void OnLoad(EventArgs e) { using(new SecurityDisabler()) { base.OnLoad(e); }}

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

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

我还没有测试过它,但它应该可以工作。

What you can try doing is override Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl implementation.

  1. Copy WorkboxHistory.xml from \sitecore\shell\Applications\Workbox to \sitecore\shell\override
  2. Create a class inherited from Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl and override OnLoad by wrapping it in a security disabler:

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

  3. Change reference to your new implementation within \sitecore\shell\override\WorkboxHistory.xml:

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

I have not tested it but it should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文