Add and Remove User into SharePoint group using SharePoint Server Object Model


SPWebApplication g_WebApp;

SPWeb g_Web;

                    try

            {

                SPSecurity.RunWithElevatedPrivileges(delegate()

                {

                    SPSite site = new SPSite(“<siteUrl>”);

 

                    //siteName = "Payroll";

                    g_Web = site.OpenWeb(“<siteName>”);

                    g_WebApp = g_Web.Site.WebApplication;

                    g_WebApp.FormDigestSettings.Enabled = true;

                    g_Web.AllowUnsafeUpdates = true;

                    SPUser user = g_Web.AllUsers[“<username>”];

                    SPMember member = g_Web.SiteUsers[“<requestedBy>”];

 

                    if (user != null)

                    {

                        SPGroupCollection grpCollection = g_Web.SiteGroups;

 

                        bool isExists = IsGroupExists(grpCollection,

                                                      “GroupName”);

 

                        if (!isExists && “Add” == Action.Add)

                        {

                           g_Web.SiteGroups.Add(“GroupName”, member, user,

                                                        Constants.Messages.DESCRIPTION);

 

                           g_Web.AssociatedGroups.Add(g_Web.SiteGroups

                                                      [“GroupName”]);

 

                          g_Web.Update();

                          SPRoleAssignment assignment = new SPRoleAssignment(

                                                                  g_Web.SiteGroups[“GroupName”]);

                          SPRoleDefinition _role = g_Web.RoleDefinitions

                                                                 [Constants.PermissionLevel.CONTRIBUTE];

                         assignment.RoleDefinitionBindings.Add(_role);

                         g_Web.RoleAssignments.Add(assignment);

                      }

                      else

                      {

                        SPGroup group = g_Web.SiteGroups[“GroupName”];

 

                        if (group != null)

                        {

                           if (“Add”.Equals(Action.Add))

                           {

                               group.AddUser(user);

                           }

                          else if (“Remove”.Equals(Action.Remove))

                          {

                               group.RemoveUser(user);

                           }

                           group.Update();

                         }

                      }

                   }

                 }

               }

               g_Web.Update();

               g_WebApp.FormDigestSettings.Enabled = true;

             });

            }

            catch

            {

                throw;

            }

            finally

            {

                g_Web.AllowUnsafeUpdates = false;

            }

       

private bool IsGroupExists(SPGroupCollection grpCollection,

                                    string groupName)

        {

            bool isExists = false;

            foreach (SPGroup group in grpCollection)

            {

                if (group.Name.Equals(groupName))

                {

                    isExists = true;

                    break;

                }

            }

 

            return isExists;

        }

 

    } 

   

    public enum Action

    {

        Add,

        Remove

    }