Commit by: bcm Modified files: server/build.xml 1.13 1.14 server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java 1.2 1.3 server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java 1.2 1.3 server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java 1.2 1.3 server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java 1.5 1.6 server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java 1.3 1.4 server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java 1.4 1.5 server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java 1.3 1.4
Log message: initialize user.roles collection when getting a user. this is a great reason to have the manager-level api return a fresh instance of the model object when saving and updating (i have flip-flopped on this a few times). test that a created user is in the appropriate role. ViewCVS links: http://cvs.osafoundation.org/index.cgi/server/build.xml.diff?r1=text&tr1=1.13&r2=text&tr2=1.14 http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java.diff?r1=text&tr1=1.2&r2=text&tr2=1.3 http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java.diff?r1=text&tr1=1.2&r2=text&tr2=1.3 http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java.diff?r1=text&tr1=1.2&r2=text&tr2=1.3 http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java.diff?r1=text&tr1=1.5&r2=text&tr2=1.6 http://cvs.osafoundation.org/index.cgi/server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java.diff?r1=text&tr1=1.3&r2=text&tr2=1.4 http://cvs.osafoundation.org/index.cgi/server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java.diff?r1=text&tr1=1.4&r2=text&tr2=1.5 http://cvs.osafoundation.org/index.cgi/server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java.diff?r1=text&tr1=1.3&r2=text&tr2=1.4 Index: server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java diff -u server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java:1.4 server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java:1.5 --- server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java:1.4 Thu Feb 24 16:48:56 2005 +++ server/webapps/console/src/org/osaf/chandler/server/console/UserAction.java Tue Mar 1 16:52:09 2005 @@ -119,14 +119,14 @@ HttpServletResponse response) throws Exception { DynaActionForm userForm = (DynaActionForm) form; - User user = (User) userForm.get(FORMATTR_USER); - user.setPassword((String) userForm.get(FORMATTR_PASSWORD)); + User formUser = (User) userForm.get(FORMATTR_USER); + formUser.setPassword((String) userForm.get(FORMATTR_PASSWORD)); try { if (log.isDebugEnabled()) { - log.debug("creating user " + user.getUsername()); + log.debug("creating user " + formUser.getUsername()); } - mgr.saveUser(user); + User user = mgr.saveUser(formUser); request.setAttribute(ATTR_USER, user); saveConfirmationMessage(request, MSG_CONFIRM_CREATE); @@ -154,14 +154,14 @@ return mapping.findForward(OSAFStrutsConstants.FWD_CANCEL); } - User user = (User) userForm.get(FORMATTR_USER); - user.setPassword((String) userForm.get(FORMATTR_PASSWORD)); + User formUser = (User) userForm.get(FORMATTR_USER); + formUser.setPassword((String) userForm.get(FORMATTR_PASSWORD)); try { if (log.isDebugEnabled()) { - log.debug("updating user " + user.getUsername()); + log.debug("updating user " + formUser.getUsername()); } - mgr.updateUser(user); + User user = mgr.updateUser(formUser); request.setAttribute(ATTR_USER, user); saveConfirmationMessage(request, MSG_CONFIRM_UPDATE); Index: server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java diff -u server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java:1.3 server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java:1.4 --- server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java:1.3 Thu Feb 24 16:48:56 2005 +++ server/core/test/org/osaf/chandler/server/manager/ProvisioningManagerTest.java Tue Mar 1 16:52:08 2005 @@ -46,9 +46,7 @@ assertTrue(user.equals(user2)); user2.setPassword("new password"); - mgr.updateUser(user2); - - User user3 = mgr.getUser(user2.getUsername()); + User user3 = mgr.updateUser(user2); assertTrue(! user.getPassword().equals(user3.getPassword())); mgr.removeUser(user.getUsername()); Index: server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java diff -u server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java:1.2 server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java:1.3 --- server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java:1.2 Wed Feb 23 17:30:47 2005 +++ server/core/src/org/osaf/chandler/server/dao/hibernate/RoleDAOHibernate.java Tue Mar 1 16:52:07 2005 @@ -46,7 +46,6 @@ role.setDateModified(new Date()); role.setDateCreated(role.getDateModified()); getHibernateTemplate().save(role); - getHibernateTemplate().flush(); } /** @@ -54,7 +53,6 @@ public void updateRole(Role role) { role.setDateModified(new Date()); getHibernateTemplate().update(role); - getHibernateTemplate().flush(); } /** @@ -62,7 +60,6 @@ public void removeRole(String rolename) { Object role = getHibernateTemplate().load(Role.class, rolename); getHibernateTemplate().delete(role); - getHibernateTemplate().flush(); } /** Index: server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java diff -u server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java:1.2 server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java:1.3 --- server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java:1.2 Wed Feb 23 17:30:47 2005 +++ server/core/src/org/osaf/chandler/server/dao/hibernate/UserDAOHibernate.java Tue Mar 1 16:52:07 2005 @@ -3,13 +3,19 @@ import org.osaf.chandler.server.dao.UserDAO; import org.osaf.chandler.server.model.User; +import java.sql.SQLException; import java.util.Date; import java.util.List; +import net.sf.hibernate.Hibernate; +import net.sf.hibernate.HibernateException; +import net.sf.hibernate.Session; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.orm.ObjectRetrievalFailureException; +import org.springframework.orm.hibernate.HibernateCallback; import org.springframework.orm.hibernate.support.HibernateDaoSupport; /** @@ -33,11 +39,26 @@ /** */ public User getUser(String username) { - User user = (User) getHibernateTemplate().get(User.class, username); - if (user == null) { - throw new ObjectRetrievalFailureException(User.class, username); + return (User) + getHibernateTemplate().execute(new GetUserCallback(username)); + } + + private class GetUserCallback implements HibernateCallback { + private String username; + + public GetUserCallback(String username) { + this.username = username; + } + + public Object doInHibernate(Session session) + throws HibernateException, SQLException { + User user = (User) session.get(User.class, username); + if (user == null) { + throw new ObjectRetrievalFailureException(User.class, username); + } + Hibernate.initialize(user.getRoles()); + return user; } - return user; } /** @@ -46,7 +67,6 @@ user.setDateModified(new Date()); user.setDateCreated(user.getDateModified()); getHibernateTemplate().save(user); - getHibernateTemplate().flush(); } /** @@ -54,7 +74,6 @@ public void updateUser(User user) { user.setDateModified(new Date()); getHibernateTemplate().update(user); - getHibernateTemplate().flush(); } /** @@ -62,7 +81,6 @@ public void removeUser(String username) { Object user = getHibernateTemplate().load(User.class, username); getHibernateTemplate().delete(user); - getHibernateTemplate().flush(); } /** Index: server/build.xml diff -u server/build.xml:1.13 server/build.xml:1.14 --- server/build.xml:1.13 Thu Feb 24 18:08:47 2005 +++ server/build.xml Tue Mar 1 16:52:06 2005 @@ -35,17 +35,20 @@ inheritAll="false"/> </target> - <target name="build-ROOT" description="build ROOT webapp"> + <target name="build-ROOT" depends="build-core" + description="build ROOT webapp"> <ant dir="${ROOT.home}" target="all" inheritAll="false"/> </target> - <target name="build-share" description="build share webapp"> + <target name="build-share" depends="build-core" + description="build share webapp"> <ant dir="${share.home}" target="all" inheritAll="false"/> </target> - <target name="build-console" description="build console webapp"> + <target name="build-console" depends="build-core" + description="build console webapp"> <ant dir="${console.home}" target="all" inheritAll="false"/> </target> @@ -107,6 +110,9 @@ </sql> </target> + <target name="test-init" depends="test-gen,test-dbsetup" + description="initialize test environment... only needed once"/> + <target name="test" depends="test-core,test-console" description="run all tests"/> Index: server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java diff -u server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java:1.2 server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java:1.3 --- server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java:1.2 Tue Feb 22 21:17:32 2005 +++ server/core/src/org/osaf/chandler/server/manager/ProvisioningManager.java Tue Mar 1 16:52:07 2005 @@ -21,11 +21,11 @@ /** */ - public void saveUser(User user); + public User saveUser(User user); /** */ - public void updateUser(User user); + public User updateUser(User user); /** */ Index: server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java diff -u server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java:1.5 server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java:1.6 --- server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java:1.5 Thu Feb 24 18:08:48 2005 +++ server/core/src/org/osaf/chandler/server/manager/impl/ProvisioningManagerImpl.java Tue Mar 1 16:52:08 2005 @@ -73,7 +73,7 @@ /** */ - public void saveUser(User user) { + public User saveUser(User user) { user.setPassword(digestPassword(user.getPassword())); Role userRole = roleDao.getRole(ChandlerServerConstants.ROLE_USER); @@ -82,15 +82,19 @@ shareDao.createHomedir(user.getUsername()); // XXX: add ACLs on homedir + + return userDao.getUser(user.getUsername()); } /** */ - public void updateUser(User user) { + public User updateUser(User user) { if (user.getPassword().length() < 32) { user.setPassword(digestPassword(user.getPassword())); } userDao.updateUser(user); + + return userDao.getUser(user.getUsername()); } /** Index: server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java diff -u server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java:1.3 server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java:1.4 --- server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java:1.3 Thu Feb 24 18:08:51 2005 +++ server/webapps/console/test/org/osaf/chandler/server/console/UserActionTest.java Tue Mar 1 16:52:09 2005 @@ -1,9 +1,12 @@ package org.osaf.chandler.server.console; +import org.osaf.chandler.server.ChandlerServerConstants; +import org.osaf.chandler.server.model.Role; import org.osaf.chandler.server.model.User; import org.osaf.chandler.server.console.UserAction; import org.osaf.struts.OSAFStrutsConstants; +import java.util.Iterator; import java.util.List; import org.apache.struts.action.DynaActionForm; @@ -33,6 +36,20 @@ User user = (User) getRequest().getAttribute(UserAction.ATTR_USER); assertNotNull(user); + // check that he has the user role but not the root role + boolean isUser = false; + for (Iterator i=user.getRoles().iterator(); i.hasNext();) { + Role role = (Role) i.next(); + if (role.getName().equals(ChandlerServerConstants.ROLE_ROOT)) { + fail("user is in root role but should not be"); + } + if (role.getName().equals(ChandlerServerConstants.ROLE_USER)) { + isUser = true; + break; + } + } + assertTrue("user is not in user role but should be", isUser); + String encodedPassword = user.getPassword(); getRequest().setAttribute(UserAction.ATTR_USER, null); _______________________________________________ Commits mailing list Commits@osafoundation.org http://lists.osafoundation.org/mailman/listinfo/commits