在 Sitecore 中,如何隐藏用户工作箱中的某些状态?
假设我在 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试做的是覆盖 Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl 实现。
\sitecore\shell\Applications\Workbox
复制到\sitecore\shell\override
创建从
Sitecore.Shell.Applications 继承的类.Workbox.WorkboxHistoryXmlControl
并通过将其包装在安全禁用程序中来覆盖OnLoad
:受保护的覆盖 void OnLoad(EventArgs e) { using(new SecurityDisabler()) { base.OnLoad(e); }}
在
\sitecore\shell\override\WorkboxHistory.xml
中更改对新实现的引用:...inherits="Custom.Workbox.WorkboxHistoryXmlControl,Custom">
我还没有测试过它,但它应该可以工作。
What you can try doing is override Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl implementation.
\sitecore\shell\Applications\Workbox
to\sitecore\shell\override
Create a class inherited from
Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl
and overrideOnLoad
by wrapping it in a security disabler:protected override void OnLoad(EventArgs e) { using(new SecurityDisabler()) { base.OnLoad(e); }}
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.