1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| package com.ucb.icsr.controller;
import com.ucb.icsr.dao.UserEJB;
import com.ucb.icsr.entity.User;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import javax.faces.validator.ValidatorException;
/**
*
* @author Jean-Benoît Kervyn de Meerendré
* @version 1.0
*/
@ManagedBean(name="loginController")
@SessionScoped
public class LoginController {
@EJB
private UserEJB userEJB;
private User currentUser = new User();
private boolean userLoggedIn = false;
public String doLogin()
{
User us = userEJB.findUsersByUserNo(currentUser.getUserNo());
if(!us.getPassword().equals(currentUser.getPassword()))
{
if(us.getActive()!=3)
{
us.setActive(us.getActive()+1);
userEJB.updateUser(us);
setUserLoggedIn(false);
}
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Login failed : " + (3 -us.getActive()) + " attempts remaining","login");
context.addMessage("login", message);
return "login.xhtml";
}
else
{
us.setActive(0);
setUserLoggedIn(true);
userEJB.updateUser(us);
return "../main.xhtml";
}
}
public String doLogout()
{
setCurrentUser(null);
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext extContext = context.getExternalContext();
extContext.invalidateSession();
return "/admin/login/login.xhtml";
}
public void validateUser(FacesContext context, UIComponent component, Object user)throws ValidatorException
{
String userNo = user.toString();
if(userEJB.findUsersByUserNo(userNo)==null)
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "user", "The user does not exists"));
if(userEJB.findUsersByUserNo(userNo).getActive()>2)
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "user", "This user account was locked"));
}
public void forwardToLoginIfNotLoggedIn(ComponentSystemEvent cse)
{
FacesContext context = FacesContext.getCurrentInstance();
String viewId = context.getViewRoot().getViewId();
if(!isUserLoggedIn() && ! viewId.startsWith("/login"))
context.getApplication().getNavigationHandler().handleNavigation(context, null, "login");
}
public User getCurrentUser() {
return currentUser;
}
public void setCurrentUser(User currentUser) {
this.currentUser = currentUser;
}
public boolean isUserLoggedIn() {
return userLoggedIn;
}
public void setUserLoggedIn(boolean userLoggedIn) {
this.userLoggedIn = userLoggedIn;
}
} |
Partager