在我的Sitecore工作箱中,管理员可以从工作箱执行"批准","拒绝"操作.默认情况下,工作箱显示"全部批准","拒绝所有"按钮.有没有办法通过配置安全性来控制对某些角色的这些"所有"按钮的访问?
有没有简单的方法,因为这些所有的按钮都总是一起呈现的选择按钮.我知道的唯一方法是覆盖渲染这些按钮的类.
您需要查找\sitecore\shell\Applications\Workbox\Workbox.xml文件并将此行中的基类更改为您自己的类:
<CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxForm,Sitecore.Client"/>
Run Code Online (Sandbox Code Playgroud)
我创建了一个,总是隐藏所有按钮:
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;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
=休息的答案如何管理工作流程状态按钮=
您可以在安全编辑器中定义对这些按钮的访问.
首先登录Sitecore的桌面作为管理员,进入开始- >安全工具- >安全编辑器.选择角色,然后单击" 列"按钮:

确保选中此复选框:

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

根据 工作流程参考:
3.4 工作流程和安全性
Sitecore定义了三个特定于工作流的访问权限
- 工作流状态删除 - 控制用户是否可以删除当前与特定工作流状态关联的项目
- 工作流状态写入 - 控制用户是否可以更新当前与特定工作流状态关联的项目.
- 工作流命令执行 - 控制是否向用户显示特定的工作流命令.