summaryrefslogtreecommitdiffstats
path: root/src/beans/UserManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/beans/UserManager.java')
-rw-r--r--src/beans/UserManager.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/beans/UserManager.java b/src/beans/UserManager.java
new file mode 100644
index 0000000..9e08543
--- /dev/null
+++ b/src/beans/UserManager.java
@@ -0,0 +1,100 @@
+/*
+ * $RCSFile$
+ *
+ * Created on 06.12.2006
+ * for Project:
+ * by steins
+ *
+ * (C) 2005-2006 by
+ */
+package beans;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
+import javax.persistence.Persistence;
+import javax.persistence.Query;
+
+import jpa.User;
+import static util.DigestUtils.md5;
+
+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) {
+ EntityManagerFactory factory = Persistence
+ .createEntityManagerFactory("catalog");
+ EntityManager manager = factory.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";
+ }
+ }
+ // 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() {
+ EntityManagerFactory factory = Persistence
+ .createEntityManagerFactory("catalog");
+ EntityManager manager = factory.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();
+ }
+
+ return current;
+ }
+}