Here is the code to create a new permission level and add a user to the list " UserList"
using System; using Microsoft.SharePoint.Client; namespace NewRole { class RoleDefinitionExample { static void Main() { string siteUrl = "http://MyServer/sites/MySiteCollection"; ClientContext clientContext = new ClientContext(siteUrl); Site collSite = clientContext.Site; Web site = clientContext.Web; // Set up permissions. BasePermissions permissions = new BasePermissions(); permissions.Set(PermissionKind.ViewListItems); permissions.Set(PermissionKind.AddListItems); permissions.Set(PermissionKind.EditListItems); permissions.Set(PermissionKind.DeleteListItems); // Create a new role definition. RoleDefinitionCreationInformation rdcInfo = new RoleDefinitionCreationInformation(); rdcInfo.Name = "Manage List Items"; rdcInfo.Description = "Allows a user to manage list items"; rdcInfo.BasePermissions = permissions; RoleDefinition roleDef = collSite.RootWeb.RoleDefinitions.Add(rdcInfo); // Create a new RoleDefinitionBindingCollection object. RoleDefinitionBindingCollection collRDB = new RoleDefinitionBindingCollection(clientContext); // Add the role to the collection. collRDB.Add(roleDef); // Get the list to work with and break permissions so its permissions can be managed directly. List targetList = site.Lists.GetByTitle("UserList"); targetList.BreakRoleInheritance(true, false); // Get the RoleAssignmentCollection for the target list. RoleAssignmentCollection collRoleAssign = targetList.RoleAssignments; // Add the user to the target list and assign the user to the new RoleDefinitionBindingCollection. RoleAssignment rollAssign = collRoleAssign.Add(site.CurrentUser, collRDB); clientContext.ExecuteQuery(); Console.WriteLine("Security modified"); } } }
No comments:
Post a Comment