Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml =================================================================== diff -u -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml (.../User.hbm.xml) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml (.../User.hbm.xml) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -309,11 +309,13 @@ @hibernate.many-to-one lazy="false" + cascade="all" @hibernate.column name="workspace_id" @@ -348,11 +350,13 @@ @hibernate.many-to-one not-null="true" + lazy="false" @hibernate.column name="authentication_method_id" Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Workspace.hbm.xml =================================================================== diff -u -r03392c988a23f5e9129967f8ae692488213632fe -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Workspace.hbm.xml (.../Workspace.hbm.xml) (revision 03392c988a23f5e9129967f8ae692488213632fe) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Workspace.hbm.xml (.../Workspace.hbm.xml) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -102,12 +102,14 @@ name="rootFolder" class="org.lamsfoundation.lams.usermanagement.WorkspaceFolder" not-null="true" + cascade="all" lazy="false" > @hibernate.many-to-one not-null="true" lazy="false" + cascade="all" @hibernate.column name="root_folder_id" Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r18af3a3fda30800f47d04bbf0abdb9897c1ea613 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 18af3a3fda30800f47d04bbf0abdb9897c1ea613) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -81,18 +81,7 @@ - - - - - - - - - - - - + @@ -155,7 +144,7 @@ - + @@ -221,58 +210,9 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Index: lams_common/src/java/org/lamsfoundation/lams/dao/IBaseDAO.java =================================================================== diff -u -re0a723be2811cf9cdceebbd7933c531e2e60ce58 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/src/java/org/lamsfoundation/lams/dao/IBaseDAO.java (.../IBaseDAO.java) (revision e0a723be2811cf9cdceebbd7933c531e2e60ce58) +++ lams_common/src/java/org/lamsfoundation/lams/dao/IBaseDAO.java (.../IBaseDAO.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -24,10 +24,20 @@ package org.lamsfoundation.lams.dao; import java.io.Serializable; +import java.util.Collection; import java.util.List; +import java.util.Map; /** - * @author Manpreet Minhas + * @version + * + *

+ * View Source + *

+ * + * @author Fei Yang + * + * Created at 22:50:25 on 16/06/2006 */ public interface IBaseDAO { @@ -49,22 +59,245 @@ * @param object The object to be inserted/updated */ public void insertOrUpdate(Object object); + /** + * @param objects + * @return void + */ + public void insertOrUpdateAll(Collection objects); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryString + * @return void + */ + public void update(String queryString); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryString + * @param value + * @return void + */ + public void update(String queryString, Object value); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryString + * @param values + * @return void + */ + public void update(String queryString, Object[] values); + + /** + * @param clazz + * @param propertyToChange + * @param newValue + * @param conditionProperty + * @param conditionValue + * @return void + */ + public void update(Class clazz, String propertyToChange, Object newValue, String conditionProperty, Object conditionValue); + + /** + * @param clazz + * @param propertyToChange + * @param newValue + * @param conditions in a map + * @return void + */ + public void update(Class clazz, String propertyToChange, Object newValue, Map conditions); + + /** + * @param clazz + * @param newValues in a map + * @param conditionProperty + * @param conditionValue + * @return void + */ + public void update(Class clazz, Map newValues, String conditionProperty, Object conditionValue); + + /** + * @param clazz + * @param newValues in a map + * @param conditions in a map + * @return void + */ + public void update(Class clazz, Map newValues, Map conditions); + + /** + * These 2 objects have to be instances of the Class + * @param clazz + * @param newValues in a object + * @param conditions in a object + * @return void + */ + public void updateAnythingLike(Class clazz, Object newValues, Object conditions); + + /** * Remove an object from the database. * @param object The object to be deleted */ public void delete(Object object); + /** + * Be careful to use this method. It will clean up the whole table for the Class + * @param clazz + * @return void + */ + public void deleteAll(Class clazz); + + /** + * @param objects to delete + * @return void + */ + public void deleteAll(Collection objects); + + /** + * @param clazz java Class + * @param id identifier + * @return void + */ + public void deleteById(Class clazz, Serializable id); + + /** + * @param clazz + * @param name + * @param value + * @return void + */ + public void deleteByProperty(Class clazz, String name, Object value); + + /** + * @param properties a map of property names and values + * @return void + */ + public void deleteByProperties(Class clazz, Map properties); + + /** + * Delete any object which has the same non-null property values as the object + * @param object + * @return void + */ + public void deleteAnythingLike(Object object); + + /** * Find an object. If the object is not found * then it will return null - * @param objClass + * @param clazz * @param id */ - public Object find(Class objClass, Serializable id); + public Object find(Class clazz, Serializable id); /** - * @param objClass + * @param clazz + * @return all of rows in the table for the Class as objects */ - public List findAll(Class objClass); + public List findAll(Class clazz); + + /** + * @param clazz + * @param name + * @param value + * @return a list of objects which have the same propery value + */ + public List findByProperty(Class clazz, String name, Object value); + + /** + * @param properties a map of property names and values + * @return a list of objects which have the same property values + */ + public List findByProperties(Class clazz, Map properties); + + /** + * Find any object which has the same non-null property values as the object + * @param object + * @return a list of objects which has the same non-null property values as the object + */ + public List findAnythingLike(Object object); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryString + * @return void + */ + public List find(String queryString); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryString + * @param value + * @return void + */ + public List find(String queryString, Object value); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryString + * @param values + * @return void + */ + public List find(String queryString, Object[] values); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryName + * @return void + */ + public List findByNamedQuery(String queryName); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryName + * @param value + * @return void + */ + public List findByNamedQuery(String queryName, Object value); + + /** + * Just a wrapper of the method in HibernateTemplate + * shouldn't be used unless a complicated query needed + * @param queryName + * @param values + * @return void + */ + public List findByNamedQuery(String queryName, Object[] values); + + + /** + * @param clazz + * @param name of the property + * @param pattern to match + * @return a list of objects + */ + public List searchByStringProperty(Class clazz, String name, String pattern); + + /** + * @param clazz + * @param name of the property + * @param pattern to match + * @return a list of objects + */ + public List searchByStringProperties(Class clazz, Map properties); + + /** + * @param clazz + * @param name of the property + * @param min + * @param minIncluded + * @param max + * @param maxIncluded + * @return a list of objects + */ + public List searchByNumberSpan(Class clazz, String name, Integer min, Boolean minIncluded, Integer max, Boolean maxIncluded); + } Index: lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java =================================================================== diff -u -re0a723be2811cf9cdceebbd7933c531e2e60ce58 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java (.../BaseDAO.java) (revision e0a723be2811cf9cdceebbd7933c531e2e60ce58) +++ lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java (.../BaseDAO.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -20,66 +20,321 @@ * http://www.gnu.org/licenses/gpl.txt * **************************************************************** */ -/* $Id$ */ package org.lamsfoundation.lams.dao.hibernate; import java.io.Serializable; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.Map; +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.dao.IBaseDAO; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; -import org.lamsfoundation.lams.dao.IBaseDAO; - /** - * @author Manpreet Minhas + * @version + * + * Wrapper of HibernteTemplate() with some more OO methods + * + *

+ * View Source + *

+ * + * @author Fei Yang + * + * Created at 23:13:41 on 16/06/2006 */ public class BaseDAO extends HibernateDaoSupport implements IBaseDAO { + + private static class Qv { + + String queryString; + Object[] values; + + Qv(String queryString, Object[] values) { + super(); + + this.queryString = queryString; + this.values = values; + } + } - /** - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.IBaseDAO#insert(java.lang.Object) + private static final String SELECT = "from "; + private static final String UPDATE = "update "; + private static final String DELETE = "delete "; + private static final String WHERE = " where "; + private static final String AND = " and "; + private static final String SPACE = " "; + private static final String SPOT = "."; + private static final String EQUAL_TO_WHAT = "=?"; + + private static Logger log = Logger.getLogger(BaseDAO.class); + + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#insert(java.lang.Object) */ public void insert(Object object) { - this.getHibernateTemplate().save(object); + getHibernateTemplate().save(object); } - /** - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.IBaseDAO#update(java.lang.Object) + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#update(java.lang.Object) */ public void update(Object object) { - this.getHibernateTemplate().update(object); + getHibernateTemplate().update(object); } - /** - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.IBaseDAO#insertOrUpdate(java.lang.Object) + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#insertOrUpdate(java.lang.Object) */ public void insertOrUpdate(Object object) { - this.getHibernateTemplate().saveOrUpdate(object); + getHibernateTemplate().saveOrUpdate(object); } - /** - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.IBaseDAO#delete(java.lang.Object) + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#insertOrUpdateAll(java.util.Collection) */ + public void insertOrUpdateAll(Collection objects) { + getHibernateTemplate().saveOrUpdateAll(objects); + } + + public void update(String queryString) { + getHibernateTemplate().bulkUpdate(queryString); + } + + public void update(String queryString, Object value) { + getHibernateTemplate().bulkUpdate(queryString, value); + } + + public void update(String queryString, Object[] values) { + getHibernateTemplate().bulkUpdate(queryString, values); + } + + public void update(Class clazz, String propertyToChange, Object newValue, String conditionProperty, Object conditionValue) { + //TODO implement me + } + + public void update(Class clazz, String propertyToChange, Object newValue, Map conditions) { + //TODO implement me + } + + public void update(Class clazz, Map newValues, String conditionProperty, Object conditionValue) { + //TODO implement me + } + + public void update(Class clazz, Map newValues, Map conditions) { + //TODO implement me + } + + public void updateAnythingLike(Class clazz, Object newValues, Object conditions) { + //TODO implement me + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#delete(java.lang.Object) + */ public void delete(Object object) { - this.getHibernateTemplate().delete(object); + getHibernateTemplate().delete(object); } - /** - * Find an object. If the object is not found, - * then it will return null - * @param objClass - * @param id + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#deleteAll(java.lang.Class) */ - public Object find(Class objClass, Serializable id) { - return this.getHibernateTemplate().get(objClass,id); - + public void deleteAll(Class clazz) { + String queryString = buildQueryString(clazz,DELETE); + getHibernateTemplate().bulkUpdate(queryString); } - /** - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.IBaseDAO#findAll(java.lang.Class) + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#deleteAll(java.util.Collection) */ - public List findAll(Class objClass) { - String query="from obj in class " + objClass.getName(); - return this.getHibernateTemplate().find(query); + public void deleteAll(Collection objects) { + getHibernateTemplate().deleteAll(objects); } + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#deleteById(java.lang.Class, java.io.Serializable) + */ + public void deleteById(Class clazz, Serializable id) { + delete(find(clazz,id)); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#deleteByProperty(java.lang.Class, java.lang.String, java.lang.Object) + */ + public void deleteByProperty(Class clazz, String name, Object value) { + String queryString = buildQueryString(clazz,name,DELETE); + getHibernateTemplate().bulkUpdate(queryString,value); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#deleteByProperties(java.lang.Class, java.util.Map) + */ + public void deleteByProperties(Class clazz, Map properties) { + Qv qv = buildQueryString(clazz,properties,DELETE); + getHibernateTemplate().bulkUpdate(qv.queryString,qv.values); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#deleteAnythingLike(java.lang.Object) + */ + public void deleteAnythingLike(Object object) { + try{ + Qv qv = buildQueryString(object,DELETE); + getHibernateTemplate().bulkUpdate(qv.queryString,qv.values); + }catch(Exception e){ + log.debug(e); + } + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#find(java.lang.Class, java.io.Serializable) + */ + public Object find(Class clazz, Serializable id) { + return getHibernateTemplate().get(clazz,id); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#findAll(java.lang.Class) + */ + public List findAll(Class clazz) { + return getHibernateTemplate().loadAll(clazz); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#findByProperty(java.lang.Class, java.lang.String, java.lang.Object) + */ + public List findByProperty(Class clazz, String name, Object value) { + String queryString = buildQueryString(clazz,name,SELECT); + return getHibernateTemplate().find(queryString,value); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#findByProperties(java.lang.Class, java.util.Map) + */ + public List findByProperties(Class clazz, Map properties) { + Qv qv = buildQueryString(clazz,properties,SELECT); + return getHibernateTemplate().find(qv.queryString,qv.values); + } + + /* (non-Javadoc) + * @see org.lamsfoundation.lams.dao.IBaseDAO#findAnythingLike(java.lang.Object) + */ + public List findAnythingLike(Object object) { + return getHibernateTemplate().findByExample(object); + } + + private String buildQueryString(Class clazz,String operation){ + StringBuffer queryString = new StringBuffer(operation).append(clazz.getSimpleName()); + log.debug(queryString); + return queryString.toString(); + } + + private String buildQueryString(Class clazz,String name, String operation){ + String clazzName = clazz.getSimpleName(); + String objName = createObjectName(clazzName); + StringBuffer queryString = new StringBuffer(operation).append(clazzName).append(SPACE) + .append(objName).append(WHERE).append(objName).append(SPOT) + .append(name).append(EQUAL_TO_WHAT); + log.debug(queryString); + return queryString.toString(); + } + + public List find(String queryString) { + return getHibernateTemplate().find(queryString); + } + + public List find(String queryString, Object value) { + return getHibernateTemplate().find(queryString,value); + } + + public List find(String queryString, Object[] values) { + return getHibernateTemplate().find(queryString, values); + } + + public List findByNamedQuery(String queryName) { + return getHibernateTemplate().findByNamedQuery(queryName); + } + + public List findByNamedQuery(String queryName, Object value) { + return getHibernateTemplate().findByNamedQuery(queryName, value); + } + + public List findByNamedQuery(String queryName, Object[] values) { + return getHibernateTemplate().findByNamedQuery(queryName, values); + } + + public List searchByStringProperty(Class clazz, String name, String pattern) { + //TODO implement me + return null; + } + + public List searchByStringProperties(Class clazz, Map properties) { + //TODO implement me + return null; + } + + public List searchByNumberSpan(Class clazz, String name, Integer min, Boolean minIncluded, Integer max, Boolean maxIncluded) { + //TODO implement me + return null; + } + + private Qv buildQueryString(Class clazz, Map properties, String operation){ + String clazzName = clazz.getSimpleName(); + String objName = createObjectName(clazzName); + StringBuffer queryString = new StringBuffer(operation).append(clazzName).append(SPACE).append(objName).append(WHERE); + Object[] values = new Object[properties.size()]; + int i=0; + for(Map.Entry entry : properties.entrySet()){ + queryString.append(objName).append(SPOT).append(entry.getKey()).append(EQUAL_TO_WHAT); + if(i!=properties.size()-1){ + queryString.append(AND); + } + values[i] = entry.getValue(); + i++; + } + log.debug(queryString); + return new Qv(queryString.toString(),values); + } + + private Qv buildQueryString(Object obj, String operation) throws Exception{ + String clazzName = obj.getClass().getSimpleName(); + String objName = createObjectName(clazzName); + StringBuffer queryString = new StringBuffer(operation).append(clazzName).append(SPACE).append(objName).append(WHERE); + Field[] fields = obj.getClass().getDeclaredFields(); + List values = new ArrayList(); + for(int i=0; i - * View Source - *

- * - * @author Fei Yang - */ -/** * @version * *

@@ -72,157 +50,8 @@ */ public interface IUserManagementService { - /** - * Set IUserDAO - * - * @param userDao - */ - public void setUserDAO(IUserDAO userDao); /** - * Set IRoleDAO - * - * @param roleDao - */ - public void setRoleDAO(IRoleDAO roleDao); - - /** - * Set ILocaleDAO - * - * @param localeDao - */ - public void setLocaleDAO(ILocaleDAO localeDao); - - /** - * Set IRolePrivilegeDAO - * - * @param rolePrivilegeDao - */ - public void setRolePrivilegeDAO(IRolePrivilegeDAO rolePrivilegeDao); - - - /** - * Set IOrganisationDAO - * - * @param organisationDao - */ - public void setOrganisationDAO(IOrganisationDAO organisationDao); - - /** - * Set IOrganisationTypeDAO - * - * @param organisationTypeDao - */ - public void setOrganisationTypeDAO(IOrganisationTypeDAO organisationTypeDao); - - /** - * Set IOrganisationStateDAO - * - * @param organisationStateDao - */ - public void setOrganisationStateDAO(IOrganisationStateDAO organisationStateDao); - - - /** - * Set IUserOrganisationDAO - * - * @param organisationDao - */ - public void setUserOrganisationDAO(IUserOrganisationDAO userOrganisationDao); - - /** - * Set IUserOrganisationRoleDAO - * - * @param organisationRoleDao - */ - public void setUserOrganisationRoleDAO(IUserOrganisationRoleDAO userOrganisationRoleDao); - - /** - * Set IAuthenticationMethodDAO - * - * @param authenticationMethodDao - */ - public void setAuthenticationMethodDAO(IAuthenticationMethodDAO authenticationMethodDao); - - /** - * Retrieves a user by userId. Null will be returned - * if no user with the userId is found. This method is more - * efficient than getUserByLogin() as the value is cached. - * - * @param userId the user's userId - * @return User - */ - public User getUserById(Integer userId); - - - /** - * Retrieves a user by login. Null will be returned - * if no user with the login is found. This method is not as - * efficient than getUserById() as it is not cached. - * - * @param login the user's login - * @return User - */ - public User getUserByLogin(String login); - - /** - * Retrieves a organisation by id. null will be returned - * if no organisation with the id is found - * - * @param organisationId the organisation's id - * @return Organisation - */ - public Organisation getOrganisationById(Integer organisationId); - - /** - * Retrieves a organisationType by Id. null will be returned - * if no organisationType with the id is found - * - * @param typeId the organisation type's Id - * @return OrganisationType - */ - public OrganisationType getOrganisationTypeById(Integer typeId); - - /** - * Retrieves a organisationType by name. null will be returned - * if no organisationType with the id is found - * - * @param name the organisation type's name - * @return OrganisationType - */ - public OrganisationType getOrganisationTypeByName(String name); - - /** - * Retrieves a role by name. null will be returned - * if no role with the name is found - * - * @param roleName role's name - * @return Role - */ - public Role getRoleByName(String roleName); - - /** - * Retrieves a userOrganisationRole by ids and name. null will be returned - * if no userOrganisationRole is found - * - * @param userId the id of the user - * @param organisationId the organisation's id - * @param roleName the role's name - * @return UserOrganisationRole - */ - public UserOrganisationRole getUserOrganisationRole(Integer userId,Integer organisationId,String roleName); - - /** - * Retrieves a userOrganisation by login and id. null will be returned - * if no userOrganisation is found - * - * @param userId the user's Id - * @param organisationId the organisation's id - * @return UserOrganisation - */ - public UserOrganisation getUserOrganisation(Integer userId,Integer organisationId); - - /** * Retrieves a tree of organisations for a user. The top of the tree is a "dummy" root * organisation, just so that we have a real tree. This makes life easier for Flash. * @@ -261,23 +90,6 @@ public OrganisationDTO getOrganisationForUserWithRole(User user, Integer organisationId); /** - * Retrieves child organisations of the parentOrg - * - * @param parentOrg the parent organisation - * @return List of organisations - */ - public List getChildOrganisations(Organisation parentOrg); - - /** - * Retrieves userOrganisations for the user - * - * @param user the user - * @return List of organisations - */ - public List getUserOrganisationsForUser(User user); - - - /** * Retrieves roles in which the user * has the specified role * @@ -295,155 +107,7 @@ */ public List getUsersFromOrganisation(Integer orgId); - /** - * Retrieves All the AuthenticationMethods - * - * @return List of AuthenticationMethods - */ - public List getAllAuthenticationMethods(); - - /** - * Retrieves AuthenticationMethod for the user - * specified by login. - * - * @param login the user's login - * @return AuthenticationMethod for this user - */ - public AuthenticationMethod getAuthenticationMethodForUser(String login); - - /** - * Retrieves AuthenticationMethod for the user - * specified by login. This implementation is more efficient - * than getAuthenticationMethodForUser(String login). - * - * @param User user - * @return AuthenticationMethod for this user - */ - public AuthenticationMethod getAuthenticationMethodForUser(User user); - - /** - * Retrieves AuthenticationMethod - * specified by name - * - * @param name the method's name - * @return AuthenticationMethod with the name - */ - public AuthenticationMethod getAuthenticationMethodByName(String name); - - - /** - * Retrieves a list of all the OrganisationState objects - * - * @return OrganisationState object list - */ - public List getAllOrgnisationStates(); - - /** - * Retrieve the OrganisationState by the Id - * - * @param oranisationStateId the Id of the organisationState - * @return the OrganisationState object specified by the organisationStateId - */ - public OrganisationState getOrganisationStateById(Integer organisationStateId); - - /** - * - * @param user the user to be created - */ - public void createUser(User user); - - /** - * Updates a user's information - * - * @param user the user - */ - public void updateUser(User user); - - /** - * Save or Updates a user's information - * - * @param user the user - */ - public void saveOrUpdateUser(User user); - - /** - * Updates user's password - * @param login the user's login - * @param newPassword the user's new password - */ - public void updatePassword(String login, String newPassword); - - /** - * Removes a user from the organisation - * - * @param userOrganisation the user's memebership in the organisation - */ - public void removeUserOrganisation(UserOrganisation userOrganisation); - - /** - * Saves or updates an organisation - * - * @param organisation the organisation to be saved or updated - */ - public void saveOrUpdateOrganisation(Organisation organisation); - - /** - * Saves or updates an userOrganisation - * - * @param userOrganisation the userOrganisation to be saved or updated - */ - public void saveOrUpdateUserOrganisation(UserOrganisation userOrganisation); - - /** - * Saves or updates an userOrganisationRole - * - * @param userOrganisationRole the userOrganisationRole to be saved or updated - */ - public void saveOrUpdateUserOrganisationRole(UserOrganisationRole userOrganisationRole); - - /** - * Saves an Organisation while creating its corresponding Workspace - * and WorkspaceFolder - * - * @param organisation The Organisation to be saved - * @param userID The user_id of the user who creates this organisation - * @return Integer The organisation_id of the new Organisation - */ - public Integer saveOrganisation(Organisation organisation,Integer userID); - - /*********************************** - * Methods added by Manpreet Minhas - * ********************************/ - /** - * This method saves a new User to the underlying database while - * creating his default workspace and workspaceFolder - * - * @param user The User object to be persisted - * @param roleID What kind of user he is (AUTHOR/LEARNER/STAFF/ADMIN) - * @return Integer The user_id of the User - */ - public Integer saveUser(User user, Integer roleID); - - /** - * This method creates a new Workspace with a given name - * - * @param name The name with which workspace should be created - * @return Workspace The new Workspace object - */ - public Workspace createWorkspace(String name); - - /** - * This method creates a WorkspaceFolder for a given workspace and user. - * - * @param workspace The Workspace in which this WorkspaceFolder will be contained - * @param userID The user_id of the user who creates the above organisation - * @param workspaceFolderType The type of folder to be created. - * @return WorkspaceFolder The new WorkspaceFolder object - */ - public WorkspaceFolder createWorkspaceFolder(Workspace workspace,Integer userID, Integer workspaceFolderType); - - /** * This method returns the users in the Organisation with * given organisationID and roleName * @@ -464,30 +128,123 @@ */ public List getLearnerLessonsFromOrganisation(Integer userID, Integer organisationID); - public List getAllCountries(); + /** + * save(insert or update) + * @param object The object to be inserted + */ + public void save(Object object); + + /** + * @param objects + * @return void + */ + public void saveAll(Collection objects); + + /** + * Remove an object from the database. + * @param object The object to be deleted + */ + public void delete(Object object); - public List getAllLanguages(); - public List getRolePrivilegesByRoleId(Integer id); + /** + * Be careful to use this method. It will clean up the whole table for the Class + * @param clazz + * @return void + */ + public void deleteAll(Class clazz); - public List getUserOrganisationsByType(Integer organisationTypeId); + /** + * @param objects to delete + * @return void + */ + public void deleteAll(Collection objects); - public List getOrganisationsByType(Integer organisationTypeId); + /** + * @param clazz java Class + * @param id identifier + * @return void + */ + public void deleteById(Class clazz, Serializable id); - public boolean isUserSysAdmin(String login); + /** + * @param clazz + * @param name + * @param value + * @return void + */ + public void deleteByProperty(Class clazz, String name, Object value); - public Organisation getRootOrganisation(); + /** + * @param properties a map of property names and values + * @return void + */ + public void deleteByProperties(Class clazz, Map properties); - public boolean isUserInRoleInOrganisation(String login, Integer roleId, Integer orgId); + /** + * Delete any object which has the same non-null property values as the object + * @param object + * @return void + */ + public void deleteAnythingLike(Object object); - public void deleteOrganisationById(Integer orgId); + /** + * Find an object. If the object is not found + * then it will return null + * @param clazz + * @param id + */ + public Object findById(Class clazz, Serializable id); - public void deleteUserById(Integer userId); + /** + * @param clazz + * @return all of rows in the table for the Class as objects + */ + public List findAll(Class clazz); - public List getOrganisationsByTypeAndStatus(Integer organisationTypeId, Integer organisationStateId); + /** + * @param clazz + * @param name + * @param value + * @return a list of objects which have the same propery value + */ + public List findByProperty(Class clazz, String name, Object value); - public List getUserOrganisationsForUserByTypeAndStatus(String username,Integer organisationTypeId, Integer organisationStateId); + /** + * @param properties a map of property names and values + * @return a list of objects which have the same property values + */ + public List findByProperties(Class clazz, Map properties); - public List getUserOrganisationRoles(Integer organisationId, String username); - + /** + * Find any object which has the same non-null property values as the object + * @param object + * @return a list of objects which has the same non-null property values as the object + */ + public List findAnythingLike(Object object); + + /** + * @param userId + * @param orgId + * @param roleName + * @return true or false + */ + public boolean isUserInRole(Integer userId,Integer orgId, String roleName); + + public List getOrganisationsByTypeAndStatus(Integer typeId, Integer stateId); + + public List getUserOrganisationRoles(Integer orgId, String login); + + public List getUserOrganisationsForUserByTypeAndStatus(String login, Integer typeId, Integer stateId); + + public User getUserByLogin(String login); + + public void updatePassword(String login, String password); + + public Organisation getOrganisationById(Integer orgId); + + public List getOrganisationsByType(Integer typeId); + + public UserOrganisation getUserOrganisation(Integer userId, Integer orgId); + } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -r7d9d7a96ce3ac57723ddcd444253a1d753d520a6 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 7d9d7a96ce3ac57723ddcd444253a1d753d520a6) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -23,38 +23,30 @@ /* $Id$ */ package org.lamsfoundation.lams.usermanagement.service; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Vector; import org.apache.log4j.Logger; import org.lamsfoundation.lams.cache.ICacheManager; +import org.lamsfoundation.lams.dao.IBaseDAO; import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; -import org.lamsfoundation.lams.usermanagement.IRolePrivilegeDAO; import org.lamsfoundation.lams.usermanagement.Organisation; -import org.lamsfoundation.lams.usermanagement.OrganisationState; import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; -import org.lamsfoundation.lams.usermanagement.dao.IAuthenticationMethodDAO; -import org.lamsfoundation.lams.usermanagement.dao.ILocaleDAO; -import org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.IOrganisationStateDAO; -import org.lamsfoundation.lams.usermanagement.dao.IOrganisationTypeDAO; -import org.lamsfoundation.lams.usermanagement.dao.IRoleDAO; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; -import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationRoleDAO; -import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO; -import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO; import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTOFactory; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -74,107 +66,31 @@ */ public class UserManagementService implements IUserManagementService { - protected Logger log = Logger.getLogger(UserManagementService.class); + private Logger log = Logger.getLogger(UserManagementService.class); - private IUserDAO userDAO; + private IBaseDAO baseDAO; - private IRoleDAO roleDAO; - - private ILocaleDAO localeDAO; - - private IRolePrivilegeDAO rolePrivilegeDAO; - - private IOrganisationDAO organisationDAO; - - private IOrganisationTypeDAO organisationTypeDAO; - - private IOrganisationStateDAO organisationStateDAO; - - private IUserOrganisationDAO userOrganisationDAO; - - private IUserOrganisationRoleDAO userOrganisationRoleDAO; - - private IAuthenticationMethodDAO authenticationMethodDAO; - - protected IWorkspaceDAO workspaceDAO; - - protected IWorkspaceFolderDAO workspaceFolderDAO; - protected ILearningDesignDAO learningDesignDAO; protected ILessonDAO lessonDAO; protected ICacheManager cacheManager; - private String[] userClassParts = null; - /** - * @param workspaceFolderDAO - * The workspaceFolderDAO to set. - */ - public void setWorkspaceFolderDAO(IWorkspaceFolderDAO workspaceFolderDAO) { - this.workspaceFolderDAO = workspaceFolderDAO; + public void setBaseDAO(IBaseDAO baseDAO){ + this.baseDAO = baseDAO; } - + /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setUserDAO(org.lamsfoundation.lams.usermanagement.dao.IUserDAO) + * @param learningDesignDAO + * The learningDesignDAO to set. */ - public void setUserDAO(IUserDAO userDAO) { - this.userDAO = userDAO; + public void setLearningDesignDAO(ILearningDesignDAO learningDesignDAO) { + this.learningDesignDAO = learningDesignDAO; } - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setRoleDAO(org.lamsfoundation.lams.usermanagement.dao.IRoleDAO) - */ - public void setRoleDAO(IRoleDAO roleDAO) { - this.roleDAO = roleDAO; - } /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setOrganisationDAO(org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO) - */ - public void setOrganisationDAO(IOrganisationDAO organisationDAO) { - this.organisationDAO = organisationDAO; - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setOrganisationTypeDAO(org.lamsfoundation.lams.usermanagement.dao.IOrganisationTypeDAO) - */ - public void setOrganisationTypeDAO(IOrganisationTypeDAO organisationTypeDAO) { - this.organisationTypeDAO = organisationTypeDAO; - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setOrganisationStateDAO(org.lamsfoundation.lams.usermanagement.dao.IOrganisationStateDAO) - */ - public void setOrganisationStateDAO(IOrganisationStateDAO organisationStateDAO) { - this.organisationStateDAO = organisationStateDAO; - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setUserOrganisationDAO(org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationDAO) - */ - public void setUserOrganisationDAO(IUserOrganisationDAO userOrganisationDAO) { - this.userOrganisationDAO = userOrganisationDAO; - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setUserOrganisationRoleDAO(org.lamsfoundation.lams.usermanagement.dao.IUserOrganisationRoleDAO) - */ - public void setUserOrganisationRoleDAO( - IUserOrganisationRoleDAO userOrganisationRoleDAO) { - this.userOrganisationRoleDAO = userOrganisationRoleDAO; - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setOrganisationDAO(org.lamsfoundation.lams.usermanagement.dao.IAuthenticationMethodDAO) - */ - public void setAuthenticationMethodDAO( - IAuthenticationMethodDAO authenticationMethodDAO) { - this.authenticationMethodDAO = authenticationMethodDAO; - } - - /** * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setLessonDAO(org.lamsfoundation.lams.lesson.dao.ILessonDAO) */ public void setLessonDAO(ILessonDAO lessonDAO) { @@ -185,142 +101,13 @@ this.cacheManager = cacheManager; } - /** - * Tries to get the user from the cache and if that fails then reads it from the database and puts it in the cache. - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUserById(java.lang.Integer) - */ - public User getUserById(Integer userId) { - if ( userClassParts == null ) { - userClassParts = cacheManager.getPartsFromClass(User.class); - } - User user = (User) cacheManager.getItem(this.userClassParts, userId); - if ( user == null ) { - user = userDAO.getUserById(userId); - if ( user != null ) { - cacheManager.addItem(userClassParts,user.getUserId(),user); - if ( log.isDebugEnabled() ){ - log.debug("getUserById retrieved user from database "+user.getUserId()); - } - } - } else if ( log.isDebugEnabled() ){ - log.debug("getUserById retrieved user from cache "+userId); - } - return user; - } - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUserByLogin(java.lang.String) - */ - public User getUserByLogin(String login) { - User user = userDAO.getUserByLogin(login); - if ( user != null ) { - if ( userClassParts == null ) { - userClassParts = cacheManager.getPartsFromClass(User.class); - } - cacheManager.addItem(userClassParts,user.getUserId(),user); - } - return user; - } - - /** - * Clear the user from the cache - presumably the user has been updated. - */ - private void clearUserFromCache(User user) { - cacheManager.removeItem(this.userClassParts,user.getUserId()); - cacheManager.removeItem(this.userClassParts,user.getLogin()); - - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getOrganisationById(java.lang.Integer) - */ - public Organisation getOrganisationById(Integer organisationId) { - return organisationDAO.getOrganisationById(organisationId); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getOrganisationTypeByName(java.lang.String) - */ - public OrganisationType getOrganisationTypeByName(String name) { - return organisationTypeDAO.getOrganisationTypeByName(name); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getRoleByName(java.lang.String) - */ - public Role getRoleByName(String roleName) { - return roleDAO.getRoleByName(roleName); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUserOrganisationRole(java.lang.String,java.lang.Integer,java.lang.String) - */ - public UserOrganisationRole getUserOrganisationRole(Integer userID, Integer organisationId, String roleName) { - User user = this.getUserById(userID); - if (user == null) - return null; - UserOrganisation userOrganisation = userOrganisationDAO - .getUserOrganisation(user.getUserId(), organisationId); - if (userOrganisation == null) - return null; - Role role = roleDAO.getRoleByName(roleName); - if (role == null) - return null; - return userOrganisationRoleDAO.getUserOrganisationRole(userOrganisation - .getUserOrganisationId(), role.getRoleId()); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUserOrganisationRole(java.lang.String,java.lang.Integer,java.lang.String) - */ - public UserOrganisation getUserOrganisation(Integer userId, - Integer organisationId) { - return userOrganisationDAO.getUserOrganisation(userId, organisationId); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getAllAuthenticationMethods() - */ - public List getAllAuthenticationMethods() { - return authenticationMethodDAO.getAllAuthenticationMethods(); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getAuthenticationMethodForUser(java.lang.String) - */ - public AuthenticationMethod getAuthenticationMethodForUser(String login) { - return authenticationMethodDAO.getAuthenticationMethodByUser(this.getUserByLogin(login)); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getAuthenticationMethodForUser(org.lamsfoundation.lams.usermanagement.User) - */ - public AuthenticationMethod getAuthenticationMethodForUser(User user) { - return authenticationMethodDAO.getAuthenticationMethodByUser(user); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getAuthenticationMethodByName(java.lang.String) - */ - public AuthenticationMethod getAuthenticationMethodByName(String name) { - return authenticationMethodDAO.getAuthenticationMethodByName(name); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUserOrganisationsForUser(org.lamsfoundation.lams.usermanagement.User) - */ - public List getUserOrganisationsForUser(User user) { - return userOrganisationDAO.getUserOrganisationsByUser(user); - } - - /** * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getOrganisationRolesForUser(org.lamsfoundation.lams.usermanagement.User, java.util.List) */ public OrganisationDTO getOrganisationsForUserByRole(User user, List restrictToRoleNames) { - // TODO optimise db access List list = new ArrayList(); - Iterator i = userOrganisationDAO.getUserOrganisationsByUser(user).iterator(); + Iterator i = user.getUserOrganisations().iterator(); while (i.hasNext()) { UserOrganisation userOrganisation = (UserOrganisation) i.next(); @@ -337,9 +124,8 @@ * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getOrganisationRolesForUser(org.lamsfoundation.lams.usermanagement.User, java.util.List, java.util.Integer) */ public OrganisationDTO getOrganisationsForUserByRole(User user, List restrictToRoleNames, Integer courseId, List restrictToClassIds) { - // TODO optimise db access List dtolist = new ArrayList(); - Organisation org = organisationDAO.getOrganisationById(courseId); + Organisation org = (Organisation)baseDAO.find(Organisation.class,courseId); dtolist.add(org.getOrganisationDTO()); getChildOrganisations(user, org, restrictToRoleNames, restrictToClassIds, dtolist); OrganisationDTO dtoTree = OrganisationDTOFactory.createTree(dtolist); @@ -353,7 +139,10 @@ private void getChildOrganisations(User user, Organisation org, List restrictToRoleNames, List restrictToClassIds, List dtolist) { if ( org != null ) { boolean notCheckClassId = restrictToClassIds == null || restrictToClassIds.size() == 0; - List childOrgs = userOrganisationDAO.getChildUserOrganisationsByUser(user, org); + Map map = new HashMap(); + map.put("user.userId",user.getUserId()); + map.put("organisation.parentOrganisation.organisationId",org.getOrganisationId()); + List childOrgs = baseDAO.findByProperties(UserOrganisation.class, map); for ( UserOrganisation userOrganisation : childOrgs) { OrganisationDTO dto = userOrganisation.getOrganisation().getOrganisationDTO(); if ( notCheckClassId || restrictToClassIds.contains(dto.getOrganisationID()) ) { @@ -401,7 +190,10 @@ */ public OrganisationDTO getOrganisationForUserWithRole(User user, Integer organisationId) { if ( user != null && organisationId !=null ) { - UserOrganisation userOrganisation = getUserOrganisation(user.getUserId(), organisationId); + Map map = new HashMap(); + map.put("user.userId",user.getUserId()); + map.put("organisation.organisationId",organisationId); + UserOrganisation userOrganisation = (UserOrganisation)baseDAO.findByProperties(UserOrganisation.class,map).get(0); OrganisationDTO dto = userOrganisation.getOrganisation().getOrganisationDTO(); addRolesToDTO(null, userOrganisation, dto); return dto; @@ -410,24 +202,18 @@ } /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getChildOrganisations(org.lamsfoundation.lams.usermanagement.Organisation) - */ - public List getChildOrganisations(Organisation parentOrg) { - return organisationDAO.getChildOrganisations(parentOrg); - } - - /** * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getRolesForUserByOrganisation(org.lamsfoundation.lams.usermanagement.User, * java.lang.Integer) */ public List getRolesForUserByOrganisation(User user, Integer orgId) { List list = new ArrayList(); - UserOrganisation userOrg = userOrganisationDAO.getUserOrganisation(user - .getUserId(), orgId); + Map map = new HashMap(); + map.put("user.userId",user.getUserId()); + map.put("organisation.organisationId",orgId); + UserOrganisation userOrg = (UserOrganisation)baseDAO.findByProperties(UserOrganisation.class,map).get(0); if (userOrg == null) return null; - Iterator i = userOrganisationRoleDAO.getUserOrganisationRoles( - userOrg.getUserOrganisationId()).iterator(); + Iterator i = userOrg.getUserOrganisationRoles().iterator(); while (i.hasNext()) { UserOrganisationRole userOrgRole = (UserOrganisationRole) i.next(); list.add(userOrgRole.getRole()); @@ -440,81 +226,14 @@ */ public List getUsersFromOrganisation(Integer orgId) { List list = new ArrayList(); - Iterator i = userOrganisationDAO.getUserOrganisationsByOrganisationId( - orgId).iterator(); + Iterator i = baseDAO.findByProperty(UserOrganisation.class,"organisation.organisationId",orgId).iterator(); while (i.hasNext()) { UserOrganisation userOrganisation = (UserOrganisation) i.next(); list.add(userOrganisation.getUser()); } return list; } - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#createUser(org.lamsfoundation.lams.usermanagement.User) - */ - public void createUser(User user) { - userDAO.insert(user); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#updateUser(org.lamsfoundation.lams.usermanagement.User) - */ - public void updateUser(User user) { - userDAO.update(user); - clearUserFromCache(user); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#saveOrupdate(org.lamsfoundation.lams.usermanagement.User) - */ - public void saveOrUpdateUser(User user) { - userDAO.insertOrUpdate(user); - clearUserFromCache(user); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#updatePassword(java.lang.String,java.lang.String) - */ - public void updatePassword(String login, String newPassword) { - userDAO.updatePassword(login, newPassword); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#removeUserOrganisation(org.lamsfoundation.lams.usermanagement.UserOrganisation) - */ - public void removeUserOrganisation(UserOrganisation userOrganisation) { - userOrganisationDAO.delete(userOrganisation); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#saveOrUpdateOrganisation(org.lamsfoundation.lams.usermanagement.Organisation) - */ - public void saveOrUpdateOrganisation(Organisation organisation) { - organisationDAO.insertOrUpdate(organisation); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#saveOrUpdateOrganisation(org.lamsfoundation.lams.usermanagement.UserOrganisation) - */ - public void saveOrUpdateUserOrganisation(UserOrganisation userOrganisation) { - userOrganisationDAO.insertOrUpdate(userOrganisation); - } - - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#saveOrUpdateOrganisationRole(org.lamsfoundation.lams.usermanagement.UserOrganisationRole) - */ - public void saveOrUpdateUserOrganisationRole( - UserOrganisationRole userOrganisationRole) { - userOrganisationRoleDAO.insertOrUpdate(userOrganisationRole); - } - - /** - * @param workspaceDAO - * The workspaceDAO to set. - */ - public void setUserManagementWorkspaceDAO(IWorkspaceDAO workspaceDAO) { - this.workspaceDAO = workspaceDAO; - } /********************************************* * Utility Methods added by Manpreet Minhas @@ -525,122 +244,37 @@ * java.lang.Integer) */ public Integer saveOrganisation(Organisation organisation, Integer userID) { - Workspace workspace = createWorkspace(organisation.getName()); - WorkspaceFolder workspaceFolder = createWorkspaceFolder(workspace, - userID, WorkspaceFolder.NORMAL); + Workspace workspace = new Workspace(organisation.getName()); + WorkspaceFolder workspaceFolder = new WorkspaceFolder(workspace.getName(),workspace.getWorkspaceId(), + userID, new Date(), new Date(), WorkspaceFolder.NORMAL); workspace.setRootFolder(workspaceFolder); - workspaceDAO.insertOrUpdate(workspace); + baseDAO.insertOrUpdate(workspace); organisation.setWorkspace(workspace); - organisationDAO.insertOrUpdate(organisation); + baseDAO.insertOrUpdate(organisation); return organisation.getOrganisationId(); } /** - * This method creates a new Workspace with a given name - * - * @param name - * The name with which workspace should be created - * @return Workspace The new Workspace object - */ - public Workspace createWorkspace(String name) { - Workspace workspace = new Workspace(name); - workspaceDAO.insert(workspace); - return workspace; - - } - - /** - * This method creates a WorkspaceFolder for a given workspace and user. - * - * @param workspace - * The Workspace in which this WorkspaceFolder will be contained - * @param userID - * The user_id of the user who creates the above organisation - * @param workspaceFolderType - * The type of folder to be created. - * @return WorkspaceFolder The new WorkspaceFolder object - */ - public WorkspaceFolder createWorkspaceFolder(Workspace workspace, - Integer userID, Integer workspaceFolderType) { - WorkspaceFolder workspaceFolder = new WorkspaceFolder(workspace - .getName(), workspace.getWorkspaceId(), userID, new Date(), - new Date(), workspaceFolderType); - workspaceFolderDAO.insert(workspaceFolder); - return workspaceFolder; - - } - - /** * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#save(org.lamsfoundation.lams.usermanagement.User) */ - public Integer saveUser(User user, Integer roleID) { - userDAO.insert(user); - createUserOrganisation(user, roleID); - Workspace workspace = createWorkspace(user.getLogin()); - WorkspaceFolder workspaceFolder = createWorkspaceFolder(workspace, user - .getUserId(), WorkspaceFolder.NORMAL); - createWorkspaceFolder(workspace, user.getUserId(), WorkspaceFolder.RUN_SEQUENCES); - workspace.setRootFolder(workspaceFolder); - workspaceDAO.update(workspace); - user.setWorkspace(workspace); - userDAO.update(user); + public Integer saveUser(User user) { + if(user.getUserId()==null){//new User + Workspace workspace = new Workspace(user.getFullName()); + workspace.setRootFolder(new WorkspaceFolder(workspace.getName(),workspace.getWorkspaceId(),user.getUserId(),new Date(),new Date(),WorkspaceFolder.NORMAL)); + user.setWorkspace(workspace); + } + baseDAO.insertOrUpdate(user); return user.getUserId(); } - + /** - * This is a utility method required by the above method - * save. It adds a new record to the - * underlying database table indicating the organisation - * to which this user belongs - * - * @param user - * @param roleID - * @return Integer - */ - private Integer createUserOrganisation(User user, Integer roleID) { - UserOrganisation userOrganisation = new UserOrganisation(); - userOrganisation.setUser(user); - userOrganisationDAO.insert(userOrganisation); - userOrganisation.addUserOrganisationRole(createUserOrganisationRole( - userOrganisation, roleID)); - userOrganisationDAO.insertOrUpdate(userOrganisation); - return userOrganisation.getUserOrganisationId(); - } - - /** - * This is a utility method required by the above method - * createUserOrganisation. It adds a new record - * to the underlying database table indicating the Role that - * the given user has in the Organisation. - * - * @param userOrganisation - * @param roleID - * @return UserOrganisationRole - */ - private UserOrganisationRole createUserOrganisationRole( - UserOrganisation userOrganisation, Integer roleID) { - UserOrganisationRole userOrganisationRole = new UserOrganisationRole(); - userOrganisationRole.setUserOrganisation(userOrganisation); - userOrganisationRole.setRole(roleDAO.getRoleById(roleID)); - userOrganisationRoleDAO.insert(userOrganisationRole); - return userOrganisationRole; - } - /** - * @param learningDesignDAO - * The learningDesignDAO to set. - */ - public void setLearningDesignDAO(ILearningDesignDAO learningDesignDAO) { - this.learningDesignDAO = learningDesignDAO; - } - - /** * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUsersFromOrganisationByRole(java.lang.Integer, * java.lang.String) */ public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName) { Vector users = new Vector(); - Organisation organisation = organisationDAO.getOrganisationById(organisationID); + Organisation organisation = (Organisation)baseDAO.find(Organisation.class,organisationID); if (organisation != null) { Iterator iterator = organisation.getUserOrganisations().iterator(); while (iterator.hasNext()) { @@ -671,76 +305,123 @@ return lessonDAO.getActiveLessonsForLearner(userID, organisationID); } - public List getAllOrgnisationStates() { - return organisationStateDAO.getAllOrganisationStates(); + + public Organisation getRootOrganisation() { + return (Organisation)baseDAO.findByProperty(Organisation.class,"organisationType.organisationTypeId",OrganisationType.ROOT_TYPE).get(0); } - public OrganisationState getOrganisationStateById(Integer organisationStateId) { - return organisationStateDAO.getOrganisationStateById(organisationStateId); + public void save(Object object) { + baseDAO.insertOrUpdate(object); } - public OrganisationType getOrganisationTypeById(Integer typeId) { - return organisationTypeDAO.getOrganisationTypeById(typeId); + public void saveAll(Collection objects) { + baseDAO.insertOrUpdateAll(objects); } - public void setLocaleDAO(ILocaleDAO localeDAO) { - this.localeDAO = localeDAO; + public void delete(Object object) { + baseDAO.delete(object); } - public List getAllCountries() { - return localeDAO.getAllCountries(); + public void deleteAll(Class clazz) { + baseDAO.deleteAll(clazz); } - public List getAllLanguages() { - return localeDAO.getAllLanguages(); + public void deleteAll(Collection objects) { + baseDAO.deleteAll(objects); } - public void setRolePrivilegeDAO(IRolePrivilegeDAO rolePrivilegeDAO) { - this.rolePrivilegeDAO = rolePrivilegeDAO; + public void deleteById(Class clazz, Serializable id) { + baseDAO.deleteById(clazz,id); } - public List getRolePrivilegesByRoleId(Integer id) { - return rolePrivilegeDAO.getRolePrivilegesByRoleId(id); + public void deleteByProperty(Class clazz, String name, Object value) { + baseDAO.deleteByProperty(clazz,name,value); } - public List getUserOrganisationsByType(Integer organisationTypeId) { - return userOrganisationDAO.getUserOrganisationsByType(organisationTypeId); + public void deleteByProperties(Class clazz, Map properties) { + baseDAO.deleteByProperties(clazz,properties); } - public List getOrganisationsByType(Integer organisationTypeId) { - return organisationDAO.getOrganisationsByType(organisationTypeId); + public void deleteAnythingLike(Object object) { + baseDAO.deleteAnythingLike(object); } - public boolean isUserSysAdmin(String login) { - return isUserInRoleInOrganisation(login,Role.ROLE_SYSADMIN,getRootOrganisation().getOrganisationId()); + public Object findById(Class clazz, Serializable id) { + return baseDAO.find(clazz,id); } - public Organisation getRootOrganisation() { - return (Organisation)getOrganisationsByType(OrganisationType.ROOT_TYPE).get(0); + public List findAll(Class clazz) { + return baseDAO.findAll(clazz); } - public boolean isUserInRoleInOrganisation(String login, Integer roleId, Integer orgId) { - return userOrganisationRoleDAO.getUserOrganisationRole(userOrganisationDAO.getUserOrganisation(userDAO.getUserByLogin(login).getUserId(),orgId).getUserOrganisationId(),roleId)!=null; + public List findByProperty(Class clazz, String name, Object value) { + return baseDAO.findByProperty(clazz,name,value); } - public void deleteOrganisationById(Integer orgId) { - organisationDAO.deleteOrganisationById(orgId); + public List findByProperties(Class clazz, Map properties) { + return baseDAO.findByProperties(clazz,properties); } - - public void deleteUserById(Integer userId) { - userDAO.deleteUserById(userId); + + public List findAnythingLike(Object object) { + return baseDAO.findAnythingLike(object); } - public List getOrganisationsByTypeAndStatus(Integer organisationTypeId, Integer organisationStateId) { - return organisationDAO.getOrganisationsByTypeAndStatus(organisationTypeId,organisationStateId); + public boolean isUserInRole(Integer userId, Integer orgId, String roleName) { + Map properties = new HashMap(); + properties.put("userOrganisation.user.userId",userId); + properties.put("userOrganisation.organisation.organisationId",orgId); + properties.put("role.name",roleName); + if (baseDAO.findByProperties(UserOrganisationRole.class,properties).size()==0) + return false; + return true; } - public List getUserOrganisationsForUserByTypeAndStatus(String username, Integer organisationTypeId, Integer organisationStateId) { - return userOrganisationDAO.getUserOrganisationsForUserByTypeAndStatus(username,organisationTypeId,organisationStateId); + public List getOrganisationsByTypeAndStatus(Integer typeId, Integer stateId) { + Map properties = new HashMap(); + properties.put("organisationType.organisationTypeId",typeId); + properties.put("organisationState.organisationStateId",stateId); + return baseDAO.findByProperties(Organisation.class,properties); } - public List getUserOrganisationRoles(Integer organisationId, String username) { - return userOrganisationRoleDAO.getUserOrganisationRoles(organisationId,username); + public List getUserOrganisationRoles(Integer orgId, String login) { + Map properties = new HashMap(); + properties.put("userOrganisation.organisation.organisationId",orgId); + properties.put("userOrganisation.user.login",login); + return baseDAO.findByProperties(UserOrganisationRole.class,properties); } + public List getUserOrganisationsForUserByTypeAndStatus(String login, Integer typeId, Integer stateId) { + Map properties = new HashMap(); + properties.put("user.login",login); + properties.put("organisation.organisationType.organisationTypeId",typeId); + properties.put("organisation.organisationState.organisationStateId",stateId); + return baseDAO.findByProperties(UserOrganisation.class,properties); + } + + public User getUserByLogin(String login) { + return (User)baseDAO.findByProperty(User.class,"login",login).get(0); + } + + public void updatePassword(String login, String password) { + User user = getUserByLogin(login); + user.setPassword(password); + baseDAO.update(user); + } + + public Organisation getOrganisationById(Integer orgId) { + return (Organisation)baseDAO.find(Organisation.class,orgId); + } + + public List getOrganisationsByType(Integer typeId) { + return baseDAO.findByProperty(Organisation.class,"organisationType.organisationTypeId",typeId); + } + + public UserOrganisation getUserOrganisation(Integer userId, Integer orgId) { + Map properties = new HashMap(); + properties.put("user.userId",userId); + properties.put("organisation.organisationId",orgId); + return (UserOrganisation)baseDAO.findByProperties(UserOrganisation.class,properties).get(0); + } + + } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/ExcelUserImportFileParser.java =================================================================== diff -u -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/ExcelUserImportFileParser.java (.../ExcelUserImportFileParser.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/ExcelUserImportFileParser.java (.../ExcelUserImportFileParser.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -55,9 +55,9 @@ */ public class ExcelUserImportFileParser implements IUserImportFileParser{ - /* +/* * start of definition of property keys used in the excel file - */ + private static final short LOGIN = 0; private static final short PASSWORD = 1; private static final short AUTH_METHOD = 2; @@ -94,7 +94,7 @@ /** * @see org.lamsfoundation.lams.usermanagement.util.IUserImportFileParser#parseUsersInOrganisation(FileItem fileItem, Organisation org, String adminLogin, boolean existingUsersOnly) - */ + public String parseUsersInOrganisation(FileItem fileItem, Organisation org, String adminLogin, boolean existingUsersOnly) throws IOException{ String errorMessage = ""; POIFSFileSystem fs = new POIFSFileSystem(fileItem.getInputStream()); @@ -310,7 +310,7 @@ int index = roleDescription.indexOf(SEPERATOR, fromIndex); while (index != -1) { - Role role = service.getRoleByName(roleDescription.substring(fromIndex, index)); + Role role = (Role)service.findByProperty(Role.class,"name",roleDescription.substring(fromIndex, index)).get(0); if(role!=null)//ignore wrong spelled role { roles.add(role); @@ -330,4 +330,4 @@ String status = parseStringCell(cell,row,-1); return new Boolean(STATUS_DISABLED.equals(status)); } -} +*/} Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/IUserImportFileParser.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/IUserImportFileParser.java (.../IUserImportFileParser.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/IUserImportFileParser.java (.../IUserImportFileParser.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -55,6 +55,6 @@ public static final String AUTH_METHOD_REQUIRED = "Authentication method is required."; public static final String ROLE_REQUIRED = "Role is required."; - public String parseUsersInOrganisation(FileItem fileItem, Organisation org, String adminLogin, boolean existingUsersOnly) throws IOException; + //public String parseUsersInOrganisation(FileItem fileItem, Organisation org, String adminLogin, boolean existingUsersOnly) throws IOException; } Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java (.../TestActivity.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java (.../TestActivity.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -28,8 +28,8 @@ import org.lamsfoundation.lams.learningdesign.dao.hibernate.ActivityDAO; import org.lamsfoundation.lams.test.AbstractCommonTestCase; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; /** @@ -40,7 +40,7 @@ public class TestActivity extends AbstractCommonTestCase { protected ActivityDAO activityDAO; - protected IUserDAO userDAO; + protected IBaseDAO baseDAO; protected User testUser; @@ -54,8 +54,8 @@ { super.setUp(); activityDAO =(ActivityDAO) context.getBean("activityDAO"); - userDAO = (UserDAO)context.getBean("userDAO"); - testUser = userDAO.getUserById(TEST_USER_ID); + baseDAO = (BaseDAO)context.getBean("userDAO"); + testUser = (User)baseDAO.find(User.class,TEST_USER_ID); } Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java =================================================================== diff -u -r56dc9e59c9512b28858b2da10f756103010d9cca -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java (.../TestGroupingDAO.java) (revision 56dc9e59c9512b28858b2da10f756103010d9cca) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java (.../TestGroupingDAO.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -26,8 +26,8 @@ import org.lamsfoundation.lams.learningdesign.dao.hibernate.GroupingDAO; import org.lamsfoundation.lams.test.AbstractCommonTestCase; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; /** * @@ -39,7 +39,7 @@ public class TestGroupingDAO extends AbstractCommonTestCase { protected IGroupingDAO groupingDAO; - protected IUserDAO userDAO = null; + protected IBaseDAO baseDAO = null; private static Grouping testGrouping =null; private static User testUser = null; private final Integer TEST_USER_ID = new Integer(2); @@ -52,9 +52,9 @@ { super.setUp(); groupingDAO = (GroupingDAO)context.getBean("groupingDAO"); - userDAO = (UserDAO)context.getBean("userDAO"); + baseDAO = (BaseDAO)context.getBean("userDAO"); - testUser = userDAO.getUserById(TEST_USER_ID); + testUser = (User)baseDAO.find(User.class,TEST_USER_ID); } Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestLearningDesignDAO.java =================================================================== diff -u -r03392c988a23f5e9129967f8ae692488213632fe -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestLearningDesignDAO.java (.../TestLearningDesignDAO.java) (revision 03392c988a23f5e9129967f8ae692488213632fe) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestLearningDesignDAO.java (.../TestLearningDesignDAO.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -32,7 +32,6 @@ import org.lamsfoundation.lams.learningdesign.dao.hibernate.TransitionDAO; import org.lamsfoundation.lams.learningdesign.dto.LearningDesignDTO; import org.lamsfoundation.lams.test.AbstractCommonTestCase; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.WorkspaceFolderDAO; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; /** @@ -43,9 +42,6 @@ protected ActivityDAO activityDAO; private LearningDesignDAO learningDesignDAO; protected TransitionDAO transitionDAO; - protected WorkspaceFolderDAO workspaceFolderDAO; - //private UserDAO userDAO; - //private User user; private LearningDesign learningDesign; public TestLearningDesignDAO(String name) { Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== diff -u -r0a3641cb6f80f0def4d3172ca10da9788a9268f4 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 0a3641cb6f80f0def4d3172ca10da9788a9268f4) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -44,10 +44,8 @@ import org.lamsfoundation.lams.test.AbstractCommonTestCase; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.dao.IOrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.OrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; /** @@ -64,9 +62,8 @@ //--------------------------------------------------------------------- // DAO instances for initializing data //--------------------------------------------------------------------- - protected IUserDAO userDao; + protected IBaseDAO baseDao; protected ILearningDesignDAO learningDesignDao; - protected IOrganisationDAO orgDao; protected ILessonDAO lessonDao; protected ILessonClassDAO lessonClassDao; protected ILearnerProgressDAO learnerProgressDao; @@ -110,14 +107,13 @@ { super.setUp(); - userDao = (UserDAO) this.context.getBean("userDAO"); + baseDao = (BaseDAO) this.context.getBean("userDAO"); learningDesignDao = (LearningDesignDAO) this.context.getBean("learningDesignDAO"); - orgDao = (OrganisationDAO) this.context.getBean("organisationDAO"); - + //retrieve test domain data - testUser = userDao.getUserById(TEST_USER_ID); + testUser = (User)baseDao.find(User.class,TEST_USER_ID); testLearningDesign = learningDesignDao.getLearningDesignById(TEST_LEARNING_DESIGN_ID); - testOrg = orgDao.getOrganisationById(TEST_ORGANIZATION_ID); + testOrg = (Organisation)baseDao.find(Organisation.class,TEST_ORGANIZATION_ID); //get lesson related daos lessonDao = (LessonDAO)this.context.getBean("lessonDAO"); Index: lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java =================================================================== diff -u -rbb9853953ff8cc6e70017a866d94fc2cfcb2cc35 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java (.../ToolDataAccessTestCase.java) (revision bb9853953ff8cc6e70017a866d94fc2cfcb2cc35) +++ lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java (.../ToolDataAccessTestCase.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -42,8 +42,8 @@ import org.lamsfoundation.lams.tool.dao.hibernate.ToolDAO; import org.lamsfoundation.lams.tool.dao.hibernate.ToolSessionDAO; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; /** @@ -57,7 +57,7 @@ protected IToolContentDAO toolContentDao; protected IToolDAO toolDao; protected IToolSessionDAO toolSessionDao; - protected IUserDAO userDao; + protected IBaseDAO baseDao; protected IActivityDAO activityDAO; protected IGroupDAO groupDao; protected ILessonDAO lessonDao; @@ -99,12 +99,12 @@ toolSessionDao = (ToolSessionDAO)this.context.getBean("toolSessionDAO"); activityDAO =(ActivityDAO) context.getBean("activityDAO"); - userDao = (UserDAO) this.context.getBean("userDAO"); + baseDao = (BaseDAO) this.context.getBean("userDAO"); groupDao = (GroupDAO)this.context.getBean("groupDAO"); lessonDao = (LessonDAO)this.context.getBean("lessonDAO"); //retrieve test domain data - testUser = userDao.getUserById(TEST_USER_ID); + testUser = (User)baseDao.find(User.class,TEST_USER_ID); testNonGroupedActivity = (ToolActivity) activityDAO.getActivityByActivityId(TEST_NON_GROUP_ACTIVITY_ID); testGroupedActivity = (ToolActivity) activityDAO.getActivityByActivityId(TEST_GROUPED_ACTIVITY_ID); testGroup = (Group)groupDao.getGroupById(TEST_GROUP_ID); Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java =================================================================== diff -u -r1454b2fd27486dd14b1ccf172b96df61a0b0d355 -r6633f5d5c7844c27582a9b323fead87fac99dfd5 --- lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java (.../TestUserManagementService.java) (revision 1454b2fd27486dd14b1ccf172b96df61a0b0d355) +++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java (.../TestUserManagementService.java) (revision 6633f5d5c7844c27582a9b323fead87fac99dfd5) @@ -26,43 +26,30 @@ import java.io.IOException; import java.util.Date; +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.test.AbstractCommonTestCase; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.AuthenticationMethodDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.OrganisationDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.OrganisationTypeDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.RoleDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserOrganisationRoleDAO; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; /** * @author Manpreet Minhas */ public class TestUserManagementService extends AbstractCommonTestCase { - protected UserDAO userDAO; - protected RoleDAO roleDAO; - protected OrganisationDAO organisationDAO; - protected OrganisationTypeDAO organisationTypeDAO; protected UserManagementService userManagementService; - protected AuthenticationMethodDAO authenticationMethodDAO; - protected UserOrganisationRoleDAO userOrganisationRoleDAO; + private IBaseDAO baseDAO; + public TestUserManagementService(String name){ super(name); } protected void setUp()throws Exception{ super.setUp(); - userDAO =(UserDAO)context.getBean("userDAO"); - organisationDAO =(OrganisationDAO)context.getBean("organisationDAO"); - organisationTypeDAO =(OrganisationTypeDAO)context.getBean("organisationTypeDAO"); + baseDAO =(BaseDAO)context.getBean("baseDAO"); userManagementService = (UserManagementService)context.getBean("userManagementService"); - authenticationMethodDAO =(AuthenticationMethodDAO)context.getBean("authenticationMethodDAO"); - roleDAO = (RoleDAO)context.getBean("roleDAO"); - userOrganisationRoleDAO = (UserOrganisationRoleDAO)context.getBean("userOrganisationRoleDAO"); } - public void testSaveOrganisation(){ +/* public void testSaveOrganisation(){ Organisation organisation = new Organisation("Test Organisation", "Test Organisation Description", new Date(), @@ -79,7 +66,7 @@ user.setCreateDate(new Date()); user.setAuthenticationMethod(authenticationMethodDAO.getAuthenticationMethodById(new Integer(2))); assertNotNull(userManagementService.saveUser(user, new Integer(3))); - } + }*/ /** public void testGetUsersFromOrganisationByRole() throws IOException{ String packet = userManagementService.getUsersFromOrganisationByRole(new Integer(4),"AUTHOR"); Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationDAOTest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationTypeDAOTest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/RoleDAOTest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestUserOrganisationDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceFolderDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6633f5d5c7844c27582a9b323fead87fac99dfd5 refers to a dead (removed) revision in file `lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/UserDAOTest.java'. Fisheye: No comparison available. Pass `N' to diff?