从Google云端硬盘中的文件中删除默认域查看器

时间:2012-07-28 14:00:49

标签: google-apps-script

我正在制作一个非常简单的脚本,它将更新文档的查看器。在我的Google Apps域中,默认的共享权限已更改。我的管理员想要返回并更改所有现有文档的共享设置。在我的POC工作期间,我遇到了一个错误,并且想知道是否应该使用不同的GAS。

问题是由于“电子邮件无效”错误,我无法将域用户作为文档查看器删除。

消息为:Exception: Invalid email: MyDomain.com

提前感谢你的帮助。

[我已从以下代码中删除了日志记录和错误捕获。]

function removeDomainUser()
{
  DocsList.getAllFiles().forEach(
    function (file,i ,array)
    {

        //--Always pick the Domain Viewer--//

        var toRemove = -1;
        file.getViewers().forEach(
          function(user,i)
          {
            toRemove = user.getEmail() == "MyDomain.com" ? i : toRemove;
          }
        );

        //--If there is a Domain viewer, remove it--//

        toRemove > -1 ? file.removeViewer(file.getViewers()[toRemove]) : '';
    }
  );
}

2 个答案:

答案 0 :(得分:0)

我没有弄清楚代码中的错误,但我已经能够通过以下代码实现相同的目标

function removeDomainUser(user){
  //User is your domain user
  // e.g user = email@mydomain.com
  var files = DocsList.getAllFiles();
  for(var i in files){
    var viewvers = files[i].getViewers();
    for(var j in viewvers){
      if(viewvers[j] == user) files[i].removeViewer(user);
    }
  }
}

答案 1 :(得分:0)

不幸的是,使用DocsList服务是不可能的。有一个open feature request来添加此功能。您应该可以通过使用UrlFetchApp调用Documents List API来完成此操作。