1

我需要检查活动用户(非有效用户)是否有权查看文件夹。权限将通过组的用户成员身份声明。我预计 DriveApp.getAccess(user) 会返回 VIEW 或 EDIT,但它似乎返回 NONE。我应该做什么?

如果此测试脚本是我拥有并共享给另一个文件夹和文件,则 getAccess() 将返回 NONE。

    function myFunction() {
  var folder = DriveApp.getFolderById('0B90FGJizRd-gYTU3ZdsfdsafdsaZTgtNmRiNmQ1NafdsfszE5MWYx');
  Logger.log('owner:'+folder.getOwner().getEmail());
  Logger.log('User:'+Session.getActiveUser().getEmail());
  Logger.log('Sharing access:'+folder.getSharingAccess());
  var access = folder.getAccess('Lijgfjhg@ngs.co.nz');
   Logger.log('active user access:'+access)
  var editors = folder.getEditors();
  Logger.log('editors #'+editors.length)
  for (i=0;i<editors.length;i++){ Logger.log(editors[i].getEmail())};
 var file =  DriveApp.getFileById('1y-m-mfdsafdsfafbPK_ZVQlPi4');
 Logger.log('file owner:'+file.getOwner().getEmail());
   Logger.log('Sharing access:'+file.getSharingAccess());
   access = file.getAccess('Linda.fGF@dgf.co.nz');
     Logger.log('linda user access:'+access)
        access = file.getAccess(Session.getActiveUser().getEmail());
        Logger.log('active user access:'+access)
        Logger.log('editors:'+file.getEditors())
}

[13-10-09 10:45:52:562 NZDT] 所有者:dadfrqwer@dings.co.nz

[13-10-09 10:45:52:622 NZDT] 用户:dafgrfdewjhf@dings.co.nz

[13-10-09 10:45:52:740 NZDT] 共享访问权限:PRIVATE

[13-10-09 10:45:52:933 NZDT] 活跃用户访问:无

[13-10-09 10:45:53:154 NZDT] 编辑 #0

[13-10-09 10:45:53:444 NZDT] 文件所有者:dafrykgsdtfwt@dings.co.nz

[13-10-09 10:45:53:600 NZDT] 共享访问权限:PRIVATE

[13-10-09 10:45:53:899 NZDT] 琳达用户访问权限:无

[13-10-09 10:45:54:118 NZDT] 活跃用户访问:无

[13-10-09 10:45:54:244 NZDT] 编辑:

4

1 回答 1

0

获取编辑器()

根据文档:

如果执行脚本的用户没有文件夹的编辑权限,则此方法返回一个空数组。

例子:

function saveLog(textToSave) {
  var logFolderId = "0B1kNObnC3POnR2d2ntubk";
  var logFolder = DriveApp.getFolderById(logFolderId);
  if (logFolder.getEditors() === []) {
    return ("User " + Session.getActiveUser().getEmail() + " does not have permission to save files to the log folder https://drive.google.com/drive/folders/" + logFolderId );
  } else {
    var fileName = "log.txt";
    var logFile = logFolder.createFile(fileName, textToSave);
    return logFile.getUrl();
  }
}
于 2017-10-25T21:30:17.353 回答