1

在我的 Sitecore 工作箱中,管理员可以从工作箱执行“批准”、“拒绝”操作。默认情况下,工作框显示“全部批准”、“全部拒绝”按钮。有没有办法通过配置安全性来控制对某些角色的这些“全部”按钮的访问?

4

1 回答 1

6

没有简单的方法,因为这些所有按钮总是与选定的按钮一起呈现。我知道的唯一方法是覆盖呈现这些按钮的类。

您需要\sitecore\shell\Applications\Workbox\Workbox.xml在这一行中找到文件并将基类更改为您自己的类:

<CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxForm,Sitecore.Client"/>

我创建了一个,它总是隐藏所有按钮:

public class WorkboxForm : Sitecore.Shell.Applications.Workbox.WorkboxForm
{
    protected override void DisplayState(global::Sitecore.Workflows.IWorkflow workflow, global::Sitecore.Workflows.WorkflowState state, global::Sitecore.Data.DataUri[] items, System.Web.UI.Control control, int offset, int pageSize)
    {
        base.DisplayState(workflow, state, items, control, offset, pageSize);

        if (control.Controls.Count > 0)
        {
            var borderControls = control.Controls[control.Controls.Count - 1].Controls;
            for (var i = 0; i < borderControls.Count; i++)
            {
                if (i % 2 == 1)
                {
                    borderControls[i].Visible = false;
                }
            }
        }
    }
}

= 其余答案说明如何管理对工作流状态按钮的访问 =

您可以在安全编辑器中定义对这些按钮的访问。

首先以管理员身份登录Sitecore Desktop 转到开始->安全工具->安全编辑器。选择角色并单击按钮:

在此处输入图像描述

确保选中此复选框:

在此处输入图像描述

然后在安全编辑器中转到/sitecore/system/workflows并为您的工作流程配置访问权限:

在此处输入图像描述

根据 工作流程参考

3.4工作流程和安全

Sitecore 定义了三个特定于工作流的访问权限。

  • 工作流状态删除— 控制用户是否可以删除当前与特定工作流状态关联的项目
  • 工作流状态写入— 控制用户是否可以更新当前与特定工作流状态关联的项目。
  • 工作流命令执行— 控制是否向用户显示特定的工作流命令。
于 2013-09-12T06:59:39.997 回答