コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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");
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        // 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);
            });
        }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: SecurityHelper.cs プロジェクト: setsunafjava/vpsp
        /// <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;
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        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();
        }
コード例 #9
0
 /// <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;
     }
 }
コード例 #10
0
        /// <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);
        }
コード例 #11
0
        /// <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
            }
        }
コード例 #12
0
        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)
            {
            }
        }
コード例 #13
0
        /// <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;
            }
        }
コード例 #14
0
        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
            }
        }
コード例 #15
0
        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();
                }
            }
        }
コード例 #16
0
        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);
            }
        }
コード例 #17
0
        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);
        }
コード例 #18
0
ファイル: SPWebExtensions.cs プロジェクト: renshan2/ecase2
        /// <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);
        }
コード例 #19
0
ファイル: SecurityHelper.cs プロジェクト: bebikashg/ttqn
        /// <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);
 }
コード例 #21
0
        /// <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);
        }
コード例 #22
0
ファイル: PDetails.aspx.cs プロジェクト: vsfsc/VAExtension
        /// <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;
            }
        }
コード例 #23
0
        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 { }
        }
コード例 #24
0
 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]);
 }
コード例 #25
0
 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));
 }