Permissions 如何确保Google Drive中的文件权限下降

Permissions 如何确保Google Drive中的文件权限下降,permissions,google-apps-script,google-drive-api,directory,Permissions,Google Apps Script,Google Drive Api,Directory,我正在尝试编写一个脚本,该脚本接受文件夹的当前编辑器,并将其权限更改为仅在最低级别的文件夹中查看。一切正常,只是Google Drive似乎花了太长时间才将顶部文件夹(仅查看)的权限应用于所有子文件夹。因此,TOP_FOLDER的编辑器(由于它是从TOP_FOLDER继承的,所以最初拥有对所有子文件夹的编辑权限)在我运行脚本时保留此权限,即使我在驱动器中执行完全相同的操作时,他们在我刷新页面后都具有仅查看权限 有人对如何解决这个问题有什么想法吗 function fixFilePermissio

我正在尝试编写一个脚本,该脚本接受文件夹的当前编辑器,并将其权限更改为仅在最低级别的文件夹中查看。一切正常,只是Google Drive似乎花了太长时间才将顶部文件夹(仅查看)的权限应用于所有子文件夹。因此,TOP_FOLDER的编辑器(由于它是从TOP_FOLDER继承的,所以最初拥有对所有子文件夹的编辑权限)在我运行脚本时保留此权限,即使我在驱动器中执行完全相同的操作时,他们在我刷新页面后都具有仅查看权限

有人对如何解决这个问题有什么想法吗

function fixFilePermissions() {

  var oldEditors = TOP_FOLDER.getEditors();

  TOP_FOLDER.addEditors(ADMINS);

  //remove All but the admins
  for each (var editor in oldEditors){
    //if editor is not an admin
    if(ADMINS.indexOf(editor) < 0){
      //remove editor
      TOP_FOLDER.removeEditor(editor);
      //add back as viewer
      TOP_FOLDER.addViewer(editor);
    }
  }

  recFixFilePermissions(TOP_FOLDER);

}


function recFixFilePermissions(folder){

  while(folder.getEditors().length > ADMINS.length){
    Utilities.sleep(200);
    Logger.log(folder.getEditors().length - ADMINS.length);
  }

  Logger.log("Folder: "+folder.getName());
  Logger.log("Editors: "+folder.getEditors());
  Logger.log("Viewers: "+folder.getViewers());


  if(folder.getFolders().length > 0){

    for each (subfolder in folder.getFolders()){
      recFixFilePermissions(subfolder);
    }

    Logger.log("Has Subfolder");    

  }else{

    for each (var person in folder.getViewers()){
      folder.addEditor(person);
      Logger.log("Gave " + person + " Edit Access to " + folder.getName());
    }
  }

}
函数fixFilePermissions(){
var oldEditors=TOP_FOLDER.getEditors();
顶层文件夹。添加器(管理员);
//删除除管理员之外的所有管理员
对于每个(旧编辑器中的变量编辑器){
//如果编辑器不是管理员
if(ADMINS.indexOf(编辑器)<0){
//删除编辑器
TOP_文件夹。RemoveEdit(编辑器);
//添加回查看器
TOP_FOLDER.addViewer(编辑器);
}
}
recFixFilePermissions(顶级文件夹);
}
函数recFixFilePermissions(文件夹){
while(folder.getEditors().length>ADMINS.length){
睡眠(200);
Logger.log(folder.getEditors().length-ADMINS.length);
}
Logger.log(“文件夹:”+Folder.getName());
Logger.log(“Editors:+folder.getEditors());
Logger.log(“查看器:+文件夹.getViewers());
如果(folder.getFolders().length>0){
对于每个(folder.getFolders()中的子文件夹){
recFixFilePermissions(子文件夹);
}
log(“有子文件夹”);
}否则{
对于每个(文件夹.getViewers()中的var person){
文件夹。增补者(人);
Logger.log(“授予”+个人+”对“+文件夹.getName()的编辑访问权);
}
}
}