使用SharePoint Rest API基于组名称获取SharePoint组权限级别名称



我正在尝试使用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阅读有关RoleAssignmentRoleDefinition

的更多信息

下面的函数返回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');
    }
}

相关内容

  • 没有找到相关文章

最新更新