diff options
author | Henri Herscher <henri@oreka.org> | 2005-12-30 22:58:32 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2005-12-30 22:58:32 +0000 |
commit | a794bcdd80379335848a546035f767bb7e924550 (patch) | |
tree | 1700b94b0140d1c51b2bf6b85a1964c268a24763 /orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java | |
parent | 5a06af8527d6d9a0d12652529e16b02861b43888 (diff) |
Made all persistent objects serializable - added user management stuff
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@114 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 | 145 |
1 files changed, 144 insertions, 1 deletions
diff --git a/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java b/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java index 71a2a0c..f33f243 100644 --- a/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java +++ b/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java @@ -1,6 +1,8 @@ package net.sf.oreka.srvc; import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import net.sf.oreka.HibernateManager; import net.sf.oreka.OrkBase; @@ -8,8 +10,10 @@ import net.sf.oreka.bo.UserBo; import net.sf.oreka.persistent.User; import org.apache.log4j.Logger; +import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; +import org.hibernate.ScrollableResults; import org.hibernate.Session; import org.hibernate.Transaction; @@ -28,7 +32,7 @@ public class UserServiceHbn implements UserService { { hbnSession = HibernateManager.instance().getSession(); - String queryString = new String("from LoginString as ls left join ls.user as user where ls.loginString=:ls"); + String queryString = new String("from LoginString as ls left join ls.user as user where ls.loginString=:ls and user.deleted=0 "); if (OrkBase.instance().isDebugSwitch() == false) { queryString = queryString + " and user.password=:password"; } @@ -99,4 +103,143 @@ public class UserServiceHbn implements UserService { } return success; } + + public int getUsers(UserFilter filter, int offset, int number, String orderBy, boolean ascending, List<UserBo> results) { + + Session hbnSession = null; + Transaction tx = null; + logger.debug("Entering getUsers"); + List<User> users; + int numResults = 0; + + try + { + hbnSession = HibernateManager.instance().getSession(); + + /* + Criteria crit = hbnSession.createCriteria(User.class); + //crit.add( Expression.eq( "color", eg.Color.BLACK ) ); + + // figure out total number of users returned + ScrollableResults scrollRes = crit.scroll(); + if ( scrollRes.last() ) { + numResults = scrollRes.getRowNumber()+1; + } + + // get only one page worth of users + crit.setMaxResults(number); + crit.setFirstResult(offset); + users = crit.list(); + + Iterator it = users.iterator(); + while(it.hasNext()) { + UserBo ubo = new UserBo(); + ubo.setUser((User)it.next()); + results.add(ubo); + } + */ + + StringBuffer queryString = new StringBuffer("from User as user where user.deleted=0 "); + Query query = hbnSession.createQuery(queryString.toString()); + + ScrollableResults scrollRes = query.scroll(); + if ( scrollRes.last() ) { + numResults = scrollRes.getRowNumber()+1; + } + + // get only one page worth of users + scrollRes.setRowNumber(offset); + int numRetrieved = 0; + + while(scrollRes.next() && numRetrieved<number) { + numRetrieved++; + UserBo ubo = new UserBo(); + ubo.setUser((User)scrollRes.get()[0]); + results.add(ubo); + } + + logger.debug("getUsers: got " + numResults + " users"); + } + catch ( HibernateException he ) { + logger.error("getUsers: exception:" + he.getClass().getName()); + } + catch (Exception e) + { + logger.error("getUsers: exception:", e); + } + finally { + if(hbnSession != null) {hbnSession.close();} + } + return numResults; + } + + public void deleteUser(int userId) { + + Session hbnSession = null; + Transaction tx = null; + User user = null; + + logger.debug("Deleting 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 { + tx = hbnSession.beginTransaction(); + user.setDeleted(true); + hbnSession.save(user); + tx.commit(); + } + } + catch ( HibernateException he ) { + logger.error("deleteUser: exception:" + he.getClass().getName()); + } + catch (Exception e) + { + logger.error("deleteUser: exception:", e); + } + finally { + if(hbnSession != null) {hbnSession.close();} + } + } + + public void disableUser(int userId) { + + Session hbnSession = null; + Transaction tx = null; + User user = null; + + logger.debug("Disabling 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 { + tx = hbnSession.beginTransaction(); + user.setDisabled(true); + hbnSession.save(user); + tx.commit(); + } + } + catch ( HibernateException he ) { + logger.error("disableUser: exception:" + he.getClass().getName()); + } + catch (Exception e) + { + logger.error("disableUser: exception:", e); + } + finally { + if(hbnSession != null) {hbnSession.close();} + } + } } |