/*
* GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
*/
package hudson.gwtmarketplace.server;
import net.sf.jsr107cache.Cache;
import hudson.gwtmarketplace.client.model.UserInfo;
import hudson.gwtmarketplace.client.service.UserInfoService;
import hudson.gwtmarketplace.domain.manager.AbstractManager;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class UserInfoServiceImpl extends RemoteServiceServlet implements
UserInfoService {
public UserInfo login(String loginCallbackUri, String logoutCallbackUri) {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
UserInfo loginInfo = new UserInfo();
if (user != null) {
loginInfo.setLoggedIn(true);
loginInfo.setEmailAddress(user.getEmail());
loginInfo.setNickname(user.getNickname());
loginInfo.setId(user.getUserId());
loginInfo.setLogoutUrl(userService.createLogoutURL(logoutCallbackUri));
} else {
loginInfo.setLoggedIn(false);
loginInfo.setLoginUrl(userService.createLoginURL(loginCallbackUri));
}
return loginInfo;
}
public String getLoginUrl(String loginCallbackUri) {
UserService userService = UserServiceFactory.getUserService();
return userService.createLoginURL(loginCallbackUri);
}
public void clearCache() {
Cache cache = AbstractManager.getCache();
cache.clear();
}
}