LoginSignup
5
5

More than 5 years have passed since last update.

[Apex] 権限セットをすべてのユーザに一括で割り当てる

Posted at

任意の権限セットを、割り当て可能なすべてのユーザに一括で割り当てます。

final String PERMISSION_SET_NAME = '権限セットのAPI参照名';

// 権限セットを取得
PermissionSet ps = [SELECT Id FROM PermissionSet WHERE Name =:PERMISSION_SET_NAME];

// 権限セットを割り当てるユーザを取得
List<User> assigneeUsers = [SELECT Id FROM User WHERE IsActive = true];

List<PermissionSetAssignment> psalist = new List<PermissionSetAssignment>();

for (User u:assigneeUsers) {
  PermissionSetAssignment psa = new PermissionSetAssignment(
      AssigneeId = u.Id,
      PermissionSetId = ps.Id
  );
  psalist.add(psa);
}

Database.insert(psalist, false);

ユーザのライセンス設定によっては、割り当て可能な権限セットが制限され PermissionSetAssignment レコードの作成がエラーになる場合があります。
そのため Database.insert の第二引数に false を指定することで、権限セットの割り当てができないユーザを無視しています。

参考資料

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5