summaryrefslogtreecommitdiff
path: root/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-12-30 22:58:32 +0000
committerHenri Herscher <henri@oreka.org>2005-12-30 22:58:32 +0000
commita794bcdd80379335848a546035f767bb7e924550 (patch)
tree1700b94b0140d1c51b2bf6b85a1964c268a24763 /orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java
parent5a06af8527d6d9a0d12652529e16b02861b43888 (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.java145
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();}
+ }
+ }
}