从SharePoint JavaScript上的“除外部用户之外的所有人”组中获取名称列表

时间:2018-10-04 16:21:13

标签: javascript sharepoint-online

我试图用某个使用JavaScript设置了“除外部用户之外的所有人”的特定组的所有人来填充SharePoint列表。问题是我不知道如何获得该组中每个人的名字。我目前通过使用... currentContext.get_web()。get_siteUsers()来使所有人都可以访问网站,从而绕过了这一点,但这也吸引了不应同时包含在列表中的人员。

如何使用JavaScript使用具有“除外部用户外的所有人”设置的组名列表?

2 个答案:

答案 0 :(得分:0)

您可以使用clientContext.get_web().get_siteGroups()获取网站用户组,然后按ID过滤您的用户组,以获取该用户组中的所有用户。查看this link了解详情。

function retrieveAllUsersInGroup() {

    var clientContext = new SP.ClientContext(siteUrl);
    var collGroup = clientContext.get_web().get_siteGroups();
    var oGroup = collGroup.getById(7);
    this.collUser = oGroup.get_users();
    clientContext.load(collUser);


    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    var userInfo = '';

    var userEnumerator = collUser.getEnumerator();
    while (userEnumerator.moveNext()) {
        var oUser = userEnumerator.get_current();
        this.userInfo += '\nUser: ' + oUser.get_title() + 
            '\nID: ' + oUser.get_id() + 
            '\nEmail: ' + oUser.get_email() + 
            '\nLogin Name: ' + oUser.get_loginName();
    }

    alert(userInfo);
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

答案 1 :(得分:0)

您看过这个主题吗? MSDN Social post - REST API to get membership of Everyone except external users 它有点旧,但是描述了REST调用:您可以使用它来获取所有组成员,然后按照原始海报的提示遍历RoleAssigments,并查看两个列表中的名称。