iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
IT 管理

30 天玩轉 GAS: 打造你的個人自動化助手系列 第 23

[Day 23] GAS - Google Drive 實戰演練 - 團隊檔案權限管理小幫手

  • 分享至 

  • xImage
  •  

在管理一個大型組織中成員的雲端權限,每當有新的大量成員加入時
我們就必須手動一個一個開雲端權限,真的是超級累人的工作,有時候甚至不止一個雲端硬碟
如今有 GAS 我們就可以實作「團隊檔案權限管理小幫手」!
可以利用 Google Apps Script 來批次管理團隊成員在 Google Drive 上的檔案權限啦~

今天舉一個比較小型的例子,分為六步驟來說明:

步驟 1: 設定檔案與成員資料

  • 首先,定義你要管理的檔案或資料夾的 ID,以及團隊成員的 Email。你可以把這些資料存在 Google Sheets 中,並讓程式讀取它們。
function managePermissions() {
  // 定義 Google Sheets 的 ID,這個 Sheets 用來儲存檔案ID和團隊成員Email
  var sheetId = '你的GoogleSheetID';
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName('Permissions');  // 假設有個名為 "Permissions" 的工作表
  
  // 取得檔案與成員資料
  var data = sheet.getDataRange().getValues();
  
  for (var i = 1; i < data.length; i++) { // 從第二列開始,第一列是標題
    var fileId = data[i][0];  // 假設第一欄是檔案ID
    var email = data[i][1];   // 假設第二欄是成員的Email
    var role = data[i][2];    // 假設第三欄是權限 (如:VIEWER 或 EDITOR)
    
    updatePermission(fileId, email, role);
  }
}

步驟 2: 更新成員的權限

  • 使用 DriveApp 來更新每個檔案的權限。根據成員的角色(查看者或編輯者)來設置相應的權限。
function updatePermission(fileId, email, role) {
  var file = DriveApp.getFileById(fileId);
  
  if (role === 'VIEWER') {
    file.addViewer(email);  // 增加為查看者
    Logger.log('Added ' + email + ' as a viewer to file: ' + fileId);
  } else if (role === 'EDITOR') {
    file.addEditor(email);  // 增加為編輯者
    Logger.log('Added ' + email + ' as an editor to file: ' + fileId);
  } else {
    Logger.log('Invalid role specified for ' + email + ' on file: ' + fileId);
  }
}

步驟 3: 設置 Google Sheets 資料格式

  • 在 Google Sheets 中,創建一個新的工作表命名為 Permissions,並填入以下欄位:
    • File ID / Folder ID: 你要管理的檔案或資料夾的 ID。
    • Email: 團隊成員的電子郵件地址。
    • Role: 權限類型,可以是 VIEWEREDITOR

例如:

File ID / Folder ID Email Role
1aBcDeFgHiJkLmNoPqRs member1@example.com EDITOR
1aBcDeFgHiJkLmNoPqRs member2@example.com VIEWER
1xYzUvWxAbCdEfGhIjKl member3@example.com EDITOR

步驟 4: 執行程式

  • 保存並執行 managePermissions() 函數,程式會自動讀取 Google Sheets 中的資料,並根據每個成員的權限設置相應的檔案分享權限。

步驟 5: 進階功能:移除使用者權限

  • 如果需要,還可以新增一個功能來移除成員的權限。
function removePermission(fileId, email, role) {
  var file = DriveApp.getFileById(fileId);
  
  if (role === 'VIEWER') {
    file.removeViewer(email);  // 移除查看者
    Logger.log('Removed ' + email + ' as a viewer from file: ' + fileId);
  } else if (role === 'EDITOR') {
    file.removeEditor(email);  // 移除編輯者
    Logger.log('Removed ' + email + ' as an editor from file: ' + fileId);
  }
}

步驟 6: 自動化 - 例行性更新(optional)

  • 你可以設置一個 time trigger 時間觸發器,讓程式定期運行,去自動檢查與更新檔案的權限
  • 進入 Google Apps Script 編輯器中的「觸發器」選項,設置定時觸發器,例如每週或每天運行一次 managePermissions() 函數。

這樣的團隊檔案權限管理器可以自動化地管理 Google Drive 檔案的查看或編輯權限~
尤其對於需要頻繁更新團隊成員或權限的情境非常實用!
之後就再也不用一個一個設置團隊成員的權限,可以快速用 google sheet 來做管理與追蹤唷!


上一篇
[Day 22] GAS - Google Drive 操作大全 Part2 - 權限管理
系列文
30 天玩轉 GAS: 打造你的個人自動化助手23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言