summaryrefslogtreecommitdiff
path: root/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java
diff options
context:
space:
mode:
Diffstat (limited to 'orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java')
-rw-r--r--orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java102
1 files changed, 102 insertions, 0 deletions
diff --git a/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java b/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java
new file mode 100644
index 0000000..71a2a0c
--- /dev/null
+++ b/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java
@@ -0,0 +1,102 @@
+package net.sf.oreka.srvc;
+
+import java.util.ArrayList;
+
+import net.sf.oreka.HibernateManager;
+import net.sf.oreka.OrkBase;
+import net.sf.oreka.bo.UserBo;
+import net.sf.oreka.persistent.User;
+
+import org.apache.log4j.Logger;
+import org.hibernate.HibernateException;
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+
+public class UserServiceHbn implements UserService {
+
+ static Logger logger = Logger.getLogger(UserServiceHbn.class);
+
+ public UserBo login(String username, String password) {
+
+ Session hbnSession = null;
+ UserBo userBo = null;
+
+ logger.debug("Trying to login user:" + username + " with passwd:" + password);
+
+ try
+ {
+ hbnSession = HibernateManager.instance().getSession();
+
+ String queryString = new String("from LoginString as ls left join ls.user as user where ls.loginString=:ls");
+ if (OrkBase.instance().isDebugSwitch() == false) {
+ queryString = queryString + " and user.password=:password";
+ }
+ Query query = hbnSession.createQuery(queryString);
+ query.setString("ls", username);
+ if (OrkBase.instance().isDebugSwitch() == false) {
+ query.setString("password", password);
+ }
+ ArrayList results = (ArrayList)query.list();
+ Object[] row = (Object[])query.uniqueResult();
+ if (row != null) {
+ userBo = new UserBo();
+ userBo.setUser((User)row[1]);
+ logger.debug("Found userid:" + userBo.getUser().getId() + " for login string:" + username);
+ }
+ }
+ catch ( HibernateException he ) {
+ logger.error("login: exception:" + he.getClass().getName());
+ }
+ catch (Exception e)
+ {
+ logger.error("login: exception:", e);
+ }
+ finally {
+ if(hbnSession != null) {hbnSession.close();}
+ }
+ return userBo;
+ }
+
+ public boolean changePassword(int userId, String oldPassword, String newPassword) {
+
+ Session hbnSession = null;
+ Transaction tx = null;
+ User user = null;
+ boolean success = false;
+
+ logger.debug("Trying to change password for userid:" + userId);
+
+ try
+ {
+ hbnSession = HibernateManager.instance().getSession();
+
+
+ user = (User)hbnSession.get(User.class, userId);
+ if(user == null) {
+ logger.warn("Userid:" + userId + " does not exist");
+ }
+ else {
+ if(user.getPassword().equals(oldPassword)) {
+ tx = hbnSession.beginTransaction();
+ user.setPassword(newPassword);
+ hbnSession.save(user);
+ tx.commit();
+ success = true;
+ logger.debug("Changed password for userid:" + userId);
+ }
+ }
+ }
+ catch ( HibernateException he ) {
+ logger.error("changePassword: exception:" + he.getClass().getName());
+ }
+ catch (Exception e)
+ {
+ logger.error("changePassword: exception:", e);
+ }
+ finally {
+ if(hbnSession != null) {hbnSession.close();}
+ }
+ return success;
+ }
+}