レポートのエクスポート権限が割り当てられたユーザ
ずいぶん投稿してなかった。
ちょうど「レポートのエクスポート権限」がどのユーザに割り当てられてるか調べる依頼があったのでメモ。。
場所
プロファイルごとに権限のセットができる つまり、各プロファイルごとにチェックがあるか確認して、「このプロファイルに属するユーザの参照」をして一つ一つ調べていけばできると。。
一度に確認できないか?
ひとつずつ調べるのは面倒な作業だし、何かできないか調べてみる。
この辺を調べてみたところ、「レポートのエクスポート」の権限を指定する名称がわからなかったので、さらに調べる。
「PermissionsPermissionName」というのを見つけた。ところが、
使用可能な権限のリストを取得するには、describeSObjects() を使用します。
とあったので、下記で取得。
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.PermissionSet.fields.getMap(); System.debug(fieldMap.size()); for(String s : fieldMap.keyset()){ System.debug(fieldMap.get(s)); }
194件あったので、それっぽいのがないか確認したところ、 ようやく「PermissionsExportReport」と判明したので、SOQLクエリを実行
SELECT Id, AssigneeID, Assignee.Name, Assignee.IsActive, PermissionSet.Name FROM PermissionSetAssignment WHERE PermissionSet.PermissionsExportReport=TRUE AND Assignee.IsActive = TRUE
AssigneeがUserオブジェクトを指すので、有効ユーザのみに絞り込んで、権限をもつユーザが取得できました。 思った以上に時間かかったので、ひとつずつ調べた方が早かったかも。。。