Select Page

How to move SharePoint users from one SharePoint group into another one

For today, just a short code snippet for moving users (SPUser) between SharePoint Groups. Cheers!

private static int MoveUsers(Guid scid, Guid webid, string group1, string group2)
{
    try
    {
        int movedUsers = 0;

        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
            using (SPSite elevatedSite = new SPSite(scid))
            {
                using (SPWeb elevatedWeb = elevatedSite.OpenWeb(webid))
                {
                    SPGroup spgroup1 = elevatedWeb.SiteGroups.GetByName(group1);
                    SPGroup spgroup2 = elevatedWeb.SiteGroups.GetByName(group2);


                    SPUser owner = elevatedWeb.CurrentUser;
                    if (spgroup1.Owner is SPUser)
                    {
                        owner = spgroup1.Owner as SPUser;
                    }

                    foreach (SPUser user in spgroup1.Users)
                    {
                        if (!user.LoginName.Equals(owner.LoginName))
                        {
                            spgroup1.RemoveUser(user);
                            spgroup2.AddUser(user);

                            movedUsers++;
                        }
                    }

                    spgroup1.Update();
                    spgroup2.Update();

                    elevatedWeb.Update();
                }
            }
        });

        return movedUsers;
    }
    catch (Exception ex)
    {
        throw;
    }
}

Previous

Next