package com.project1.server;
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;
import com.project1.client.LoginInfo;
import com.project1.client.LoginService;
/**
* LoginService.java
* @author Google
* @since 04/08/2012
* @lastModified 04/08/2012
* @version 1.0
* Descripci�n: Implementaci�n que ofrece el servicio de inicio de sesi�n del lado del servidor.
* Tomado de https://developers.google.com/web-toolkit/doc/2.4/tutorial/appengine.
*/
@SuppressWarnings("serial")
public class LoginServiceImpl extends RemoteServiceServlet implements
LoginService {
/**
* Permite que un usuario inicie sesi�n, devolvi�ndo los datos de dicha acci�n.
* @param requestUri String con el URL de la p�gina para inicio de sesi�n.
* @return LoginInfo con la informaci�n de inicio de sesi�n.
*/
public LoginInfo login(String requestUri) {
//Se crea un servicio de usuario.
UserService userService = UserServiceFactory.getUserService();
//Se obtiene al usuario actual.
User user = userService.getCurrentUser();
LoginInfo loginInfo = new LoginInfo();
//Se recopila la informaci�n del usuario, si es que ha iniciado sesi�n.
if (user != null) {
loginInfo.setLoggedIn(true);
loginInfo.setEmailAddress(user.getEmail());
loginInfo.setNickname(user.getNickname());
loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
} else {
//De lo contrario, se le env�a a iniciar su sesi�n.
loginInfo.setLoggedIn(false);
loginInfo.setLoginUrl(userService.createLoginURL(requestUri));
}
return loginInfo;
}
}