我正在尝试使用SharePoint Rest API根据组名称获取SharePoint用户组权限(例如:读取、贡献)。我的目标是获得该组的权限级别,并根据权限级别禁用我们自定义应用程序上的功能。我尝试了以下url来获取组属性,但无法获取组的权限级别。有人能指导我如何获得用户组权限吗。
尝试的选项:
URL=http://Servename/Site/api/web/SiteGroups/getByName("组名")
您将无法单独从SiteGroup对象中获取此信息。rest调用只检索组信息(标题、id、描述和其他元数据)。若要检索权限级别,您需要再调用几次。看见https://msdn.microsoft.com/en-us/library/office/dn531432.aspx阅读有关RoleAssignment和RoleDefinition
下面的函数返回Group Permission Level标题和其他信息:
function init() {
clientContext = new SP.ClientContext.get_current();
oWeb = clientContext.get_web();
currentUser = oWeb.get_currentUser();
allGroups = currentUser.get_groups();
clientContext.load(allGroups);
clientContext.executeQueryAsync(OnSuccess, OnFailure);
function OnSuccess() {
var grpsEnumerator = allGroups.getEnumerator();
while (grpsEnumerator.moveNext()) {
var group = grpsEnumerator.get_current();
var grpTitle = group.get_title();
var grpid = group.get_id();
console.log('Group Id :' + grpid);
console.log('Group Title :'+ grpTitle);
roleBindings = oWeb.get_roleAssignments().getByPrincipalId(grpid).get_roleDefinitionBindings();
clientContext.load(roleBindings);
clientContext.executeQueryAsync(function () {
var iterator = roleBindings.getEnumerator();
while (iterator.moveNext()) {
current = iterator.get_current();
console.log('Show Role Defination Title : '+ current.get_name());
}
});
}
}
function OnFailure(){
console.log('Process Failed');
}
}