You can try following code in Job or you can apply in form controls event.
UserGroupList UsergroupList1,UsergroupList2;
UserId FromUserId, ToUserId;
;
FromUserId = 'usr1';
ToUserId = 'usr2' ;
delete_from UsergroupList1
where UsergroupList1.UserId == ToUserId;
while select UsergroupList1 where UsergroupList1.userId == FromUserId
{
info(strfmt('Group assigned: %1',UsergroupList1.groupId));
select forupdate UsergroupList2 where UsergroupList2.userID == ToUserId && UsergroupList2.GroupId == UsergroupList1.GroupId;
if(!UsergroupList2)
{
UsergroupList2.UserId = ToUserId;
UsergroupList2.GroupId = UsergroupList1.GroupId;
UsergroupList2.insert();
}
}
info(strfmt('Permissions changed for %1',ToUserId));