1

複数サイト、複数言語のソリューションがあります。私たちは特定のサイト (サイト A) を持っており、英語を「マスター」言語として使用したいと考えており、それを他のさまざまな言語に翻訳して公開しています。たとえば、フランス語の編集者がフランス語以外の言語で編集および公開できないようにしたいと考えています。

ただし、フランス語の編集者は、ソリューションの別の部分 (サイト B) で作業するために、英語とフランス語の両方の読み取り/書き込みアクセス許可を持っているため、これらを使用して、サイト A でどのアクセス許可を持っているかを直接指定することはできません。また、継承の削除のみを使用して役割のアクセス許可を制限し、明示的な拒否は行わないため、アクセス許可は累積されます。

関連する役割が割り当てられた言語固有のワークフローを作成して、この編集者が他の言語でアイテムを編集または公開できないようにすることはできますか?

注: この編集者がすべての言語で発行できても問題ありませんが、「発行可能」状態に移行した言語バージョンのみを発行でき、外国語バージョンを自分で発行可能にすることはできません (したがって、彼が発行した場合、たとえばドイツ語版の場合、それは完成した公開可能なバージョンであり、進行中の作業ではありません)。

編集: 明確にするために、編集者がそのサイトの所有権を持っている 1 つの言語でのみ編集でき、他のバージョンを公開できない限り、編集者がアイテムのすべての公開可能なバージョンを公開できてもかまいません。

そうでない場合、この問題に対する標準/ベスト プラクティスの解決策はありますか?

4

3 に答える 3

4

web.config で次の設定を変更することにより、ユーザーが読み取り/書き込みアクセス権を持つアイテムのみを Sitecore に発行させることができます:

Publishing.CheckSecurity = true
Publishing.RequireTargetDeleteRightWhenCheckingSecurity = false

デフォルトまたはカスタムのアクセス権を使用して、ユーザーがアイテムを公開できるかどうかを制御する

これは、役割と権限を細かく分ける必要があることを意味します。つまり、サイト 1 の英語の編集者、サイト 1 のフランス語の編集者、サイト 2 の英語の編集者などに別の役割が必要になります。

編集:上記の説明をありがとう、私はあなたの問題がどこにあるのかを見ることができます. 上記のコメントで述べたように、公開ダイアログの言語オプションを非表示/無効にできるかもしれません。見てみるSitecore.Shell.Applications.Dialogs.Publish.PublishFormと、予想通り、複製する必要があるプライベートメソッドがいくつかありBuildLanguages()ますが、必要なものを取得するために独自のロジックを追加できます。カスタムロジックを指すようにコードビサイドを複製sitecore\shell\Applications\Dialogs\Publish\Publish.xmlして変更するだけです。sitecore\shell\Override

通常、システム テンプレートにフィールドを追加するのは嫌いですが、別のフィールドを追加し/sitecore/templates/System/Languageて、どのロール/ユーザーがその言語を公開できるかを指定することもできます。これには、アカウントセレクターフィールドを使用できます。

于 2013-02-25T19:26:37.187 に答える
0

ワークフロー アクションにセキュリティを設定して、特定のユーザーによるアクションの実行を防止できます。それでも問題が解決しない場合 (同じワークフローが関係しているため)、いつでも自分でワークフロー アクションの実装に戻ることができます。これは簡単です。

于 2013-02-25T22:18:12.170 に答える