0

我正在尝试使用 SharePoint Rest API 根据组名称获取 SharePoint 用户组权限(例如:读取、贡献)。我的目标是获取组的权限级别,并根据权限级别禁用我们自定义应用程序上的功能。我已尝试使用以下 url 获取组属性,但无法获得组的权限级别。谁能指导我如何获得用户组权限。

尝试的选项:

URL = http://Servename/Site/api/web/SiteGroups/getByName('组名')

4

2 回答 2

0

您将无法仅从 SiteGroup 对象中获取此信息。您的休息呼叫仅检索组信息(标题、ID、描述和其他元数据)。要检索权限级别,您需要再调用几次。请参阅https://msdn.microsoft.com/en-us/library/office/dn531432.aspx以了解有关RoleAssignmentRoleDefinition的更多信息

于 2016-04-15T15:07:29.530 回答
0

下面的函数返回组权限级别标题和其余信息:

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');
    }
}
于 2016-12-14T11:49:19.030 回答