JSOM を介して List オブジェクトに対して固有のアクセス許可を有効にする方法
SP.SecuringObject.hasUniqueRoleAssignments プロパティを使用して、ロールの割り当てが List に対して一意に定義されているか、親のセキュリティ保護可能なオブジェクトから継承されているかを判断します。
SP.SecurableObject.breakRoleInheritance(copyRoleAssignments, clearSubscopes) メソッドを使用して、List オブジェクトに一意のロールの割り当てを設定します。
例
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
し、現在のユーザーにアクセス許可を付与する方法を示しています。
例
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());
}
);