如何将代码执行限制为几个预定义的用户,而无需getUserLoginId(谷歌应用脚本)



我有一个在我的谷歌工作表上运行的谷歌脚本,它根据列发送电子邮件。

我希望该脚本只能由几个预定义的用户运行。 即,我认为我需要一种方法来让代码检查当前用户是谁,并将其与授权代码执行器列表进行比较。

但是,getUserLoginId 和 getUserEmail 不起作用,因为用户和我在不同的域中,所以只返回 null。

有没有其他方法可以限制哪些用户可以/不能在代码中执行函数?

您可以使用

Session.getActiveUser.getEmail()来获取活动用户的电子邮件。然后,您可以将此电子邮件 ID 与允许的电子邮件 ID 数组进行比较。

下面是一个示例代码片段。

function myFunction(){
  if (isAllowed()){
    //Send email etc
  }
}

function isAllowed(){
  var allowed = false;
  var currentUser = Session.getActiveUser().getEmail();
  var allowedUsers = ['email1@gmail.com', 'email2@gmail.com', 'email3@gmail.com'];
  if(allowedUsers.indexOf(currentUser) != -1){
    allowed = true;
  }
  return allowed;
}

最新更新