私の Sitecore ワークボックスでは、管理者はワークボックスから「承認」、「拒否」アクションを実行できます。デフォルトでは、ワークボックスには「すべて承認」、「すべて拒否」ボタンが表示されます。セキュリティを構成して、特定の役割のこれらの「すべて」ボタンへのアクセスを制御する方法はありますか?
1 に答える
これらのすべてのボタンは常に選択されたボタンと一緒にレンダリングされるため、簡単な方法はありません。私が知っている唯一の方法は、これらのボタンをレンダリングするクラスをオーバーライドすることです。
\sitecore\shell\Applications\Workbox\Workbox.xml
ファイルを見つけて、この行の基本クラスを独自のクラスに変更する必要があります。
<CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxForm,Sitecore.Client"/>
常にすべてのボタンを非表示にするものを作成しました。
public class WorkboxForm : Sitecore.Shell.Applications.Workbox.WorkboxForm
{
protected override void DisplayState(global::Sitecore.Workflows.IWorkflow workflow, global::Sitecore.Workflows.WorkflowState state, global::Sitecore.Data.DataUri[] items, System.Web.UI.Control control, int offset, int pageSize)
{
base.DisplayState(workflow, state, items, control, offset, pageSize);
if (control.Controls.Count > 0)
{
var borderControls = control.Controls[control.Controls.Count - 1].Controls;
for (var i = 0; i < borderControls.Count; i++)
{
if (i % 2 == 1)
{
borderControls[i].Visible = false;
}
}
}
}
}
= 回答の残りの部分は、ワークフロー状態ボタンへのアクセスを管理する方法を示しています =
これらのボタンへのアクセスは、Security Editorで定義できます。
最初に管理者としてSitecore デスクトップにログインし、 [スタート] -> [セキュリティ ツール] -> [セキュリティ エディター]に移動します。役割を選択し、[列] ボタンをクリックします。
次のチェックボックスがオンになっていることを確認します。
次に、Security Editorで、ワークフローのアクセス権を/sitecore/system/workflows
設定します。
ワークフローリファレンスによると :
3.4ワークフローとセキュリティ
Sitecore は 3 つのワークフロー固有のアクセス権を定義しています。
- ワークフロー状態の削除— 特定のワークフロー状態に現在関連付けられているアイテムをユーザーが削除できるかどうかを制御します
- Workflow State Write — 特定のワークフロー状態に現在関連付けられているアイテムをユーザーが更新できるかどうかを制御します。
- ワークフロー コマンドの実行— ユーザーに特定のワークフロー コマンドを表示するかどうかを制御します。