2012-01-23 11 views
0

編集と公開の権限を持つワークフローと2人のユーザーがいます。ユーザー1がアイテムを編集すると、アイテムはワークフローに入り、user1のワークボックスに表示されます。Sitecoreワークフロークイックアクションバーのアクセス許可

アイテムはuser2のワークボックスには表示されませんが、項目の横にあるクイックアクションバーにはワークフローの状態が表示され、user1によってロックされていてもuser2はその状態で使用可能なコマンドを実行できます。

ワークボックスが期待どおりに動作しているように見え、ユーザーが編集する項目(ワークフロー内)のみが表示されます。しかし、クイックアクションバーは、アイテムが他の誰かによってロックされているにもかかわらず、アイテムが入っている状態で利用可能なコマンドをすべてのユーザが実行できるようにします。

両方のユーザーが同じ役割のAuthorに属しています。

この問題を回避するためのアドバイスはありますか?

おかげで、

T

+0

あなたの問題は、クイックアクションバーは所有権を強制しないということですか? –

+0

はい、アイテムが別のユーザーによってロックされている場合、ワークフロー内の次の状態にアイテムを移動させることはできません。 –

答えて

0

あなたはSitecore.Shell.Applications.ContentEditor.Gutters.WorkflowStateをサブクラス化することによって、このアイコンの機能を変更することができます

public class SecureWorkflowGutterIcon : Sitecore.Shell.Applications.ContentEditor.Gutters.WorkflowState 
{ 
    protected override Sitecore.Shell.Applications.ContentEditor.Gutters.GutterIconDescriptor GetIconDescriptor(Sitecore.Data.Items.Item item) 
    { 
     if (Sitecore.Context.Item.Locking.IsLocked() == false || 
      Sitecore.Context.Item.Locking.GetOwner() == Sitecore.Context.GetUserName()) 
     { 
      return base.GetIconDescriptor(item); 
     } 
     return null; 
    } 
    } 

場合、これは、ワークフローのアイコンをレンダリングしますロックされていないか、現在のユーザーによってロックされています。

次に、コアデータベースに移動して、項目/ sitecore/content/Applications/Content Editor/Gutters/WorkflowStateフィールドのTypeを変更して、新しいクラス:YourNamspace.YourClass, YourAssemblyを参照してください。

関連する問題