package managedbean.systemAdmin; import javax.enterprise.context.RequestScoped; import javax.faces.application.FacesMessage; import javax.inject.Named; import javax.servlet.http.HttpSession; import org.primefaces.PrimeFaces; import TO.LoggedUserTO; import managedbean.common.ManagedBeanBase; import managedbean.common.SessionUtils; @Named("loginView") @RequestScoped public class LoginMBean extends ManagedBeanBase { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String login() { boolean loggedIn = false; String viewRedirect = ""; LoggedUserTO usr = null; if (username != null && password != null && username.equals("") == false && password.equals("") == false) { try { usr = this.getRemoteManagerSystemAdmin().login(username, password); if (usr != null) { loggedIn = true; SessionUtils.createOrUpdateSession(usr); this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Login correcto", "Bienvenido " + usr.getName()); viewRedirect = "/home?faces-redirect=true"; } else this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "El usuario o la contraseña son incorrectos"); } catch (Exception ex) { this.addFacesMessage(FacesMessage.SEVERITY_FATAL, "Error fatal", ex.getMessage()); } } else this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "El usuario o la contraseña son incorrectos"); PrimeFaces.current().ajax().addCallbackParam("loggedIn", loggedIn); return viewRedirect; } /** * Realiza un login semi-automatico. Por ejemplo desde el filtro de autorización. * Se debe utilizar con propositos de depuración, para evitar realizar el login manual. * * @param ses */ public boolean autoLogin(HttpSession ses) { //TODO: Eliminar este metodo al terminar el desarrollo. boolean bResult = false; LoggedUserTO usr = this.getRemoteManagerSystemAdmin().login(username, password); if (usr != null) { SessionUtils.createOrUpdateSession(ses, usr); bResult = true; } return bResult; } // logout event, invalidate session public String logout() { this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su ssesión. Hasta la vista"); SessionUtils.DestroySession(); return "/home?faces-redirect=true"; } }