特定のユーザーに限定したサイトのさまざまな領域があります。したがって、たとえば、サイトコアロール「UK_Editor」のメンバーであるユーザーは、他のすべての国のコンテンツを表示できます(読み取りアクセスのみが可能です)。ただし、英国エリアでは、フルアクセスが可能です。
問題は、ユーザーが引き続き別の国のコンテンツに移動でき、[公開]ボタンが引き続き使用できることです。
これを制限する方法はありますか?
Sitecore v:6.5.0
Publishing.CheckSecurity構成設定を有効にすることをテストできます。これにより、ユーザーは正しい役割が適用された別のサイトのコンテンツを公開できなくなります。
<!-- PUBLISHING SECURITY Check security rights when publishing? When CheckSecurity=true, Read rights are required for all source items. When it is determined that an item should be updated or created in the target database, Write right is required on the source item. If it is determined that the item should be deleted from target database, Delete right is required on the target item. In summary, only the Read, Write and Delete rights are used. All other rights are ignored. Default value: false --> <setting name="Publishing.CheckSecurity" value="true" />
(の)クラスQueryState
のをオーバーライドできる場合がありますPublishItem
Sitecore.Shell.Framework.Commands
詳細については、この質問をお読みください。ボタンを非表示にする場合は
、戻る必要があります。CommandState.Hidden
すべての人が自分の言語でコンテンツを公開できるが、他の人では公開できないようにするには、何か賢いことを考える必要があります。
[編集]
次のようなことができるかもしれませんif (Sitecore.Context.User.IsInRole('sitecore\englisheditor') && context.Items[0].Language == Sitecore.Data.Managers.GetLanguage('en')) {return base.QueryState(context)}
。そうでなければ、CommandState.Hiddenを返すことができます。ただし、ifステートメントの2番目の部分については完全にはわかりません。
次のブログ投稿をご覧ください。コアデータベースでの公開に関連するUIアイテムをセキュリティ制御する方法について説明しています。
http://www.cognifide.com/blogs/sitecore/why-and-how-hide-publish-site-buttons-in-sitecore/