/// <summary> /// Assigns users to a SharePoint v3 site according to permissions specified in the User object for every user /// </summary> /// <param name="SiteURL">SharePoint v3 site URL</param> /// <param name="Users">Users to be added to the site</param> /// <param name="Log">The method will return log of the operations performed.</param> public void AssignUsersToSite(string siteURL, CS4UserCollection users, ref string log) { for (int userIndex = 0; userIndex < users.Count; userIndex++) { try { AddSiteUser(users.Item(userIndex)); log += String.Format(TextResources.UserAddedToSite, users.Item(userIndex).UserLoginWithDomain, siteURL) + Environment.NewLine; } catch (System.Exception ex) { log += String.Format(TextResources.CantAddUserToSite, users.Item(userIndex).UserLoginWithDomain, siteURL) + ex.Message + Environment.NewLine; } } }
/// <summary> /// Adds users to SharePoint group. If user does not belong to the site, it will be added. /// </summary> /// <param name="SiteURL">A SharePoint site where the group resides</param> /// <param name="GroupName">SharePoint group name</param> /// <param name="Users">List of users to be added</param> /// <param name="Log">Method returns a log of operations performed</param> public void AssignUsersToGroup(string siteURL, string groupName, CS4UserCollection users, ref string log) { SPSite site = null; SPWeb siteWeb = null; SPGroup group = null; try { site = new SPSite(siteURL); siteWeb = site.OpenWeb(); group = siteWeb.SiteGroups[groupName]; } catch (System.Exception ex) { log += String.Format(TextResources.CantAddUsersToGroup, groupName) + ex.Message + Environment.NewLine; return; } //ensure user has access to the site for (int userIndex = 0; userIndex < users.Count; userIndex++) { SPUser user = null; bool createUser = false; try { user = siteWeb.SiteUsers[users.Item(userIndex).UserLoginWithDomain]; } catch { //user does not exist createUser = true; } try { if (createUser) { AddSiteUser(users.Item(userIndex)); user = siteWeb.SiteUsers[users.Item(userIndex).UserLoginWithDomain]; } group.AddUser(user); log += String.Format(TextResources.UserAddedToGroup, users.Item(userIndex).UserLoginWithDomain, groupName) + Environment.NewLine; } catch (System.Exception ex) { log += String.Format(TextResources.CantAddUserToGroup, users.Item(userIndex).UserLoginWithDomain, groupName) + ex.Message + Environment.NewLine; } } }