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