I am getting an error on the groupId get statement. This is my first attempt to use maps. Can someone tell me what I am doing wrong?
Code:
trigger UserPublicGroupMembership on User (after insert, after update ) {
List<GroupMember> gpMember = new list<GroupMember>();
List<Group> pubGroup = new list<Group>([
Select Id,Name
FROM Group
]);
Map<Id, Group> gmap = new Map<Id, Group>(pubGroup);
//Put user in group if insert
if(trigger.isInsert){
for(User u:trigger.new){
IF (u.UserRole.Name == 'BCS Manager'){
gpMember.add(new GroupMember(
UserOrGroupId = u.Id,
GroupId = gmap.get('BCS Managers')
));
}
//so on and so on for all our roles.
}
}
//Check if profile or role changed, then put user in group if true
if(trigger.isUpdate){
}
//Nnow that list is populated insert.
//Always doing an insert as system doesn't care about existing membership conflicts.
Insert gpMember;
}
Error Message:
Invalid initial expression type for field GroupMember.GroupId, expecting: Id