任意の権限セットを、割り当て可能なすべてのユーザに一括で割り当てます。
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 を指定することで、権限セットの割り当てができないユーザを無視しています。