SP.SecurableObject object
An object that can be assigned security permissions.
Applies to: apps for SharePoint | SharePoint Foundation 2013 | SharePoint Server 2013
var object = new SP.SecurableObject()
Members
The SecurableObject object has the following members.
Constructor
The SecurableObject object has the following constructor.
Constructor |
Description |
---|---|
Initializes a new instance of the SP.SecurableObject object. |
Methods
The SecurableObject object has the following methods.
Method |
Description |
---|---|
Creates unique role assignments for the securable object. |
|
Resets the role inheritance for the securable object and inherits role assignments from the parent securable object. |
Properties
The SecurableObject object has the following properties.
Property |
Description |
---|---|
Gets the object where role assignments for this object are defined. |
|
Gets a value that specifies whether the role assignments are uniquely defined for this securable object or inherited from a parent securable object. |
|
Gets the role assignments for the securable object. |
Remarks
The HasUniqueRoleAssignments property is not included in the default scalar property set for this type.
Example
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 a securable object to work with (the Announcements list), and use the SecurableObject.BreakPermissions method to break permissions so they can be managed directly.
var listSecurableObject = site.get_lists().getByTitle('Announcements');
listSecurableObject.breakRoleInheritance(true, false);
// Use the SecurableObject.roleAssignments property to get the RoleAssignmentCollection for the list.
var assignments = listSecurableObject.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>