This documentation is archived and is not being maintained.

SP.RoleDefinitionBindingCollection object

SharePoint 2013

Defines the role definitions that are bound to a role assignment object.

Last modified: March 09, 2015

Applies to: apps for SharePoint | SharePoint Foundation 2013 | SharePoint Server 2013

var object = new SP.RoleDefinitionBindingCollection()

The RoleDefinitionBindingCollection object has the following members.

Constructor

The RoleDefinitionBindingCollection object has the following constructor.

Constructor

Description

RoleDefinitionBindingCollection

Initializes a new instance of the SP.RoleDefinitionBindingCollection object.

Methods

The RoleDefinitionBindingCollection object has the following methods.

Method

Description

add

Adds the specified role definition to the binding collection.

itemAt

Gets the role definition at the specified index in the binding collection.

newObject

remove

Removes the specified role definition from the binding collection.

removeAll

Removes all role definitions from the binding collection.

Properties

The RoleDefinitionBindingCollection object has the following properties.

Property

Description

childItemType

item

Gets the role definition at the specified index in the binding collection.

The following example creates an input button on an application page that creates a new permission level and adds a user to a specific list with that permission level.

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<script type="text/ecmascript" language="ecmascript">

   function runCode() {

       var clientContext = new SP.ClientContext();
       var siteColl = clientContext.get_site();
       var site = clientContext.get_web();

       // Set up permissions.
       var permissions = new SP.BasePermissions();
       permissions.set(SP.PermissionKind.viewListItems);
       permissions.set(SP.PermissionKind.addListItems);
       permissions.set(SP.PermissionKind.editListItems);
       permissions.set(SP.PermissionKind.deleteListItems);

       // Create a new role definition.
       var roleDefinitionCreationInfo = new SP.RoleDefinitionCreationInformation();
       roleDefinitionCreationInfo.set_name('Manage List Items');
       roleDefinitionCreationInfo.set_description('Allows a user to manage list items');
       roleDefinitionCreationInfo.set_basePermissions(permissions);
       var roleDefinition = siteColl.get_rootWeb().get_roleDefinitions().add(roleDefinitionCreationInfo);

       // Create a new RoleDefinitionBindingCollection.
       var newBindings = SP.RoleDefinitionBindingCollection.newObject(clientContext);
       // Add the role to the collection.
       newBindings.add(roleDefinition);

       // Get the list to work with and break permissions so its permissions can be managed directly.
       var targetList = site.get_lists().getByTitle('Announcements');
       targetList.breakRoleInheritance(true, false);

       // Get the RoleAssignmentCollection for the target list.
       var assignments = targetList.get_roleAssignments();
       // Add the user to the target list and assign the use to the new RoleDefinitionBindingCollection.
       var roleAssignment = assignments.add(site.get_currentUser(), newBindings);
       clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded),Function.createDelegate(this, this.onQueryFailed));
   }

   function onQuerySucceeded() {
       alert('Security modified');
   }

   function onQueryFailed(sender, args) {
       alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
   }

</script>

    <input id="Button1" type="button" value="Run Code" onclick="runCode()" />

</asp:Content>

See RoleDefinitionBindingCollection resource for more information.

Endpoint URI structure

http://<sitecollection>/<site>/_api/web/RoleAssignments(principalid)/RoleDefinitionBindings

HTTP requests

This resource supports the following HTTP commands:

GET syntax

GET http://<sitecollection>/<site>/_api/web/RoleAssignments(principalid)/RoleDefinitionBindings

POST syntax

POST http://<sitecollection>/<site>/_api/web/RoleAssignments(principalid)/RoleDefinitionBindings
Show: