Copyright© 2017  Aiprovide Corporation all Right Reserved.

  • Aiprovide Coroporation
  • Aiprovide Corporation

ユーザーが特定のロールを所有しているかを調べる[オンライン・オンプレ]

2017/05/07

SharePointの業務システムにおいて、ユーザーが保有する役割(ロール)を調べる際に、アクセス許可レベルを保有しているかで判断する場合があります。ユーザーが保持するアクセス許可レベルを取得する方法について記載します。

アクセス権制御に使用するメソッド・プロパティ

に記載したように、任意のユーザーがコンテンツに対し「読取り」「書込み」等の特定の権限を有しているかは、アクセス権を調べることで行います。

 しかし、業務システムにおいて、ユーザーが業務における特定の役割(ロール)を保持しているかにより、処理内容を変える場合があります。例えば、同じ「管理者」と言っても、業務上の管理者とシステム上の管理者を分ける場合などがあります。

この際、ユーザーが保持する役割を知るために、通常、以下の方式を取ります。

 

(1)役割毎のSharePointグループを作成し、ユーザーをメンバーとする。

(2)役割毎のアクセス許可レベルを作成し、ユーザーに付与する。

 

(1)にて、ユーザーが特定のSharePointグループに所属するかどうかで、ロールを保持しているかを判断する方法もあります。

(2)のアクセス許可レベルを使用する方法は、同一のアクセス許可レベルを複数のSharePointグループに付与することが可能なため、(1)よりも広範囲に役割を設定することが可能です。

 業務システムの開発においては、システム要件に合わせて上記の2方式を組み合わせて使用します。

尚、通常は制約として、アクセス許可レベルはSharePointグループにのみ付与し、ユーザー自身やActive Directory セキュリティグループに直接付与することはないことを前提とします。

 

 ここでは、アクセス許可レベルを使用した場合に、ユーザーが特定のアクセス許可レベルを保持しているかを調べる方法について記載します。

 

1.オンプレ

 

 現在のログインユーザーが、そのサイト、リスト、リストアイテムにおいて保持している全ロールは、AllRolesForCurrentUser プロパティにより知ることができます。取得した全ロールの中に、保持すべきロールがあるかどうかで、ログインユーザーが特定のロールを保持しているかを判断します。

 

 

特定のユーザーがロールを保持しているかは、サイト、リスト、リストアイテムの RoleAssignments プロパティにより、それらに設定されている全ロールを調べることにより行います。次に、記載するオンラインと同様になります。

 

 

 

2.オンライン

 

 オンラインでは、AllRolesForCurrentUser に相当するものが存在しないため、RoleAssignments プロパティにより、サイト、リスト、リストアイテムにてSharePointグループに対して設定されている全ロールを取得し、その中から、保持すべきロールがあるかを判断します。

 以下の例では、ユーザーが所属するSharePointグループが事前に分かっていることを前提としています。

 

 

以上となります。

 

 

 

 

Share on Facebook
Share on Twitter
Please reload

RECENT POST
Please reload