/* * $RCSFile$ * * Created on 06.12.2006 * for Project: * by steins * * (C) 2005-2006 by */ package beans; import static util.DigestUtils.md5; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.Query; import jpa.EntityManagerFactorySingleton; import jpa.User; @ManagedBean(name = "UserManager") @SessionScoped public class UserManager { private User current; private boolean loggedIn; public UserManager() { current = new User(); } public String login() { String outcome = "failure"; if (current.getUsername() != null && current.getUsername().length() > 0 && current.getPassword() != null && current.getPassword().length() > 0) { EntityManager manager = EntityManagerFactorySingleton.getInstance() .getEntityManagerFactory().createEntityManager(); Query query = manager.createQuery( "SELECT u FROM User u where u.username = :username and u.password = :password"); query.setParameter("username", current.getUsername()); query.setParameter("password", md5(current.getPassword())); List results = query.getResultList(); if (!results.isEmpty()) { loggedIn = true; current = (User) results.get(0); outcome = "success"; } manager.close(); } // System.out.println(outcome); return outcome; } public String logout() { loggedIn = false; current = new User(); return "home"; } public void setUsername(String username) { current.setUsername(username); } public String getUsername() { return current.getUsername(); } public void setPassword(String password) { current.setPassword(password); } public String getPassword() { return current.getPassword(); } public boolean isLoggedIn() { return loggedIn; } public User getCurrent() { EntityManager manager = EntityManagerFactorySingleton.getInstance() .getEntityManagerFactory().createEntityManager(); EntityTransaction tx = manager.getTransaction(); tx.begin(); try { current = manager.find(User.class, getUsername()); tx.commit(); } catch (Exception ex) { ex.printStackTrace(System.err); tx.rollback(); } manager.close(); return current; } }