我正在尝试使用JavaScript设置具有“Everyone Except External Users”的特定组的所有人填充SharePoint列表。问题是我不知道如何获得该组中包含的每个人的名字。我目前通过使用... currentContext.get_web()。get_siteUsers()来绕过这一点,以获得每个人都可以访问网站,但这也是让那些不应该被包含在列表中的人。
如何使用JavaScript获取“Everyone Except External Users”设置的组名称列表?
您可以使用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());
}
你见过这个帖子吗? MSDN Social post - REST API to get membership of Everyone except external users它有点陈旧但是很好地描述了REST调用:你可以使用它来获取所有组成员,然后按照原始海报的建议迭代你的RoleAssigments并查看两个列表中的名称。