用户无权访问应用程序

时间:2013-05-03 07:47:55

标签: google-apps-script google-apps

我正在使用Google Apps脚本构建应用程序。我正在通过检查是否允许他们的logonid使用该应用程序来验证域用户。 我开发了它,当我进入测试阶段时,我是唯一可以实际使用该应用程序的用户。 虽然我已经在web-app发布向导上将“Who have Access”组合框设置为“任何人”。

当用户执行应用程序时,他会得到一个异常,说他在doGet()之后执行第一个函数时没有访问权限。我是否忽略了某些设置或者我做错了什么?

我使用以下类:

UserManager
Session
Jdbc
Utilities
Logger

这是在doGet()函数之后调用的函数:

function authenticateUser() {
  try {
    var user = UserManager.getUser(Session.getActiveUser());
    Logger.log('User: ' + user.getEmail());
    if (user == undefined || user == null) {
      return {authenticated: false};
    } else {
      var auth = _getAuth();
      if (!auth.isAuthorized(user.getEmail())) {
        Logger.log('Not authorized in database.');
        return {authenticated: false};
      } else {
        var profile = auth.getProfile(user.getEmail());
        authenticated = true;
        auth.setLogin(user.getEmail());
        if(!profile.firstLogin) {
          activeProfile = profile;
        }
        activeUser = user;
        return {profile: profile, authenticated: true};
      }
    }
  } catch(ex) {
    Logger.log(ex);
    return {authenticated: false};
  }
}

1 个答案:

答案 0 :(得分:1)

此处是访问UserManager的问题。作为documentation州,UserManager仅供管理员访问。

如果应用程序以普通用户身份运行,则无法访问UserManager。您可能需要重新部署部署/代码以自行运行(或管理员)。