如何通过 JSOM 为 List 对象启用唯一权限
Use SP.SecurableObject.hasUniqueRoleAssignments 属性 http://msdn.microsoft.com/en-us/library/office/jj246682(v=office.15).aspx确定角色分配是为 List 唯一定义还是从父级安全对象继承。
Use SP.SecurableObject.breakRoleInheritance(copyRoleAssignments,clearSubscopes) 方法 http://msdn.microsoft.com/en-us/library/office/ee659518(v=office.14).aspx为 List 对象设置唯一的角色分配。
Example
var listTitle = 'Documents';
var context = SP.ClientContext.get_current();
var list = context.get_web().get_lists().getByTitle(listTitle);
context.load(list,'HasUniqueRoleAssignments');
context.executeQueryAsync(
function(){
var hasUniqueAssgns = list.get_hasUniqueRoleAssignments();
if(!hasUniqueAssgns) {
list.breakRoleInheritance(false, true);
context.executeQueryAsync(
function(){
console.log('Success');
},
function(sender,args){
console.log(args.get_message());
}
);
}
},
function(sender,args){
console.log(args.get_message());
}
);
如何通过 JSOM 为 List 对象授予自定义权限
以下示例演示了如何中断 List 对象的角色继承并授予Full Control
当前用户的权限
Example
var listTitle = 'Documents';
var context = SP.ClientContext.get_current();
var list = context.get_web().get_lists().getByTitle(listTitle);
var currentUser = context.get_web().get_currentUser();
list.breakRoleInheritance(false, true); // break role inheritance first!
var roleDefBindingColl = SP.RoleDefinitionBindingCollection.newObject(context);
roleDefBindingColl.add(context.get_web().get_roleDefinitions().getByType(SP.RoleType.administrator));
list.get_roleAssignments().add(currentUser, roleDefBindingColl);
context.executeQueryAsync(
function(){
console.log('Success');
},
function(sender,args){
console.log(args.get_message());
}
);