如果用户既是作者又是发布者,则为greyout发布选项 - sitecore

时间:2014-10-09 21:50:36

标签: security sitecore publish sitecore7 email-notifications

我有一个要求,即如果用户既是内容作者又是发布者,如果该用户创建内容,则不应给予他发布的机会。因此,当我向发布商组发送电子邮件时,我将检查用户是否是提交者,如果他是,我将不会发送电子邮件。我认为需要的另一件事是灰显出版选项。这可以通过代码完成吗?我认为设置访问权限在这种情况下不起作用。任何意见/想法都赞赏。

谢谢, TG

1 个答案:

答案 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();
                }
            }
        }
    }
}