diff options
author | Henri Herscher <henri@oreka.org> | 2005-12-21 03:59:04 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2005-12-21 03:59:04 +0000 |
commit | 772bbeb2713e745c08ecbcbbf365ecc767ecbf16 (patch) | |
tree | 234f007fafab7df051fc5586db403da285b0a63c /orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java | |
parent | a260812d8ee1396c786bd665fc96a6f87878c946 (diff) |
Starting to add business objects and services
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@111 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java')
-rw-r--r-- | orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java | 102 |
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; + } +} |