2010-11-29 95 views
1

我有一個GWT應用程序,用戶可以使用他們的Google Apps帳戶(OpenID登錄)登錄。現在我希望能夠知道,如果用戶登錄是該域的管理員。如何獲取Google Apps用戶的管理員身份

這已經可與下面的代碼:

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 ("[email protected]", "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

回答

3

如果您使用Google Apps Marketplace,則可以通過雙腿OAuth請求對Google Apps域的只讀Provisioning API訪問權限。這將允許您使用上面的示例代碼,而不需要域管理員用戶名/密碼。請參閱該文檔在:

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

周杰倫

+0

謝謝Jay!我現在認爲,這是正確的路要走。儘管我仍然遇到Provisioning API的一些問題。 +1 – JochenJung 2010-12-06 09:06:21

-1

UserService的有一個叫做isUserAdmin用於確定當前用戶是否是應用程序的管理員方法。

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

不知道這是你在找什麼!

+0

想象的那麼好,但沒有。此方法返回代碼正在運行的AppEngine用戶的Admin狀態。該代碼始終在同一個AppEngine帳戶中運行,但可以從該帳戶部署到不同的Google Apps域。我想擁有這個Apps域的管理員狀態。 – JochenJung 2010-11-29 14:40:45

相關問題