How to create a custom permission level in SharePoint 2010

In this article we will be seeing how to create a custom permission level in SharePoint 2010.

In this article we will be seeing the following:

  • Create a custom permission level using console application

  • Create a custom permission level using powershell script


Steps Involved:

  • Open visual studio 2010.

  • Create a new console application.

  • Add the following references. a. Microsoft.SharePoint.dll

  • Add the following namespaces. a. Using Microsoft.SharePoint;


Create a custom permission level using console application

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint;

namespace CustomPermissionLevel { class Program { static void Main(string[] args) { using (SPSite site = new SPSite("http://servername:2020/")) { using (SPWeb web = site.RootWeb) { SPRoleDefinition role = new SPRoleDefinition(); role.Name = "Custom Permission Level"; role.Description = "Description: Custom Permission level"; role.BasePermissions = SPBasePermissions.AddAndCustomizePages |SPBasePermissions.ApplyStyleSheets; web.RoleDefinitions.Add(role); } }

} } }

Create a custom permission level using powershell script:

$site=Get-SPSite "http://servername:2020/" $web=$site.RootWeb; $customPermissionLevel=New-Object Microsoft.SharePoint.SPRoleDefinition $customPermissionLevel.Name="Custom Permission Level Test" $customPermissionLevel.Description="Description: Custom Permission Level Test" $customPermissionLevel.BasePermissions="EmptyMask, ViewListItems, AddListItems, EditListItems, DeleteListItems, ApproveItems, OpenItems, ViewVersions, DeleteVersions, CancelCheckout, ManagePersonalViews, ManageLists, ViewFormPages, Open, ViewPages, AddAndCustomizePages, ApplyThemeAndBorder, ApplyStyleSheets, ViewUsageData, CreateSSCSite, ManageSubwebs, CreateGroups, ManagePermissions, BrowseDirectories, BrowseUserInfo, AddDelPrivateWebParts, UpdatePersonalWebParts, ManageWeb, UseClientIntegration, UseRemoteAPIs, ManageAlerts, CreateAlerts, EditMyUserInfo, EnumeratePermissions, FullMask"

$web.RoleDefinitions.Add($customPermissionLevel); $web.Dispose() $site.Dispose()

Go to Site Actions => Site Settings => Site Permissions =>Permission Level.


You could see a new custom permission level is created successfully.