6

コア サービスを使用して OrganizationalItemData オブジェクトの権限設定のリストを作成しており、CME で権限を明示的に設定するタイミングを確認するためのヘルプを探しています。

質問

組織アイテムが与えられ、その共有、ローカライズ、およびアクセス許可の継承設定がわかっている場合、(CME のProperties>でSecurity) アクセス許可を明示的に設定する必要があるのはいつですか?

API の詳細

以下OrganizationalItemData orgItemを確認できるとします(ドキュメントの詳細を参照)。

  • IsShared
    アイテムが現在のコンテキスト Publication で共有されているかどうかを取得または設定します。

  • IsLocalized
    項目が現在のコンテキスト Publication でローカライズされているかどうかを取得または設定します。

  • IsPermissionsInheritanceRoot
    項目自体に権限が指定されている場合は true 。それ以外の場合は false、アイテムが親アイテムからアクセス許可を継承する場合。

サンプルコード

コア サービスを使用して、特定の CMS の権限設定を確認できます。例えば:

var CreatedHere = !orgItem.BluePrintInfo.IsShared.GetValueOrDefault();
var IsLocalized = orgItem.BluePrintInfo.IsLocalized.GetValueOrDefault();
var PermissionsFromParent = !orgItem.IsPermissionsInheritanceRoot.GetValueOrDefault();

特定の組織アイテムのアクセス許可を出力したいと考えていますが、CMS 管理者が実際にパブリケーションでプロパティを設定する必要がある場合の指示も出力したいと考えています。たとえば、CMS Test に対してスクリプトを使用して、CMS Production が必要とする可能性があるものを示すことができます。

シナリオ

これがその真相です(と思います)。

Shared  Local(ized)  PermissionsRoot  Set here?
No      No           No               No, set in parent in this Publication.
No      No           Yes              Yes, set in this "local" item.
No      Yes          No               Not possible. Can't localize non-shared item. 
No      Yes          Yes              Not possible. Can't localize non-shared item. 
Yes     No           No               No, set in parent item in higher Publication. 
Yes     No           Yes              No, set in this item but in a higher publication. 
Yes     Yes          No               No, set in parent item in this Publication. 
Yes     Yes          Yes              Yes

これらのオプションについての私の理解は間違っているかもしれませんが、これまでのところ、明示的に権限を設定する必要があるのは次の 2 つのシナリオだけです。

  1. パーミッション ルートである非共有 (ローカル) アイテムの場合 (Inherit Security Settings from Parentオフ)
  2. パーミッション ルートである、ローカライズされた共有アイテムの場合。

適切なシナリオがありますか、または上記の 2^3 シナリオで何か不足していますか?

4

1 に答える 1

5

私はあなたが正しいアルビンについてそれを持っていると思います。

まず第一に、あなたがパーミッションを持つことができる唯一の場所は継承ルートにあります。次に、通常のブループリントルールが適用されます。

私はこれをジグザグの矢印の付いた図として描いていました。これは、権限の検索を示しています。

(あなたが何かを理解しようとしているフォルダだと想像してください)

  1. 私はローカル継承ルートですか?いいえ-探し続けます
  2. OK-BluePrintingが適用されるので、おそらく私は共有フォルダーであり、bluePrintingを介した継承ルートですか?いいえ?OK-見続けて、
  3. では、ツリー内の私の上のフォルダはどうですか?そこに許可はありますか?ローカル継承ルートですか?BluePrintingによる継承ルートですか?いいえ、探し続けてください
  4. など、一番上まで

したがって、テーブルを見てください。「Permissions root」がfalseであるものはすべて、独自のパーミッションを持つことができないため、これらのそれぞれに対して、正しくないか、不可能であるかのどちらかです。継承ルートである組織アイテムの場合、次の質問は、それらがローカル/ローカライズされているか、それとも共有されているかです。繰り返しますが、これは正しいようです。

私が言及する注意点は1つだけです。それは、おそらく「ローカライズ」が2番目の列の間違った名前であるということです。代わりに「ローカル」と言います。アイテムが共有されていない場合、そのアイテムはローカルです。これは、別のパブリケーションの共有アイテムからローカライズされているか、このパブリケーションでローカルに作成されていることが原因である可能性があります。スクリプトまたはプログラムされたアプローチでは、両方のシナリオに対応する必要があることを理解していると思います。

于 2012-11-08T22:29:19.040 に答える