I am trying to assign permission set to all users of specific profile. While doing this i'm getting errors.Please help me to solve this.
Error: Line: 18, Column: 1 System.DmlException: Upsert failed. First exception on row 0; first error: DUPLICATE_VALUE, Duplicate PermissionSetAssignment. Assignee: 0052v00000eSqTK; Permission Set: 0PS2v000004upmS: [AssigneeId, PermissionSetId]
public class AssignPermissionSetToProfile {
@AuraEnabled
public static void assignpermi(string profiles,string PermissionSett)
{
List<user> pro1=[select id,Profile.Name from user where Profile.Name=:profiles];
PermissionSetAssignment permi2=[SELECT Id, PermissionSetId, PermissionSet.Name,PermissionSet.Profile.Name,
AssigneeId, Assignee.Name FROM PermissionSetAssignment where PermissionSet.Name=:PermissionSett limit 1];
List<PermissionSetAssignment> permiList=new List<PermissionSetAssignment>();
for(user one:[SELECT Id,UserRole.Name,Profile.Name,IsActive FROM User WHERE Profile.Name =: profiles AND IsActive = true])
{
PermissionSetAssignment psa = new PermissionSetAssignment(PermissionSetId = permi2.PermissionSetId, AssigneeId = one.Id);
permiList.add(psa);
}
upsert permiList;
}
}