• Piyush Tawari 9
  • NEWBIE
  • 10 Points
  • Member since 2017

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 4
    Replies
My question is to Create a trigger on User to update group membership of user based on user profile and custom setting. Create  Custom settings which will store the mapping of the groups to Profiles.On Insert/Update of  User, trigger will recalculate the group membership of the user based on the mapping stored in custom settings. i Have done for insert part but for Update there are too many possibilities that can happen. So please if anyone knows answer help me.
trigger GroupMembership on User (after update,after insert) {

    list<custom_setting__c> setting = custom_setting__c.getAll().values();
    list <GroupMember> GrpMem = new list<groupMember>();
    list<GroupMember> Grp = [select id,UserOrGroupId,GroupId from GroupMember];
   
    for(User usr : trigger.new)
    { 
        if(trigger.isInsert)
        {
            for(Custom_setting__c custom : setting)
            {    Id cusId = (Id)custom.Profile_Id__c;
                if(cusId == usr.ProfileId)
                {
                    GroupMember GM = new GroupMember();
                    GM.GroupId = (Id)custom.Group_id__c;
                    GM.UserOrGroupId = usr.Id;
                    GrpMem.add(GM);
                }
            }
       
        } 
    } 
insert GrpMem;
}
This is my code when adding new user. Help me with Update code.
My question is to Create a trigger on User to update group membership of user based on user profile and custom setting. Create  Custom settings which will store the mapping of the groups to Profiles.On Insert/Update of  User, trigger will recalculate the group membership of the user based on the mapping stored in custom settings. i Have done for insert part but for Update there are too many possibilities that can happen. So please if anyone knows answer help me.
trigger GroupMembership on User (after update,after insert) {

    list<custom_setting__c> setting = custom_setting__c.getAll().values();
    list <GroupMember> GrpMem = new list<groupMember>();
    list<GroupMember> Grp = [select id,UserOrGroupId,GroupId from GroupMember];
   
    for(User usr : trigger.new)
    { 
        if(trigger.isInsert)
        {
            for(Custom_setting__c custom : setting)
            {    Id cusId = (Id)custom.Profile_Id__c;
                if(cusId == usr.ProfileId)
                {
                    GroupMember GM = new GroupMember();
                    GM.GroupId = (Id)custom.Group_id__c;
                    GM.UserOrGroupId = usr.Id;
                    GrpMem.add(GM);
                }
            }
       
        } 
    } 
insert GrpMem;
}
This is my code when adding new user. Help me with Update code.