|
var ss = SpreadsheetApp.getActiveSpreadsheet(); |
|
var activeSheet = ss.getSheets()[0]; |
|
|
|
function exportGoogleDrivePermissionr() { |
|
firstStep(); |
|
adminListAllTeamDrives(); |
|
} |
|
|
|
function firstStep(sheetName) { |
|
//シートをクリア |
|
activeSheet.clear(); |
|
activeSheet.getRange(1, 1).setValue("ドライブ名") |
|
activeSheet.getRange(1, 2).setValue("ドライブID") |
|
activeSheet.getRange(1, 3).setValue("管理者") |
|
activeSheet.getRange(1, 4).setValue("コンテンツ管理者") |
|
activeSheet.getRange(1, 5).setValue("投稿者") |
|
activeSheet.getRange(1, 6).setValue("閲覧者(コメント可)") |
|
activeSheet.getRange(1, 7).setValue("閲覧者") |
|
activeSheet.getRange("A1:G1").setBackground("#7169e5"); |
|
activeSheet.getRange("A1:G1").setFontColor("#ffffff"); |
|
} |
|
|
|
function adminListAllTeamDrives(){ |
|
//変数の宣言 |
|
var pageTokenDrive; |
|
var pageTokenMember; |
|
var teamDrives; |
|
var memberPermissions; |
|
|
|
//権限ごとのアドレスを格納 |
|
var organizerData = ''; |
|
var fileOrganizerData = ''; |
|
var writerData = ''; |
|
var commenterData = ''; |
|
var readerData = ''; |
|
|
|
//ドライブ名の一覧を取得 |
|
do{ |
|
teamDrives = Drive.Drives.list({pageToken:pageTokenDrive,maxResults:100,useDomainAdminAccess:true}) |
|
if(teamDrives.items && teamDrives.items.length > 0){ |
|
for (var i = 0; i < teamDrives.items.length; i++) { |
|
|
|
var teamDrive = teamDrives.items[i]; |
|
|
|
//ドライブ名の一覧情報を転記 |
|
activeSheet.getRange(i+2, 1).setValue(teamDrive.name) |
|
|
|
//ドライブIDを転記 |
|
activeSheet.getRange(i+2, 2).setValue(teamDrive.id) |
|
|
|
//ドライブごとのメンバーの権限を取得 |
|
do{ |
|
memberPermissions = Drive.Permissions.list(teamDrive.id, {pageToken:pageTokenMember,supportsAllDrives:true}) ; |
|
|
|
if(memberPermissions.items && memberPermissions.items.length > 0){ |
|
for (var j = 0; j < memberPermissions.items.length; j++) { |
|
|
|
var permission = memberPermissions.items[j]; |
|
//権限ごとに場合分けして変数に格納 |
|
switch(permission.role){ |
|
case "organizer": |
|
organizerData += permission.emailAddress + String.fromCharCode(10) ; |
|
break; |
|
case "fileOrganizer": |
|
fileOrganizerData += permission.emailAddress + String.fromCharCode(10) ; |
|
break; |
|
case "writer": |
|
writerData += permission.emailAddress + String.fromCharCode(10) ; |
|
break; |
|
case "commenter": |
|
commenterData += permission.emailAddress + String.fromCharCode(10) ; |
|
break; |
|
case "reader": |
|
readerData += permission.emailAddress + String.fromCharCode(10) ; |
|
break; |
|
} |
|
|
|
} |
|
|
|
//権限ごとに格納した内容を転記 |
|
activeSheet.getRange(i+2,3).setValue(organizerData.trim()); |
|
organizerData = ''; |
|
|
|
activeSheet.getRange(i+2,4).setValue(fileOrganizerData.trim()); |
|
fileOrganizerData = ''; |
|
|
|
activeSheet.getRange(i+2,5).setValue(writerData.trim()); |
|
writerData = ''; |
|
|
|
activeSheet.getRange(i+2,6).setValue(commenterData.trim()); |
|
commenterData = ''; |
|
|
|
activeSheet.getRange(i+2,7).setValue(readerData.trim()); |
|
readerData = ''; |
|
|
|
activeSheet.getRange(i+2,1,i+2,6).setWrap(true); |
|
activeSheet.getRange(i+2,1,i+2,6).setVerticalAlignment('top'); |
|
activeSheet.getRange(i+2,1,i+2,6).setHorizontalAlignment('left'); |
|
|
|
}else{ |
|
Logger.log("メンバー/権限が見つかりませんでした。"); |
|
} |
|
|
|
//次のメンバーのpageTokenを取得する |
|
pageTokenMember = memberPermissions.nextPageTokens; |
|
|
|
}while(pageTokenMember) |
|
} |
|
|
|
}else{ |
|
Logger.log("共有ドライブが見つかりませんでした。"); |
|
} |
|
|
|
//次のドライブのpageTokenを取得する |
|
pageTokenDrive = teamDrives.nextPageToken |
|
}while(pageTokenDrive) |
|
|
|
} |