Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/commonContext.xml,v
diff -u -r1.47 -r1.48
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml 17 Oct 2006 07:08:09 -0000 1.47
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml 23 Oct 2006 23:57:58 -0000 1.48
@@ -94,6 +94,7 @@
singleton="false"
>
+
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/IGroupDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/IGroupDAO.java,v
diff -u -r1.8 -r1.9
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/IGroupDAO.java 17 Sep 2006 06:14:16 -0000 1.8
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/IGroupDAO.java 23 Oct 2006 23:57:59 -0000 1.9
@@ -40,5 +40,13 @@
public void saveGroup(Group group);
public void deleteGroup(Group group);
-
+
+ /**
+ * Number of users groups for a particular user. Used to determine
+ * if we can delete a user.
+ *
+ * @param userID
+ */
+ public Integer getCountGroupsForUser(Integer userID);
+
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/GroupDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/GroupDAO.java,v
diff -u -r1.9 -r1.10
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/GroupDAO.java 17 Sep 2006 06:14:16 -0000 1.9
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/GroupDAO.java 23 Oct 2006 23:57:59 -0000 1.10
@@ -23,15 +23,30 @@
/* $$Id$$ */
package org.lamsfoundation.lams.learningdesign.dao.hibernate;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Query;
+import org.hibernate.Session;
import org.lamsfoundation.lams.dao.hibernate.BaseDAO;
import org.lamsfoundation.lams.learningdesign.Group;
+import org.lamsfoundation.lams.learningdesign.Grouping;
+import org.lamsfoundation.lams.learningdesign.GroupingActivity;
import org.lamsfoundation.lams.learningdesign.dao.IGroupDAO;
+import org.springframework.orm.hibernate3.HibernateCallback;
+import org.springframework.orm.hibernate3.HibernateTemplate;
/**
* @author Manpreet Minhas
*/
public class GroupDAO extends BaseDAO implements IGroupDAO {
+ private final static String NUM_GROUPS = "select count(*) from "
+ + Group.class.getName() + " group "
+ + " where group.users.userId = :userID";
+
/* (non-Javadoc)
* @see org.lamsfoundation.lams.learningdesign.dao.interfaces.IGroupDAO#getGroupById(java.lang.Long)
*/
@@ -47,4 +62,22 @@
getHibernateTemplate().delete(group);
}
+ /**
+ * Number of users groups for a particular user. Used to determine
+ * if we can delete a user.
+ *
+ * @param userID
+ */
+ public Integer getCountGroupsForUser(final Integer userID) {
+ HibernateTemplate hibernateTemplate = new HibernateTemplate(this.getSessionFactory());
+ return (Integer) hibernateTemplate.execute(new HibernateCallback() {
+ public Object doInHibernate(Session session)
+ throws HibernateException {
+ Query query = session.createQuery(NUM_GROUPS);
+ query.setInteger("userID", userID);
+ Object value = query.uniqueResult();
+ return new Integer (((Number)value).intValue());
+ }
+ });
+ }
}
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java,v
diff -u -r1.60 -r1.61
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 17 Oct 2006 01:27:26 -0000 1.60
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 23 Oct 2006 23:57:58 -0000 1.61
@@ -25,7 +25,6 @@
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
@@ -38,6 +37,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.dao.IBaseDAO;
+import org.lamsfoundation.lams.learningdesign.dao.IGroupDAO;
import org.lamsfoundation.lams.usermanagement.Organisation;
import org.lamsfoundation.lams.usermanagement.OrganisationType;
import org.lamsfoundation.lams.usermanagement.Role;
@@ -55,7 +55,6 @@
import org.lamsfoundation.lams.usermanagement.dto.UserManageBean;
import org.lamsfoundation.lams.util.HashUtil;
import org.lamsfoundation.lams.util.MessageService;
-import org.lamsfoundation.lams.util.WebUtil;
/**
*
@@ -76,6 +75,7 @@
private static final String SEQUENCES_FOLDER_NAME_KEY = "runsequences.folder.name";
private IBaseDAO baseDAO;
+ private IGroupDAO groupDAO;
protected MessageService messageService;
/**
@@ -96,6 +96,10 @@
this.baseDAO = baseDAO;
}
+ public void setGroupDAO(IGroupDAO groupDAO) {
+ this.groupDAO = groupDAO;
+ }
+
public void save(Object object) {
try{
if(object instanceof User){
@@ -600,11 +604,10 @@
return true;
}
}
- if (user.getUserGroups()!=null) {
- if (!user.getUserGroups().isEmpty()) {
- log.debug("user has data, userGroups: "+user.getUserGroups().size());
- return true;
- }
+ int numLessonGroups = groupDAO.getCountGroupsForUser(user.getUserId());
+ if ( numLessonGroups > 0 ) {
+ log.debug("user has data, userGroups: "+numLessonGroups);
+ return true;
}
return false;
}
@@ -679,5 +682,6 @@
save(user);
}
+
}
\ No newline at end of file