2014-10-09 63 views
0

我有一個要求,即如果用戶既是內容作者又是發佈者,並且此用戶創建內容時,他不應該有機會發布內容。所以在批准我發送電子郵件給發佈者組時,我要檢查用戶是否爲提交者,如果他是我不會發送電子郵件。另一件我覺得需要的是灰化發佈選項。這可以通過代碼完成嗎?我認爲在這種情況下設置訪問權限不起作用。任何輸入/想法讚賞。如果用戶同時是作者和發佈者,則使用greyout發佈選項 - sitecore

謝謝, TG。

回答

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(); 
       } 
      } 
     } 
    } 
} 
+0

仍有審批階段,其中某些其他用戶將批准該內容。也是發佈者的內容作者應該無法發佈。 – Newbie 2014-10-10 14:24:29

+0

你可以創建一個批准狀態的動作,如果上下文用戶是提交者,並且阻止它移動到下一個狀態,如驗證動作,將顯示一條消息 – navincumar 2014-10-10 18:28:10

+0

thanku ..我明白你在說什麼,但我不知道如何檢查是否用戶是行動中的提交者?我應該創建一個動作還是一個驗證動作?有沒有你可以參考的樣本?請 – Newbie 2014-10-10 19:41:53

相關問題