Note: We have to check before adding/removing
users to/from the group and also check the users already exists or not in group. 
 
 
 
 
public void AddDeleteUsersInGroup(User user) 
        { 
           
  string GroupName = string.Empty; 
           
  if (user.IsAdmin.HasValue &&
  user.IsAdmin.Value) 
               
  GroupName = "Group Owners"; 
           
  else if
  (user.IsApprover.HasValue && user.IsApprover.Value) 
               
  GroupName = " Group Members"; 
           
  else 
               
  GroupName = " Group Visitors"; 
           
  SPSecurity.RunWithElevatedPrivileges(delegate() 
           
  { 
               
  using (SPSite
  site = new SPSite(SPContext.Current.Web.Url)) 
               
  { 
                    using
  (SPWeb web = site.OpenWeb()) 
                    { 
                        try 
                        { 
                            web.AllowUnsafeUpdates
  = true; 
                            SPUser spUser = web.EnsureUser(user.UserName); 
                            if (spUser != null) 
                            { 
                                SPGroup spGroup = spGatingGroup(web, GroupName); 
                                if (spGroup != null
  && (IsUserInSPGroup(spUser, GroupName.Trim()))) 
                                { 
                                   //For
  adding user to the group 
            
                           spGroup.AddUser(spUser); 
                                   //For removing user to the
  group 
                                   
  spGroup.RemoveUser(spUser); 
                                    spGroup.Update(); 
                                } 
                            } 
                        } 
                        catch (Exception
  ex) 
                        { 
                            throw ex; 
                        } 
                        finally 
                        { 
                           
  web.AllowUnsafeUpdates = false; 
                        } 
                    } 
               
  } 
           
  }); 
        } 
 | 
 
private SPGroup
  spGatingGroup(SPWeb spDLRWeb, string groupName) 
        { 
           
  SPGroup spGroup = null; 
           
  try 
           
  { 
               
  spGroup = spWeb.SiteGroups[groupName]; 
               
  if (spGroup == null) throw new Exception("Sharepoint
  Group name '" + groupName + "' not
  found"); 
           
  } 
           
  catch (Exception
  ex) 
           
  { 
               
  //ErrorHandling(ex); 
           
  } 
           
  return spGroup; 
        } 
 | 
 
private bool
  IsUserInSPGroup(SPUser user, string strname) 
        { 
           
  foreach (SPGroup
  group in user.Groups) 
           
  { 
               
  if (group.Name == strname) 
                    return
  true; 
           
  } 
           
  return false; 
        } 
 | 
 
No comments:
Post a Comment