0

我有一个要求,如果用户既是内容作者又是发布者,并且如果该用户创建内容,他不应该有机会发布。因此,当我向发布者组发送电子邮件时获得批准,我将检查用户是否是提交者,如果他是,我将不会发送电子邮件。我觉得需要做的另一件事是将发布选项变灰。这可以通过代码完成吗?我认为在这种情况下设置访问权限不起作用。任何输入/想法表示赞赏。

谢谢,TG。

4

1 回答 1

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();
                }
            }
        }
    }
}
于 2014-10-10T06:08:44.637 回答