Sep 19, 2009

Creating Custom Role Definition programmatically

Sharepoint provides many permission level like Full control ,Contributor,visitor etc...but there are scenario where we need to create our own role definitions which may be the combination of permissions available in two different OOB role definitions..

So through this we can create our custom permissions :

------------------------------------------------------------------------

SPWeb web= SPContext.Current.Web;

SPRoleDefinition role = new SPRoleDefinition();
role.Name = "Custom Role";

role.Description = "Custom permission level to View,Edit,Add list items";

role.BasePermissions = SPBasePermissions.OpenItems

| SPBasePermissions.ViewVersions

| SPBasePermissions.ViewFormPages

| SPBasePermissions.Open

| SPBasePermissions.ViewPages

| SPBasePermissions.UseClientIntegration

| SPBasePermissions.UseRemoteAPIs

| SPBasePermissions.CreateAlerts

| SPBasePermissions.ViewListItems

| SPBasePermissions.ViewPages

| SPBasePermissions.EditListItems

| SPBasePermissions.AddListItems

| SPBasePermissions.DeleteListItems;

web.AllowUnsafeUpdates = true;

web.RoleDefinitions.Add(role);

------------------------------------------------------

Once this is done ..this permission will be available when we create some group or add some user to the site...

Enjoy!!!

2 comments:

  1. Saurabh,

    The code as listed does not work (null reference error). You need to change

    SPRoleDefinition role = null;

    to

    SPRoleDefinition role = new SPRoleDefinition();

    ReplyDelete
    Replies
    1. @Jeremiah -Thanks for the comment.. I have updated the code.. :)

      Delete