代码之家  ›  专栏  ›  技术社区  ›  JochenJung

如何获取谷歌应用程序用户的管理状态

  •  1
  • JochenJung  · 技术社区  · 14 年前

    我有一个GWT应用程序,用户可以使用他们的Google应用程序帐户(OpenID登录)登录。现在我想知道,登录的用户是否是该域的管理员。

    这已经与以下代码一起工作:

    private boolean isAdmin (String username) {
      boolean ret= false;
    
      if (username.indexOf ("@") > 0) username= username.substring (0, username
        .indexOf ("@"));
    
      AppsForYourDomainClient client= null;
      try {
        client= new AppsForYourDomainClient ("admin@orgapage.de", "password",
          "orgapage.de");
    
        UserEntry user= client.retrieveUser (username);
        if (user.getLogin ().getAdmin ().equals (Boolean.TRUE)) ret= true;
        else ret= false;
      }
      catch (Exception ex2) {
        log.severe (ex2.getMessage ());
        ex2.printStackTrace ();
      }
    
      return ret;
    }
    

    问题是,我必须输入此域管理员的用户名和密码才能检查当前登录的用户。

    有没有一种不用知道管理员密码就可以做到这一点的方法?也许和Oauth在一起?

    到目前为止,检索管理状态的唯一方法是上面的方法。以下是它的文档:

    http://code.google.com/googleapps/domain/gdata_provisioning_api_v2.0_reference_java.html#Retrieve_Account_Example

    2 回复  |  直到 13 年前
        1
  •  3
  •   Jay    14 年前

    如果您使用google apps marketplace,则可以通过两腿OAuth请求对google apps域的只读供应API访问。这将允许您使用上面的示例代码,而不需要域管理员用户名/密码。请参阅文档:

    http://code.google.com/googleapps/marketplace/data_access.html http://code.google.com/googleapps/marketplace/manifest.html网站

    杰伊

        2
  •  -1
  •   Amey    14 年前

    这个 UserService 有一个方法调用 isUserAdmin 用于确定当前用户是否为应用程序的管理员。

    http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/users/UserService.html#isUserAdmin()

    不确定这是不是你要找的!