Как получить статус администратора пользователя Google Apps - PullRequest
1 голос
/ 29 ноября 2010

У меня есть приложение GWT, где пользователи могут войти в систему с помощью своей учетной записи Google Apps (OpenID Login). Теперь я хочу узнать, является ли пользователь, вошедший в систему, администратором этого домена.

Это уже работает со следующим кодом:

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 ]

3 голосов
/ 06 декабря 2010

Если вы используете Google Apps Marketplace, вы можете запросить доступ API обеспечения доступа только для чтения к домену Служб Google через двустороннюю OAuth.Это позволит вам использовать приведенный выше пример кода вместо того, чтобы запрашивать имя пользователя / пароль администратора домена.Смотрите документы по адресу:

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

Jay

0 голосов
/ 29 ноября 2010

UserService имеет метод, называемый isUserAdmin, для определения, является ли текущий пользователь администратором приложения.

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

Не уверен, что это то, что вы ищете!

...