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;
}
}