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

Reply via email to