Created
April 26, 2018 05:49
-
-
Save awa2/8405320adf20d2e922fbc04dac4ec399 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getSettingAryFromApi() { | |
Log = new LogSheet('log'); | |
// Stat = new LogSheet('statistics'); | |
Log.info('[ ] - Starting getSettingAryFromApi()'); | |
try { | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var s = ss.getSheetByName('main'); | |
var creds = { | |
domain : 'c-fo.com' | |
}; | |
var groups = getGroupList(creds); | |
var settings = getGroupSetting(groups); | |
// Write down to Spreadsheet | |
s.getRange(4,2,settings.length,settings[0].length).setValues(settings); | |
s.getRange(1,4).setValue(new Date()); | |
s.getRange(2,4).setValue(settings.length); | |
Log.success(settings.length + ' groups processed'); | |
} catch (error) { | |
Log.error(error.message); | |
} | |
return 0; | |
} | |
function getGroupList(creds){ | |
var groupList = []; | |
do { | |
var gp = AdminDirectory.Groups.list(creds); | |
Array.prototype.push.apply(groupList,gp.groups); | |
if(gp.hasOwnProperty('nextPageToken')){ | |
creds.pageToken = gp.nextPageToken; | |
} | |
} while (gp.nextPageToken); | |
return groupList; | |
} | |
function getGroupSetting(groups){ | |
var results = []; | |
for (var i = 0; i < groups.length; i++) { | |
var group = groups[i]; | |
var gp_setting = AdminGroupsSettings.Groups.get(group.email); | |
results[i] = []; | |
results[i].push(i.toString()); | |
results[i].push(gp_setting.email); | |
results[i].push(gp_setting.name); | |
results[i].push(gp_setting.description); | |
results[i].push(gp_setting.whoCanViewMembership); | |
results[i].push(''); | |
results[i].push(gp_setting.whoCanViewGroup); | |
results[i].push(gp_setting.whoCanPostMessage); | |
results[i].push(gp_setting.whoCanJoin); | |
results[i].push(gp_setting.allowExternalMembers); | |
results[i].push(gp_setting.whoCanAdd); | |
results[i].push(''); | |
// Risk Evaluate | |
risk = 0; | |
if(gp_setting.whoCanViewGroup.match(/ANYONE/)){ risk = risk + 3; }; | |
if(gp_setting.whoCanPostMessage.match(/ANYONE/)){ risk = risk + 1; }; | |
if(gp_setting.whoCanJoin.match(/ANYONE/)){ risk = risk + 3; }; | |
results[i].push(risk); | |
}; | |
return results; | |
} | |
function LogSheet(name){ | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
this.l = ss.getSheetByName(name); | |
return; | |
} | |
LogSheet.prototype.info = function(mes,color){ | |
this.l.insertRows(1); | |
this.l.getRange('A1').setValue(new Date()); | |
this.l.getRange('B1').setValue(mes); | |
color = color ? color : 'white'; | |
this.l.getRange('A1:B1').setBackground(color); | |
} | |
LogSheet.prototype.success = function(mes){ this.info('[+] - ' + mes,'#E9FAD9') }; | |
LogSheet.prototype.error = function(mes){ this.info('[-] - ' + mes,'#FADBDA') }; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment