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