У меня есть член в каждой группе нашего домена, и я хочу перечислить всех участников и группы, которые являются членами каждой группы.Я получаю сообщения об ошибках, когда в группе есть запрещенные участники, поскольку, как представляется, перечисляются некоторые из этих участников, и когда он выполняет итерацию по группам, являющимся членами, происходит сбой, если есть запрещенные участники с ошибкой доступа.
function listGroups() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var groups = GroupsApp.getGroups();
var results = [];
for (var i = 0; i < groups.length; i++){
if(groups[i] != ""){
Utilities.sleep(1000);
results.push([groups[i].getEmail(),groups[i].getUsers().length +" Members in Group"]);
if(groups[i].getUsers().length > 0){
Utilities.sleep(1000);
var members = groups[i].getUsers();
for (var j = 0; j < members.length; j++){
if (members[j] != ""){
results.push([groups[i].getEmail(), members[j].getEmail()]);
}
}
} // end members check
if(groups[i].getGroups().length > 0){
results.push([groups[i].getEmail(),groups[i].getGroups().length + "Member Groups"]);
Utilities.sleep(1000);
var groupInGroup = groups[i].getGroups();
for (var k = 0; k < groupInGroup.length; k++){
if (groupInGroup[k] != ""){
results.push([groups[i].getEmail(),groupInGroup[k].getEmail()]);
}
}
} // end Groups in Groups check.
}
}
var outputSheetName = 'Group Listing '+ new Date();
ss.insertSheet().setName(outputSheetName);
var outputSheet = ss.getSheetByName(outputSheetName);
outputSheet.clear();
outputSheet.getRange(outputSheet.getLastRow()+1,1,results.length,results[0].length).setValues(results);
}
Возможно, только перечисление членов группы по ролям позволит обойти эти ошибки, но, похоже, проблема с .getMembers()
и .getGroups()
Правильно ли я считаю, что единственный способ обойти список членов по роли?