Email: Password:       Forgot Password 
    .netCodeSG
A Saarsha Group Online Community for dot net codes group like C#, Asp.NET, VB.NET, Sharepoint, JavaScript, JQuery, Ajax, SQL, WCF, WPF.
 
TECHNOLOGIES:
 

Share Point - Create Group and Assign Permission Programmatically

Article:
Viewed:  1504 
Posted On:  27/11/2013 07:35:42 
How we can create a new group adn assign permission to newly created group programmatically in Share Point 2013 ? 

 

In this article I am going to show how we can create Group and assign permission to a Group programmatically.

Below is the screen from where you can Add a Group . . . 

Share Point Add Group 1.png

Image 1.

You can see your new group in Drop Down List...

Share Point Add Group 2.png

Image 2.

Now you can check -> Site Setting -> People and Group

Share Point Add Group 3.png

Image 3.

Below is my aspx code:

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c"
 %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c"
 %>
<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
 %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AddGroup.aspx.cs" Inherits="SP_Operation.Layouts.SP_Operation.AddGroup"
ynamicMasterPageFile="~masterurl/default.master" %>
 
<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
</asp:Content>
 
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <table cellpadding="4" cellspacing="4" width="100%" >
        <tr>
            <td width="20%">All Groups:</td>
            <td>
                <asp:DropDownList ID="ddlGroup" runat="server" Width="180px"></asp:DropDownList>
            </td>
        </tr>
        <tr>
            <td>New Group Name: </td>
            <td>
                <asp:TextBox ID="txtGroupName" runat="server" Width="170px"></asp:TextBox>
                <br />
                <asp:Label ID="lblError" runat="server" ForeColor="Red" Visible="false"></asp:Label>
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:Button ID="btnAddGroup" runat="server" Text="Add Group" OnClick="btnAddGroup_Click" Width="120px" />
            </td>
        </tr>
    </table>
</asp:Content>
 
<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
    Add Group
</asp:Content>
 
<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">
    Add Group
</asp:Content>
 
My aspx.cs:

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
 
namespace SP_Operation.Layouts.SP_Operation
{
    public partial class AddGroup : LayoutsPageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //To Get All Group
                GetAllSPGroup();
            }
        }
 
        private void GetAllSPGroup()
        {
            using (SPSite spSite = new SPSite(SPContext.Current.Web.Url))
            {
                using (SPWeb spWeb = spSite.OpenWeb())
                {
                    foreach (SPGroup spGroup in spWeb.Groups)
                    {
                        ddlGroup.Items.Add(spGroup.Name);
                    }
                }
            }
        }

        
protected void btnAddGroup_Click(object sender, EventArgs e)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate
                {
                    SPSite site = SPContext.Current.Site;
                    SPWeb web = site.OpenWeb();
                    SPGroupCollection grpCol = web.SiteGroups;
 
                    //Check Whether Group Name Already Exist
                    bool groupExist = GroupExists(grpCol, txtGroupName.Text);
                    if (!groupExist)
                    {
                        grpCol.Add(txtGroupName.Text, web.CurrentUser, web.CurrentUser, "This is My Custom Group");
 

                        //Assigning Role To Newly Created Group...
                        SPGroup spnewGroup = web.SiteGroups[txtGroupName.Text];
                        SPRoleDefinition role=web.RoleDefinitions["Read"];
                        SPRoleAssignment roleAssignement = new SPRoleAssignment(spnewGroup);
                        roleAssignement.RoleDefinitionBindings.Add(role);
                        web.RoleAssignments.Add(roleAssignement);
                        web.Update();
 
                        GetAllSPGroup();
                        txtGroupName.Text = "";
                        lblError.Text = "Group Added Successfully...";
                        lblError.Visible = true;
                    }
                    else
                    {
                        lblError.Text = "Group Name Already Exist...";
                        lblError.Visible = true;
                    }
                });
            }
            catch(SPException SpEx)
            {
            }
        }
 
        public static bool GroupExists(SPGroupCollection groups, string name)
        {
            try
            {
                if (string.IsNullOrEmpty(name) ||
                        (name.Length > 255) ||
                        (groups == null) ||
                        (groups.Count == 0))
                    return false;
                else
                    return (groups.GetCollection(new String[] { name }).Count > 0);
            }
            catch
            {
                return false;
            }
        }
    }
}

  Comment:
 
By Yogesh  On  27/11/2013 10:24:54
awesome!!
         HOME   |   Submit Article   |   Contact Us   |   About Us   |   Terms & Condition   |   Advertise With us