private void CreateSubSiteGroup(SPWeb web, string groupName, SPRoleType roleType, string groupDescription) { var groupInSite = GroupExistsInSiteCollection(web, groupName); if (!groupInSite) { web.AllowUnsafeUpdates = true; web.Update(); web.BreakRoleInheritance(false); SPGroupCollection groups = web.SiteGroups; //for (int i = 0; i < web.SiteAdministrators.Count; i++) //{ // SPUser owner = web.SiteAdministrators[i]; // SPMember member = web.SiteAdministrators[i]; //} SPUser owner = web.SiteAdministrators[0]; SPMember member = web.SiteAdministrators[0]; groups.Add(groupName, member, owner, groupDescription); SPGroup newSPGroup = groups[groupName]; SPRoleDefinition role = web.RoleDefinitions.GetByType(roleType); SPRoleAssignment roleAssignment = new SPRoleAssignment(newSPGroup); roleAssignment.RoleDefinitionBindings.Add(role); web.RoleAssignments.Add(roleAssignment); web.Update(); } }
public override void FeatureActivated(SPFeatureReceiverProperties properties) { SPWeb web = (SPWeb)properties.Feature.Parent; SPMember owner = web.SiteAdministrators[0]; SPUser user = (SPUser)owner; if (!GroupExistsInSite(web, "Riverstone TFS Default Members")) { web.SiteGroups.Add("Riverstone TFS Default Members", owner, user, "This group contains the Riverstone Active Directory groups that have access to TFS portal sites by default."); } SPGroup defaultGroup = web.SiteGroups["Riverstone TFS Default Members"]; defaultGroup.OnlyAllowMembersViewMembership = false; defaultGroup.Update(); SPRoleAssignment roleAssignment = new SPRoleAssignment(defaultGroup); SPRoleDefinition contributeDefinition = web.RoleDefinitions["Contribute"]; roleAssignment.RoleDefinitionBindings.Add(contributeDefinition); if (!GroupExistsInWeb(web, "Riverstone TFS Default Members")) { web.RoleAssignments.Add(roleAssignment); } AddUserToGroup(defaultGroup, "trg\\biudatasmes"); AddUserToGroup(defaultGroup, "trg\\biuoperations"); AddUserToGroup(defaultGroup, "trg\\biureporting"); AddUserToGroup(defaultGroup, "trg\\dataarchitect"); AddUserToGroup(defaultGroup, "trg\\developer"); AddUserToGroup(defaultGroup, "trg\\enterprisearchitect"); AddUserToGroup(defaultGroup, "trg\\pmuba"); AddUserToGroup(defaultGroup, "trg\\pmupm"); AddUserToGroup(defaultGroup, "trg\\tfsadministrator"); AddUserToGroup(defaultGroup, "trg\\OpsManagement"); }
public static void CreateSubSiteGroup(SPWeb web, string groupName, string PermissionLevel, string groupDescription) { try { web.AllowUnsafeUpdates = true; SPUserCollection users = web.AllUsers; SPUser owner = web.SiteAdministrators[0]; SPMember member = web.SiteAdministrators[0]; SPGroupCollection groups = web.SiteGroups; groups.Add(groupName, member, owner, groupDescription); SPGroup newSPGroup = groups[groupName]; newSPGroup.OnlyAllowMembersViewMembership = false; newSPGroup.Update(); SPRoleDefinition role = web.RoleDefinitions[PermissionLevel]; SPRoleAssignment roleAssignment = new SPRoleAssignment(newSPGroup); roleAssignment.RoleDefinitionBindings.Add(role); web.RoleAssignments.Add(roleAssignment); web.Update(); web.AllowUnsafeUpdates = false; } catch (Exception ex) { ULSLogger.LogErrorInULS(ex.Message, TraceSeverity.Unexpected); } }
// Uncomment the method below to handle the event raised after a feature has been activated. public override void FeatureActivated(SPFeatureReceiverProperties properties) { SPSecurity.RunWithElevatedPrivileges(delegate() { SPWeb curWeb = (SPWeb)properties.Feature.Parent; //Create full matser page URL Uri masterUri = new Uri(curWeb.Url + "/_catalogs/masterpage/TOSRPMaster.master"); Uri systemMasterUri = new Uri(curWeb.Url + "/_catalogs/masterpage/TOSRPMaster.master"); curWeb.MasterUrl = systemMasterUri.AbsolutePath.Replace("%20", " "); curWeb.CustomMasterUrl = masterUri.AbsolutePath.Replace("%20", " "); curWeb.SiteLogoUrl = new Uri(curWeb.Url + "/_layouts/15/images/arKMedes/TOS/OnboardingLogo.png").AbsolutePath; curWeb.Update(); //create groups string[] groupNames = { "ERS", "INFRA", "NewVista", "KO", "Others", "SI&Apps" }; SPUser _SPUser = curWeb.EnsureUser("SharePoint\\system"); SPMember groupOwner = _SPUser; SPUser defaultUser = _SPUser; try { curWeb.AllowUnsafeUpdates = true; foreach (string groupName in groupNames) { if (!curWeb.HasUniqueRoleAssignments) { // Removing any existing permissions from Site curWeb.BreakRoleInheritance(false); //curWeb.Update(); } int Count = curWeb.SiteGroups.OfType <SPGroup>().Count(g => g.Name.Equals(groupName)); if (Count == 0) { if (groupName == "KO") { string strDesc = "Use " + groupName + " group to give people Full Control permissions for this site"; CreateGroup(curWeb, groupOwner, defaultUser, groupName, strDesc, SPRoleType.Administrator); } else { string strDesc = "Use " + groupName + " group to give people Read permissions for this site"; CreateGroup(curWeb, groupOwner, defaultUser, groupName, strDesc, SPRoleType.Reader); } } } curWeb.AllowUnsafeUpdates = false; } catch (Exception ex) { throw ex; } //CreateSiteNavigation(properties); }); }
internal static SPGroup AddSecurityGroup(SPGroupCollection groups, string name, string description, SPUser owner, bool addOwnerToGroup) { SPGroup item = null; try { item = groups[name]; if (addOwnerToGroup) { item.AddUser(owner); } } catch (SPException ex) { if (-2146232832 == ex.ErrorCode) { SPMember associatedOwnerGroup = owner; if (groups.Web.AssociatedOwnerGroup != null) { associatedOwnerGroup = groups.Web.AssociatedOwnerGroup; } if (addOwnerToGroup) { groups.Add(name, associatedOwnerGroup, owner, description); } else { groups.Add(name, associatedOwnerGroup, null, description); } item = groups[name]; } else { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory(ex.Source, TraceSeverity.High, EventSeverity.Error), TraceSeverity.High, ex.Message, ex.Data); } } IList <SPGroup> associatedGroups = item.ParentWeb.AssociatedGroups; if ((item != null) && (associatedGroups != null)) { bool flag = true; foreach (SPGroup group2 in associatedGroups) { if (group2.ID == item.ID) { flag = false; break; } } if (flag) { associatedGroups.Add(item); } } return(item); }
/// <summary> /// Add a group to the site groups. /// </summary> /// <param name = "web"></param> /// <param name = "name"></param> /// <param name = "owner"></param> /// <param name = "description"></param> /// <returns></returns> public static SPGroup AddGroup(SPWeb web, string name, SPMember owner, string description) { if (web.SiteGroups.Cast<SPGroup>().Any(g => g.Name == name)) { return web.SiteGroups[name]; } web.SiteGroups.Add(name, owner, null, description); var group = web.SiteGroups[name]; return group; }
/// <summary> /// Add a group to the site groups. /// </summary> /// <param name = "web"></param> /// <param name = "name"></param> /// <param name = "owner"></param> /// <param name = "description"></param> /// <returns></returns> public static SPGroup AddGroup(SPWeb web, string name, SPMember owner, string description) { if (web.SiteGroups.Cast <SPGroup>().Any(g => g.Name == name)) { return(web.SiteGroups[name]); } web.SiteGroups.Add(name, owner, null, description); var group = web.SiteGroups[name]; return(group); }
private static void CreateGroup(SPWeb curWeb, SPMember groupOwner, SPUser defaultUser, string groupName, string strDesc, SPRoleType _SPRoleType) { curWeb.SiteGroups.Add(groupName, groupOwner, defaultUser, strDesc); curWeb.Update(); //Set group to a unique permission SPGroup group = curWeb.SiteGroups[groupName]; SPRoleAssignment spRoleAssignment = new SPRoleAssignment(group); SPRoleDefinition roleDefinition = curWeb.RoleDefinitions.GetByType(_SPRoleType); spRoleAssignment.RoleDefinitionBindings.Add(roleDefinition); curWeb.RoleAssignments.Add(spRoleAssignment); curWeb.Update(); }
/// <summary> /// 新建组 /// </summary> /// <param name="web"></param> /// <param name="groupname"></param> /// <param name="member"></param> /// <param name="spuser"></param> /// <param name="description"></param> /// <returns></returns> public bool AddGroup(SPWeb web, string groupname, SPMember member, SPUser spuser, string description) { try { if (!IsExistGroup(web, groupname)) { web.SiteGroups.Add(groupname, member, spuser, description);//新建组 return(true); } return(false); } catch (Exception) { throw; } }
/// <summary> /// Add a group to the site groups. /// </summary> /// <param name = "web"></param> /// <param name = "name"></param> /// <param name = "owner"></param> /// <param name = "description"></param> /// <returns></returns> public static SPGroup AddGroup(SPWeb web, string name, SPMember owner, string description) { try { return(web.SiteGroups[name]); } catch { //Check group exist or not } web.SiteGroups.Add(name, owner, null, description); var group = web.SiteGroups[name]; return(group); }
/// <summary> /// Add group to SPWeb and set permission for this group /// </summary> /// <param name="web"></param> /// <param name="groupName"></param> /// <param name="groupDescription"></param> /// <param name="role"></param> /// <param name="member"></param> public static void CreateNewGroup(this SPWeb web, string groupName, string groupDescription, SPRoleType role) { if (string.IsNullOrEmpty(groupName)) { return; } try { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite spSite = new SPSite(web.Site.ID)) { using (SPWeb spWeb = spSite.OpenWeb(web.ID)) { SPUserCollection users = spWeb.AllUsers; SPUser owner = users[spWeb.Author.LoginName]; SPMember member = users[spWeb.Author.LoginName]; //Add the group to the SPWeb web SPGroupCollection groups = spWeb.SiteGroups; var isExits = groups.Cast <SPGroup>().FirstOrDefault(p => p.Name == groupName); if (isExits == null) { groups.Add(groupName, member, owner, groupDescription); } //Associate the group with SPWeb //spWeb.AssociatedGroups.Add(spWeb.SiteGroups[groupName]); spWeb.Update(); //Assignment of the roles to the group. SPRoleAssignment assignment = new SPRoleAssignment(spWeb.SiteGroups[groupName]); SPRoleDefinition _role = spWeb.RoleDefinitions.GetByType(role); assignment.RoleDefinitionBindings.Add(_role); spWeb.RoleAssignments.Add(assignment); } } }); } catch { // Not catch exception because check group exists } }
private void AddGroupRole(SPWeb web, string groupNames, string ouGuid) { SPGroup group = null; try { SPUser user = web.Author; foreach (string groupName in groupNames.Split(';')) { if (!IsExistGroup(web, groupName)) { //web.AllowUnsafeUpdates = true; web.SiteGroups.Add(groupName, user, null, ouGuid);//新建组 if (IsExistGroup(web, groupName)) { group = web.SiteGroups.GetByName(groupName); //改变站点继承权 if (!web.HasUniqueRoleAssignments) { web.BreakRoleInheritance(true); } //组权限分配与定义(New) SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions; SPRoleAssignmentCollection roleAssignments = web.RoleAssignments; SPMember memCrossSiteGroup = web.SiteGroups[groupName]; SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup; SPRoleAssignment myroles = new SPRoleAssignment(myssp); SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings; roleDefBindings.Add(roleDefinitions["Read"]); roleAssignments.Add(myroles); } //web.AllowUnsafeUpdates = false; } } } catch (Exception) { } }
/// <summary> /// 组权限分配与定义(New) /// </summary> /// <param name="web"></param> /// <param name="groupname"></param> /// <param name="roles"></param> /// <returns></returns> public bool AddGroupToRoles(SPWeb web, string groupname, string[] roles) { try { string[] _roles = roles; int rolemun = _roles.Length; if (IsExistGroup(web, groupname)) { //改变站点继承权 if (!web.HasUniqueRoleDefinitions) { web.RoleDefinitions.BreakInheritance(true, true);//复制父站点角色定义并且保持权限 } //站点继承权改变后重新设置状态 web.AllowUnsafeUpdates = true; //组权限分配与定义(New) SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions; SPRoleAssignmentCollection roleAssignments = web.RoleAssignments; SPMember memCrossSiteGroup = web.SiteGroups[groupname]; SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup; SPRoleAssignment myroles = new SPRoleAssignment(myssp); SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings; if (rolemun > 0) { for (int i = 0; i < rolemun; i++) { roleDefBindings.Add(roleDefinitions[_roles[i]]); } } roleAssignments.Add(myroles); return(true); } return(false); } catch (Exception) { throw; } }
public static void CreateNewGroup(this SPWeb web, string groupName, string groupDescription) { if (string.IsNullOrEmpty(groupName)) { return; } try { SPSecurity.RunWithElevatedPrivileges(delegate() { SPUserCollection users = web.AllUsers; SPUser owner = users[web.Author.LoginName]; SPMember member = users[web.Author.LoginName]; try { //Add the group to the SPWeb web SPGroupCollection groups = web.SiteGroups; groups.Add(groupName, member, owner, groupDescription); //Associate the group with SPWeb web.AssociatedGroups.Add(web.SiteGroups[groupName]); web.Update(); } catch { } //Assignment of the roles to the group. SPRoleAssignment assignment = new SPRoleAssignment(web.SiteGroups[groupName]); SPRoleDefinition _role = web.RoleDefinitions.GetByType(SPRoleType.Contributor); assignment.RoleDefinitionBindings.Add(_role); web.RoleAssignments.Add(assignment); }); } catch { // Not catch exception because check group exists } }
private void CreateGroup(SPWeb web, string name, string owner) { SPMember member = null; bool ownerIsDummy = false; try { member = web.EnsureUser(owner); } catch { } if (member == null) { ownerIsDummy = true; member = web.EnsureUser("SHAREPOINT\\system"); } if (!web.SiteGroups.Cast <SPGroup>().Any(g => g.Name == name)) { web.SiteGroups.Add(name, member, null, string.Empty); } if (ownerIsDummy) { SPGroup group = web.SiteGroups[name]; if (web.SiteGroups.Cast <SPGroup>().Any(g => g.Name == owner)) { group.Owner = web.SiteGroups[owner]; group.Update(); } } }
protected void CreateSFGroup(SPWeb web, string grpName, string permName, string member_visitor) { web.AllowUnsafeUpdates = true; SPMember bronzeAdminMember = null; try { ULSLogger.LogErrorInULS("Inside try in createGroup() in PWC Secure Folder Feature"); if (ContainsPermLevel(web, permName)) { SPGroupCollection sgc = web.SiteGroups; string adminGrpName = string.Empty; foreach (SPGroup grp in sgc) { adminGrpName = grp.Name; if (adminGrpName.EndsWith("Bronze Admin")) { ULSLogger.LogErrorInULS("Inside foreach if in createGroup() in PWC Secure Folder Feature.. Found Bronze Admin group---name is---" + adminGrpName); bronzeAdminMember = grp; } } if (member_visitor.Equals("member")) { web.SiteGroups.Add(grpName, bronzeAdminMember, null, "Members for the folder " + grpName); } if (member_visitor.Equals("visitor")) { web.SiteGroups.Add(grpName, bronzeAdminMember, null, "Visitors for the folder " + grpName); } } } catch (Exception e) { e.Message.ToString(); ULSLogger.LogErrorInULS("Inside catch in createGroup() in PWC Secure Folder Feature---" + e.Message); } }
private string createSite(string url, SPSiteSubscription subscription, string title, string description, string user, string fullName, string email, string template, out Guid siteid, bool useHostHeader) { siteid = Guid.Empty; string errors = ""; try { SPSite site; if (subscription != null) { site = app.Sites.Add(subscription, url, title, description, 1033, "", user, fullName, email, null, null, null, useHostHeader); } else { site = app.Sites.Add(url, title, description, 1033, "", user, fullName, email, null, null, null, useHostHeader); } try { //SPSite site = spApp.Sites.Add(bUrl + url, user, email); site.AllowUnsafeUpdates = true; using (SPWeb web = site.OpenWeb()) { web.Title = title; web.AllowUnsafeUpdates = true; web.Site.AllowUnsafeUpdates = true; web.Site.RootWeb.AllowUnsafeUpdates = true; //SPDocumentLibrary solGallery1 = (SPDocumentLibrary)web.Site.RootWeb.Site.GetCatalog(SPListTemplateType.SolutionCatalog); string[] files = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + "\\workengine\\templates\\" + template); int counter = 1; foreach (string file in files) { addfile(Path.GetFileNameWithoutExtension(file), web, file, counter); counter++; } SPWebTemplate webtemplate = null; foreach (SPWebTemplate t in web.GetAvailableWebTemplates((uint)web.Locale.LCID)) { if (t.Title == template) { webtemplate = t; break; } } if (webtemplate != null) { web.ApplyWebTemplate(webtemplate); } //web.Update(); //web.AllUsers.Add(user, email, fullName, ""); ////web.AllUsers.Add(System.Configuration.ConfigurationManager.AppSettings["owner"].ToString(), "", System.Configuration.ConfigurationManager.AppSettings["owner"].ToString(), ""); //web.Users[user].Name = fullName; //web.Users[user].Update(); //web.Update(); SPUser owner = web.AllUsers[user]; web.SiteGroups.Add("Administrators", owner, owner, ""); //web.Update(); web.AssociatedOwnerGroup = GetSiteGroup(web, "Administrators"); SPRole roll = web.Roles["Full Control"]; roll.AddGroup(web.SiteGroups["Administrators"]); SPMember newOwner = web.SiteGroups["Administrators"]; web.SiteGroups.Add("Team Members", newOwner, owner, ""); web.SiteGroups.Add("Visitors", newOwner, owner, ""); web.SiteGroups.Add("Project Managers", newOwner, owner, ""); //web.Update(); web.AssociatedVisitorGroup = GetSiteGroup(web, "Visitors"); web.AssociatedOwnerGroup = GetSiteGroup(web, "Administrators"); web.AssociatedMemberGroup = GetSiteGroup(web, "Team Members"); // web.Update(); //web.SiteGroups["Administrators"].Users[user].Name = fullName; //web.SiteGroups["Project Managers"].Users[user].Name = fullName; //web.SiteGroups["Team Members"].Users[user].Name = fullName; //web.SiteGroups["Visitors"].Users[user].Name = fullName; web.Roles.Add("Contribute2", "Can view, add, update, delete and manage subwebs", web.Roles["Contribute"].PermissionMask | SPRights.ManageSubwebs); roll = web.Roles["Full Control"]; roll.AddGroup(web.SiteGroups["Administrators"]); roll = web.Roles["Contribute"]; roll.AddGroup(web.SiteGroups["Team Members"]); roll = web.Roles["Read"]; roll.AddGroup(web.SiteGroups["Visitors"]); roll = web.Roles["Contribute2"]; roll.AddGroup(web.SiteGroups["Project Managers"]); siteid = site.ID; if (txtDatabaseServer.Text != "") { errors = mapReports(site); } } } catch (Exception ex) { errors = ex.ToString(); } finally { if (site != null) { site.Dispose(); } } } catch (Exception ex) { errors = ex.Message; } return(errors); }
/// <summary> /// Creates a group, if the group does not already exist. Sets the following properties: /// AllowRequestToJoinLeave = true /// OnlyAllowMembersViewMembership = true /// AllowMembersEditMembership = false /// </summary> /// <param name="web">The web where the group will be created</param> /// <param name="groupName">The name of the group</param> /// <param name="groupDescription">The group description</param> /// <param name="owner">The group's owner</param> public static SPGroup CreateGroup(this SPWeb web, string groupName, string groupDescription, SPMember owner) { SPGroup group; if (web.TryGetGroup(groupName, out group) == false) { SPGroupCollection gc = web.SiteGroups; gc.Add(groupName, owner, web.Site.Owner, groupDescription); group = gc[groupName]; group.AllowRequestToJoinLeave = false; group.OnlyAllowMembersViewMembership = true; group.AllowMembersEditMembership = false; group.Update(); } return(group); }
/// <summary> /// Add a group to the site groups. /// </summary> /// <param name = "web"></param> /// <param name = "name"></param> /// <param name = "owner"></param> /// <param name = "description"></param> /// <returns></returns> public static SPGroup AddGroup(SPWeb web, string name, SPMember owner, string description) { try { return web.SiteGroups[name]; } catch { //Check group exist or not } web.SiteGroups.Add(name, owner, null, description); var group = web.SiteGroups[name]; return group; }
public static void LogToWorkflowHistory(this SPWorkflowActivationProperties workflowProperties, SPWorkflowHistoryEventType type, SPMember user, string description, string outCome) { SPWorkflow.CreateHistoryEvent(workflowProperties.Web, workflowProperties.WorkflowId, (int)type, user, TimeSpan.MinValue, outCome, description, string.Empty); }
/// <summary> /// Adds SharePoint group to SharePoint v3 site /// </summary> /// <param name="SiteURL">SharePoint v3 site URL</param> /// <param name="GroupName">Group to be added</param> /// <param name="GroupOwner">Group owner. If the user does not belong to site it will be added.</param> /// <param name="DefaultUser">Default group user. If the user does not belong to site it will be added.</param> /// <param name="OverwriteIfExists">If set, the group will be removed and created again, if it exists.</param> /// <param name="ResultText">The method returns log of operations performed.</param> /// <returns>true if the group is successfully added.</returns> public bool CreateUsersGroup(string siteURL, string groupName, CS4User groupOwner, CS4User defaultUser, bool overwriteIfExists, ref string resultText) { bool result = false; resultText = String.Format(TextResources.AttemptingToCreateGroup, groupName) + Environment.NewLine; SPSite site = null; SPWeb siteWeb = null; SPGroupCollection groups = null; try { site = new SPSite(siteURL); siteWeb = site.OpenWeb(); groups = siteWeb.SiteGroups; } catch (System.Exception ex) { resultText += TextResources.CantCreateGroup + ex.Message + System.Environment.NewLine; return(result); } SPUser user = null; bool createDefaultUser = false; try { user = siteWeb.SiteUsers[defaultUser.UserLoginWithDomain]; } catch { //user does not exist createDefaultUser = true; } SPMember owner = null; bool createGroupOwner = false; try { owner = siteWeb.SiteUsers[groupOwner.UserLoginWithDomain]; } catch { createGroupOwner = true; } try { if (createDefaultUser) { AddSiteUser(defaultUser); user = siteWeb.SiteUsers[defaultUser.UserLoginWithDomain]; } if (createGroupOwner) { AddSiteUser(groupOwner); owner = siteWeb.SiteUsers[groupOwner.UserLoginWithDomain]; } } catch (System.Exception ex) { resultText += TextResources.NoGroupOwnerOrDefaultUser + ex.Message + Environment.NewLine; return(result); } SPGroup group = null; bool groupExists = false; try { group = groups[groupName]; groupExists = true; resultText += TextResources.GroupExists + Environment.NewLine; } catch { //group does not exist } try { if (groupExists) { if (overwriteIfExists) { SPUserCollection groupUsers = group.Users; //emptying group users collection foreach (SPUser groupUser in groupUsers) { group.RemoveUser(groupUser); } groups.Remove(groupName); } else { result = true; return(result); } } groups.Add(groupName, owner, user, String.Empty); resultText += TextResources.GroupCreated + System.Environment.NewLine; result = true; } catch (System.Exception ex) { resultText += ex.Message; } return(result); }
/// <summary> /// 创建子项目按钮事件 /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void btnCreateSite_Click(object sender, EventArgs e) { try { SPSite site = SPContext.Current.Web.Site; //string spwt = SPWebTemplate.WebTemplateSTS;//默认选择工作组网站模板 SPWeb web = site.OpenWeb("/"); web.AllowUnsafeUpdates = true; SPMember memUser = web.Users[0]; SPUser suser = web.Users[0]; //新建组 //web.SiteGroups.Add("skyteam3", memUser, suser, "new skyteam"); //web.SiteGroups["skyteam3"].AddUser("adr\\administrator", "[email protected]", "蔡", "系统维修人员"); //web.Groups["skyteam2"].AddUser("adr\\pccai", "[email protected]", "蔡", "系统维修人员"); //新建子站点 string currentTemplate = web.WebTemplate; //web.Webs.Add("Test2", "站点名称2", "站点描述2", 2052, "_GLOBAL_#0", true, false); //打开子站点 SPWeb web2 = site.OpenWeb("Projects/Test2"); web2.AllowUnsafeUpdates = true; // web2.SiteGroups.Add("skyteam6", memUser, suser, "new skyteam");//新建组 // web2.SiteGroups["skyteam6"].AddUser("adr\\administrator", "[email protected]", "边", "系统维修人员"); //改变站点继承权 if (!web2.HasUniqueRoleDefinitions) { web2.RoleDefinitions.BreakInheritance(true, true); } //站点继承权改变后重新设置状态 web2.AllowUnsafeUpdates = true; //添加权限级别 (Role) //SPRoleDefinition roleDefinition = new SPRoleDefinition(); //roleDefinition.Name = "项目角色"; //roleDefinition.Description = "项目角色可以批准所有项目情况."; //roleDefinition.BasePermissions = SPBasePermissions.FullMask ^ SPBasePermissions.ManagePermissions; //web2.RoleDefinitions.Add(roleDefinition); //更改权限级别 (Permissions) SPRoleDefinitionCollection roles = web2.RoleDefinitions; SPRoleDefinition roleDefinition1 = roles["读取"]; roleDefinition1.BasePermissions = SPBasePermissions.AddListItems | SPBasePermissions.BrowseDirectories | SPBasePermissions.EditListItems | SPBasePermissions.DeleteListItems | SPBasePermissions.AddDelPrivateWebParts; roleDefinition1.Update(); //用户权限分配与定义(New) SPRoleDefinitionCollection roleDefinitions = web2.RoleDefinitions; SPRoleAssignmentCollection roleAssignments = web2.RoleAssignments; SPRoleAssignment roleAssignment = new SPRoleAssignment("adr\\administrator", "*****@*****.**", "Display_Name", "Notes"); SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings; roleDefBindings.Add(roleDefinitions["项目角色"]); roleAssignments.Add(roleAssignment); //权限定义(Old) //SPRoleCollection siteGroups = web2.Roles; //siteGroups.Add("skyteam6", "Description", SPRights.ManageWeb | SPRights.ManageSubwebs); //获得权限定义 SPRoleDefinition sprole = roleDefinitions.GetByType(SPRoleType.Reader); string spname = sprole.Name; //组权限分配与定义(New) SPRoleDefinitionCollection roleDefinitions1 = web2.RoleDefinitions; SPRoleAssignmentCollection roleAssignments1 = web2.RoleAssignments; SPMember memCrossSiteGroup = web2.SiteGroups["skyteam6"]; SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup; SPRoleAssignment myroles = new SPRoleAssignment(myssp); SPRoleDefinitionBindingCollection roleDefBindings1 = myroles.RoleDefinitionBindings; roleDefBindings1.Add(roleDefinitions1["设计"]); roleDefBindings1.Add(roleDefinitions1["读取"]); roleAssignments1.Add(myroles); //组权限分配与定义(Old) //SPMember member = web2.Roles["skyteam"]; //web2.Permissions[member].PermissionMask = // SPRights.ManageLists | SPRights.ManageListPermissions; //更改列表权限(Old) //SPList list = site.Lists["通知"]; //SPPermissionCollection perms = list.Permissions; //SPUserCollection users = site.Users; //SPMember member = users["ADR\\pccai"]; //list.Permissions[member].PermissionMask = SPRights.AddListItems | SPRights.EditListItems; // PermissionCollection perc = web.Permissions; //perc.AddUser("adr\\administrator", "[email protected]", "title", "Notes", PortalRight.AllSiteRights); // SecurityManager.AddRole(context, "title", "descriptions", PortalRight.ManageSite); } catch (Exception) { throw; } }
private void ProcessGroups(SPWeb web, SPUser user) { SPRole roll; try { web.Roles.Add("Contribute2", "Can view, add, update, delete and manage subwebs", web.Roles["Contribute"].PermissionMask | SPRights.ManageSubwebs); } catch { } try { web.SiteGroups.Add("Administrators", user, user, ""); roll = web.Roles["Full Control"]; roll.AddGroup(web.SiteGroups["Administrators"]); } catch { } SPMember newOwner = web.SiteGroups["Administrators"]; try { web.SiteGroups.Add("Team Members", newOwner, user, ""); roll = web.Roles["Contribute"]; roll.AddGroup(web.SiteGroups["Team Members"]); } catch { } try { web.SiteGroups.Add("Visitors", newOwner, user, ""); roll = web.Roles["Read"]; roll.AddGroup(web.SiteGroups["Visitors"]); } catch { } try { web.SiteGroups.Add("Report Writers", newOwner, user, ""); roll = web.Roles["Read"]; roll.AddGroup(web.SiteGroups["Report Writers"]); } catch { } try { web.SiteGroups.Add("Report Viewers", newOwner, user, ""); roll = web.Roles["Read"]; roll.AddGroup(web.SiteGroups["Report Viewers"]); } catch { } roll = web.Roles["Contribute2"]; try { web.SiteGroups.Add("Project Managers", newOwner, user, ""); roll.AddGroup(web.SiteGroups["Project Managers"]); } catch { } try { web.SiteGroups.Add("Portfolio Managers", newOwner, user, ""); roll.AddGroup(web.SiteGroups["Portfolio Managers"]); } catch { } try { web.SiteGroups.Add("Resource Managers", newOwner, user, ""); roll.AddGroup(web.SiteGroups["Resource Managers"]); } catch { } try { web.SiteGroups.Add("Executives", newOwner, user, ""); roll.AddGroup(web.SiteGroups["Executives"]); } catch { } try { web.AssociatedVisitorGroup = GetSiteGroup(web, "Visitors"); } catch { } try { web.AssociatedOwnerGroup = GetSiteGroup(web, "Administrators"); } catch { } try { web.AssociatedMemberGroup = GetSiteGroup(web, "Team Members"); } catch { } }
public static SPGroup AddGroup(this SPWeb web, string groupName, SPMember owner = null, SPUser defaultUser = null, string groupDescription = null) { web.SiteGroups.Add(groupName, owner ?? web.Author, defaultUser ?? web.Author, groupDescription ?? ""); return(web.SiteGroups[groupName]); }
public static SPGroup EnsureGroup(this SPWeb web, string groupName, SPMember owner = null, SPUser defaultUser = null, string groupDescription = null) { return(web.TryGetGroup(groupName) ?? web.AddGroup(groupName, owner, defaultUser, groupDescription)); }