我有一个要求,即如果用户既是内容作者又是发布者,如果该用户创建内容,则不应给予他发布的机会。因此,当我向发布商组发送电子邮件时,我将检查用户是否是提交者,如果他是,我将不会发送电子邮件。我认为需要的另一件事是灰显出版选项。这可以通过代码完成吗?我认为设置访问权限在这种情况下不起作用。任何意见/想法都赞赏。
谢谢, TG
答案 0 :(得分:0)
如果发布商创建或修改内容,您是否尝试取消审批流程?如果是这样的话,我会有两个处于草稿状态的命令,提交给非发布者的提交和发布,这些命令只会显示给发布者并让它在执行时进入最后阶段。
public class ValidateUser
{
public void Process(WorkflowPipelineArgs args)
{
Assert.ArgumentNotNull(args, "args");
ProcessorItem processorItem = args.ProcessorItem;
if (processorItem != null)
{
Item contextitem = args.DataItem;
Item innerItem = processorItem.InnerItem;
var contentWorkflow = contextitem.Database.WorkflowProvider.GetWorkflow(contextitem);
var contentHistory = contentWorkflow.GetHistory(contextitem);
if (contentHistory.Length > 0)
{
if (contentHistory[contentHistory.Length - 1].User == Sitecore.Context.User.DisplayName)
{
args.AbortPipeline();
}
}
}
}
}