从编辑权限更改为查看权限后,我遇到了嵌套在文件夹中的 DriveApp 文件不继承文件夹权限的问题。步骤如下:
通过以下方式将具有“编辑”权限的文件夹(包含内部文件)添加到另一个用户的驱动器:
userFolder.addFolder(folderToShare);
folderToShare.addEditor(user);
...然后再次添加文件夹,这次将“编辑”权限更改为“查看”权限:
userFolder.addFolder(folderToShare);
folderToShare.addViewer(user);
“文件夹”中的内部文件应根据父文件夹的权限更改权限。当“文件夹”更改为用户的“查看”权限时,用户应继承文件夹中文件的“查看”权限。但是,如果在调用 folder.addViewer(user) 时用户对“文件夹”中的文件具有“编辑”权限,则该文件夹将获得“查看”权限,但文件夹中的文件仍具有用户的“编辑”权限不变。
var folderToShare = DriveApp.getFolderById(folderId);
var userFolders = DriveApp.getFoldersByName(thisUser[1]);
if (userFolders.hasNext() == false) {
// do something
} else var userFolder = userFolders.next();
userFolder.addFolder(folderToShare);
folderToShare.addEditor(thisUser[1]);
// folder and files in folder get edit permission
// trying the following on the folder results in view permission on the folder, but edit permission remains on the folder's files
userFolder.addFolder(folderToShare);
folderToShare.addViewer(thisUser[1]);
我在使用 .addViewer(user) 之前尝试过 .removeEditor(user),但无济于事。我是否必须调用 folderToShare.getFiles() 并迭代以更改每个文件的权限,还是我遗漏了什么?