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