はじめに
今更ですが、SharePointの【SPBasePermissions列挙型】についてまとめます。権限マスクを設定する事で、PowerShellやC#などで書いたコード上で権限制御をすることが出来ます。
権限一覧
以下の表は、SharePoint Onlineで使用されている日本語名に対応しております。
(SharePointServer 2010と比較したら少し変わっていました...)
| 権限(英語) | 権限(日本語) | マスク値 |
|---|---|---|
| EmptyMask | ー | 0 |
| ViewListItems | アイテムの表示 | 1 |
| AddListItems | アイテムの追加 | 2 |
| EditListItems | アイテムの編集 | 4 |
| DeleteListItems | アイテムの削除 | 8 |
| ApproveItems | アイテムの承認 | 16 |
| OpenItems | アイテムを開く | 32 |
| ViewVersions | バージョンの表示 | 64 |
| DeleteVersions | バージョンの削除 | 128 |
| CancelCheckout | リストの動作を無視 | 256 |
| ManagePersonalViews | 個人ビューの管理 | 512 |
| ManageLists | リストの管理 | 2048 |
| ViewFormPages | アプリケーションページの表示 | 4096 |
| Anonymous SearchAccessList |
ー | 8192 |
| Open | 開く権限 | 65536 |
| ViewPages | ページの表示 | 131072 |
| AddAndCustomize Pages |
ページの追加とカスタマイズ | 262144 |
| ApplyThemeAnd Border |
テーマと枠線の適用 | 524288 |
| ApplyStyleSheets | スタイル シートの適用 | 1048576 |
| ViewUsageData | Web Analytics データの表示 | 2097152 |
| CreateSSCSite | セルフサービス サイト作成の使用 | 4194304 |
| ManageSubwebs | サブサイトの作成 | 8388608 |
| CreateGroups | グループの作成 | 16777216 |
| ManagePermissions | ー | 33554432 |
| BrowseDirectories | ディレクトリの参照 | 67108864 |
| BrowseUserInfo | ユーザー情報の閲覧 | 134217728 |
| AddDelPrivate WebParts |
個人用 Web パーツの 追加/削除 |
268435456 |
| UpdatePersonal WebParts |
個人用 Web パーツの 更新 |
536870912 |
| ManageWeb | Web サイトの管理 | 1073741824 |
| AnonymousSearchAccessWebLists | ー | 2147483648 |
| UseClientIntegration | クライアント統合機能 の使用 |
68719476736 |
| UseRemoteAPIs | リモート インターフェイスの使用 | 137438953472 |
| ManageAlerts | 通知の管理 | 274877906944 |
| CreateAlerts | 通知の作成 | 549755813888 |
| EditMyUserInfo | 個人のユーザー情報の編集 | 1099511627776 |
| EnumeratePermissions | ー | 4611686018427380000 |
| Full Mask | ー | 9223372036854775807 |
使用例
SharePointのツールバーをカスタマイズする時に使用する[CustomAction要素]の[Rights属性]などで使用することができます。
例えば、【フルコントロール】権限のユーザーのみにツールバー上にボタンが表示されるようにしたい場合は、
<CustomAction Rights = "ManagePermissions"></CustomAction>
または、
<CustomAction Rights = "33554432"></CustomAction>
にします。
【アイテムの表示】、【アイテムを開く】、【開く権限】の3つを指定したい場合は、Mask列の数字をそれぞれ足した数字を指定します。
1+32+65536=65569
<CustomAction Rights = "65569"></CustomAction>
参考
SPBasePermissions Enum:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.sharepoint.spbasepermissions
CustomAction Element:
https://docs.microsoft.com/en-us/sharepoint/dev/schema/customaction-element