2016-10-10 71 views
0

我需要做的是讓我說有100個用戶,並且我需要爲他們提供我擁有的文件夾的權限我的谷歌驅動器每個人都將有自己的文件夾,只有他們可以看到,我可以看到....所以我會創建一個文件夾稱爲工作鮑勃,我需要給他的權利文件夾相同的起訴等。鮑勃和蘇無法看到彼此的工作文件夾,但我可以看到它新手腳本我正在通過Google Apps Script爲文件夾授予權限

我能找到接近的唯一事情就是

function SetRights() { 
    var folder = DriveApp.createFolder('WORK'); 
    folder.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.EDIT) 
} 

但文件夾都準備創建和我不不想給整個領域的權利。

+0

你應該使用'getFoldersByName()'預先存在的文件夾的方法:https://developers.google.com/apps-script/reference/drive/drive-app#getFoldersByName(String),然後設置權限。 – doublesharp

+0

對於'setSharing()',你可以指定一個用戶類而不是整個域:https://developers.google.com/apps-script/reference/drive/folder#setSharing(Access,Permission) – doublesharp

+0

你也可以使用'addEditors()'和'addViewers()'(單數或複數)爲特定的電子郵件地址:https://developers.google.com/apps-script/reference/drive/folder#addeditorsemailaddresses – doublesharp

回答

0

您可以使用DriveApp.getFoldersByName()獲取現有文件夾以返回FolderIterator。循環播放文件夾,使用folder.addEditor()folder.addViewer()方法將查看器和編輯器添加到每個文件夾。

function AddUsersToFolder() { 
    // get folders (FolderIterator) by name, should probably be dynamic 
    var folders = DriveApp.getFoldersByName('FOLDERNAME'); 
    // loop over all the folders 
    while (folders.hasNext()) { 
     // get the current folder from the iterator 
     var folder = folders.next(); 
     // add viewer(s) and editor(s), should also be dynamic 
     folder.addEditor('[email protected]'); 
     folder.addViewer('[email protected]'); 
    } 
} 
+0

當我做這樣的事情函數AddUsersToFolder(){ var folder = DriveApp.getFoldersByName('Work'); folder.addEditor('[email protected]'); } 我得到一個錯誤..... TypeError:在對象FolderIterator中找不到函數addEditor。 (第3行,文件「Test」) – Jeremy

+0

對不起 - 'getFoldersByName()'方法實際返回一個'FolderIterator',你需要循環才能獲取每個文件夾 - 我已經更新了答案。 – doublesharp

+0

如果您知道可以使用['getFolderById()'](https://developers.google.com/apps-script/reference/drive/drive-app#getfolderbyidid)的文件夾的ID,而只返回一個'文件夾「而不是」FolderIterator「並避免循環。 – doublesharp