You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by tv...@apache.org on 2007/04/05 19:28:55 UTC

svn commit: r525904 [3/4] - in /jakarta/turbine/fulcrum/trunk/security/torque: ./ schema/ src/java/ src/java/org/apache/ src/java/org/apache/fulcrum/security/torque/ src/java/org/apache/fulcrum/security/torque/basic/ src/java/org/apache/fulcrum/securit...

Modified: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicGroupManagerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicGroupManagerImpl.java?view=diff&rev=525904&r1=525903&r2=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicGroupManagerImpl.java (original)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicGroupManagerImpl.java Thu Apr  5 10:28:53 2007
@@ -15,25 +15,13 @@
  *  limitations under the License.
  */
 import java.sql.Connection;
-import java.util.Iterator;
 import java.util.List;
 
-import org.apache.fulcrum.security.RoleManager;
-import org.apache.fulcrum.security.UserManager;
 import org.apache.fulcrum.security.entity.Group;
-import org.apache.fulcrum.security.entity.Role;
-import org.apache.fulcrum.security.entity.User;
-import org.apache.fulcrum.security.model.dynamic.entity.DynamicGroup;
 import org.apache.fulcrum.security.torque.TorqueAbstractGroupManager;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicGroupRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
-import org.apache.fulcrum.security.torque.om.TorqueRole;
-import org.apache.fulcrum.security.torque.om.TorqueRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueUser;
-import org.apache.fulcrum.security.torque.om.TorqueUserPeer;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.RoleSet;
-import org.apache.fulcrum.security.util.UserSet;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicGroupPeer;
+import org.apache.torque.NoRowsException;
+import org.apache.torque.TooManyRowsException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.Criteria;
 /**
@@ -45,55 +33,40 @@
 public class TorqueDynamicGroupManagerImpl extends TorqueAbstractGroupManager
 {
     /**
-     * Provides the users and roles for the given group
-     *  
-     * @param group the group for which the users/roles should be retrieved  
-     * @param con a database connection
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectAllGroups(java.sql.Connection)
      */
-    protected void attachObjectsForGroup(Group group, Connection con)
-        throws TorqueException, DataBackendException
+    protected List doSelectAllGroups(Connection con) throws TorqueException
     {
-        UserSet userSet = new UserSet();
+        Criteria criteria = new Criteria(TorqueDynamicGroupPeer.DATABASE_NAME);
         
-        Criteria criteria = new Criteria();
-        criteria.addJoin(TorqueDynamicUserGroupPeer.USER_ID, TorqueUserPeer.USER_ID);
-        criteria.add(TorqueDynamicUserGroupPeer.GROUP_ID, (Integer)group.getId());
-        
-        List users = TorqueUserPeer.doSelect(criteria, con);
-        UserManager userManager = getUserManager();
-        
-        for (Iterator i = users.iterator(); i.hasNext();)
-        {
-            TorqueUser u = (TorqueUser)i.next();
-            User user = userManager.getUserInstance();
-            
-            user.setId(u.getId());
-            user.setName(u.getName());
-            user.setPassword(u.getPassword());
-            userSet.add(user);
-        }
-        
-        ((DynamicGroup)group).setUsers(userSet);
+        return TorqueDynamicGroupPeer.doSelect(criteria, con);
+    }
 
-        RoleSet roleSet = new RoleSet();
-        
-        criteria.clear();
-        criteria.addJoin(TorqueDynamicGroupRolePeer.ROLE_ID, TorqueRolePeer.ROLE_ID);
-        criteria.add(TorqueDynamicGroupRolePeer.GROUP_ID, (Integer)group.getId());
-        
-        List roles = TorqueRolePeer.doSelect(criteria, con);
-        RoleManager roleManager = getRoleManager();
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectById(java.lang.Integer, java.sql.Connection)
+     */
+    protected Group doSelectById(Integer id, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        return TorqueDynamicGroupPeer.retrieveByPK(id, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectByName(java.lang.String, java.sql.Connection)
+     */
+    protected Group doSelectByName(String name, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        Criteria criteria = new Criteria(TorqueDynamicGroupPeer.DATABASE_NAME);
+        criteria.add(TorqueDynamicGroupPeer.GROUP_NAME, name);
+        criteria.setIgnoreCase(true);
+        criteria.setSingleRecord(true);
         
-        for (Iterator i = roles.iterator(); i.hasNext();)
+        List groups = TorqueDynamicGroupPeer.doSelect(criteria, con);
+
+        if (groups.isEmpty())
         {
-            TorqueRole r = (TorqueRole)i.next();
-            Role role = roleManager.getRoleInstance();
-            
-            role.setId(r.getId());
-            role.setName(r.getName());
-            roleSet.add(role);
+            throw new NoRowsException(name);
         }
         
-        ((DynamicGroup)group).setRoles(roleSet);
+        return (Group)groups.get(0);
     }
 }

Modified: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicModelManagerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicModelManagerImpl.java?view=diff&rev=525904&r1=525903&r2=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicModelManagerImpl.java (original)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicModelManagerImpl.java Thu Apr  5 10:28:53 2007
@@ -14,6 +14,8 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
+import java.sql.Connection;
+
 import org.apache.fulcrum.security.entity.Group;
 import org.apache.fulcrum.security.entity.Permission;
 import org.apache.fulcrum.security.entity.Role;
@@ -24,18 +26,11 @@
 import org.apache.fulcrum.security.model.dynamic.entity.DynamicPermission;
 import org.apache.fulcrum.security.model.dynamic.entity.DynamicRole;
 import org.apache.fulcrum.security.model.dynamic.entity.DynamicUser;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicGroupRole;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicGroupRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermission;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermissionPeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegates;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegatesPeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroup;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
+import org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity;
 import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.UnknownEntityException;
 import org.apache.torque.TorqueException;
-import org.apache.torque.util.Criteria;
+import org.apache.torque.util.Transaction;
 /**
  * This implementation persists to a database via Torque.
  *
@@ -55,27 +50,39 @@
     public synchronized void revoke(Group group, Role role)
         throws DataBackendException, UnknownEntityException
     {
-        boolean groupExists = false;
-        boolean roleExists = false;
-        try
+        boolean groupExists = getGroupManager().checkExists(group);
+        boolean roleExists = getRoleManager().checkExists(role);
+
+        if (groupExists && roleExists)
         {
-            groupExists = getGroupManager().checkExists(group);
-            roleExists = getRoleManager().checkExists(role);
+            ((DynamicGroup) group).removeRole(role);
+            ((DynamicRole) role).removeGroup(group);
 
-            if (groupExists && roleExists)
+            Connection con = null;
+            
+            try
             {
-                ((DynamicGroup) group).removeRole(role);
-                ((DynamicRole) role).removeGroup(group);
-
-                Criteria criteria = new Criteria();
-                criteria.add(TorqueDynamicGroupRolePeer.ROLE_ID, (Integer)role.getId());
-                criteria.add(TorqueDynamicGroupRolePeer.GROUP_ID, (Integer)group.getId());
-                TorqueDynamicGroupRolePeer.doDelete(criteria);
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)role).getDatabaseName());
+                
+                ((TorqueAbstractSecurityEntity)role).update(con);
+                ((TorqueAbstractSecurityEntity)group).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (TorqueException e)
-        {
-            throw new DataBackendException("revoke('" + group.getName() + "', '" + role.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("revoke('" + group.getName() + "', '" + role.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+            
+            return;
         }
 
         if (!groupExists)
@@ -100,28 +107,39 @@
     public synchronized void grant(Role role, Permission permission)
         throws DataBackendException, UnknownEntityException
     {
-        boolean roleExists = false;
-        boolean permissionExists = false;
+        boolean roleExists = getRoleManager().checkExists(role);
+        boolean permissionExists = getPermissionManager().checkExists(permission);
 
-        try
+        if (roleExists && permissionExists)
         {
-            roleExists = getRoleManager().checkExists(role);
-            permissionExists = getPermissionManager().checkExists(permission);
+            ((DynamicRole) role).addPermission(permission);
+            ((DynamicPermission) permission).addRole(role);
 
-            if (roleExists && permissionExists)
+            Connection con = null;
+            
+            try
             {
-                ((DynamicRole) role).addPermission(permission);
-                ((DynamicPermission) permission).addRole(role);
-
-                TorqueDynamicRolePermission rp = new TorqueDynamicRolePermission();
-                rp.setPermissionId((Integer)permission.getId());
-                rp.setRoleId((Integer)role.getId());
-                rp.save();
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)role).getDatabaseName());
+                
+                ((TorqueAbstractSecurityEntity)role).update(con);
+                ((TorqueAbstractSecurityEntity)permission).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (Exception e)
-        {
-            throw new DataBackendException("grant('" + role.getName() + "', '" + permission.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("grant('" + role.getName() + "', '" + permission.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+            
+            return;
         }
 
         if (!roleExists)
@@ -146,28 +164,39 @@
     public synchronized void revoke(Role role, Permission permission)
         throws DataBackendException, UnknownEntityException
     {
-        boolean roleExists = false;
-        boolean permissionExists = false;
+        boolean roleExists = getRoleManager().checkExists(role);
+        boolean permissionExists = getPermissionManager().checkExists(permission);
 
-        try
+        if (roleExists && permissionExists)
         {
-            roleExists = getRoleManager().checkExists(role);
-            permissionExists = getPermissionManager().checkExists(permission);
+            ((DynamicRole) role).removePermission(permission);
+            ((DynamicPermission) permission).removeRole(role);
 
-            if (roleExists && permissionExists)
+            Connection con = null;
+            
+            try
             {
-                ((DynamicRole) role).removePermission(permission);
-                ((DynamicPermission) permission).removeRole(role);
-
-                Criteria criteria = new Criteria();
-                criteria.add(TorqueDynamicRolePermissionPeer.ROLE_ID, (Integer)role.getId());
-                criteria.add(TorqueDynamicRolePermissionPeer.PERMISSION_ID, (Integer)permission.getId());
-                TorqueDynamicRolePermissionPeer.doDelete(criteria);
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)role).getDatabaseName());
+                
+                ((TorqueAbstractSecurityEntity)role).update(con);
+                ((TorqueAbstractSecurityEntity)permission).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (TorqueException e)
-        {
-            throw new DataBackendException("revoke('" + role.getName() + "', '" + permission.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("revoke('" + role.getName() + "', '" + permission.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+            
+            return;
         }
         
         if (!roleExists)
@@ -192,30 +221,39 @@
      */
     public synchronized void grant(User user, Group group) throws DataBackendException, UnknownEntityException
     {
-        boolean groupExists = false;
-        boolean userExists = false;
+        boolean groupExists = getGroupManager().checkExists(group);
+        boolean userExists = getUserManager().checkExists(user);
         
-        try
+        if (groupExists && userExists)
         {
-            groupExists = getGroupManager().checkExists(group);
-            userExists = getUserManager().checkExists(user);
-
-            if (groupExists && userExists)
+            ((DynamicUser) user).addGroup(group);
+            ((DynamicGroup) group).addUser(user);
+            
+            Connection con = null;
+            
+            try
             {
-                ((DynamicUser) user).addGroup(group);
-                ((DynamicGroup) group).addUser(user);
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)user).getDatabaseName());
                 
-                TorqueDynamicUserGroup ug = new TorqueDynamicUserGroup();
-                ug.setGroupId((Integer)group.getId());
-                ug.setUserId((Integer)user.getId());
-                ug.save();
-
-                return;
+                ((TorqueAbstractSecurityEntity)user).update(con);
+                ((TorqueAbstractSecurityEntity)group).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (Exception e)
-        {
-            throw new DataBackendException("grant('" + user.getName() + "', '" + group.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("grant('" + user.getName() + "', '" + group.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+
+            return;
         }
 
         if (!groupExists)
@@ -240,30 +278,39 @@
      */
     public synchronized void revoke(User user, Group group) throws DataBackendException, UnknownEntityException
     {
-        boolean groupExists = false;
-        boolean userExists = false;
+        boolean groupExists = getGroupManager().checkExists(group);
+        boolean userExists = getUserManager().checkExists(user);
         
-        try
+        if (groupExists && userExists)
         {
-            groupExists = getGroupManager().checkExists(group);
-            userExists = getUserManager().checkExists(user);
-
-            if (groupExists && userExists)
+            ((DynamicUser) user).removeGroup(group);
+            ((DynamicGroup) group).removeUser(user);
+            
+            Connection con = null;
+            
+            try
             {
-                ((DynamicUser) user).removeGroup(group);
-                ((DynamicGroup) group).removeUser(user);
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)user).getDatabaseName());
                 
-                Criteria criteria = new Criteria();
-                criteria.add(TorqueDynamicUserGroupPeer.GROUP_ID, (Integer)group.getId());
-                criteria.add(TorqueDynamicUserGroupPeer.USER_ID, (Integer)user.getId());
-                TorqueDynamicUserGroupPeer.doDelete(criteria);
-
-                return;
+                ((TorqueAbstractSecurityEntity)user).update(con);
+                ((TorqueAbstractSecurityEntity)group).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (TorqueException e)
-        {
-            throw new DataBackendException("revoke('" + user.getName() + "', '" + group.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("revoke('" + user.getName() + "', '" + group.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+
+            return;
         }
 
         if (!groupExists)
@@ -288,27 +335,39 @@
     public synchronized void grant(Group group, Role role)
         throws DataBackendException, UnknownEntityException
     {
-        boolean groupExists = false;
-        boolean roleExists = false;
+        boolean groupExists = getGroupManager().checkExists(group);
+        boolean roleExists = getRoleManager().checkExists(role);
         
-        try
+        if (groupExists && roleExists)
         {
-            groupExists = getGroupManager().checkExists(group);
-            roleExists = getRoleManager().checkExists(role);
-            if (groupExists && roleExists)
+            ((DynamicGroup) group).addRole(role);
+            ((DynamicRole) role).addGroup(group);
+            
+            Connection con = null;
+            
+            try
             {
-                ((DynamicGroup) group).addRole(role);
-                ((DynamicRole) role).addGroup(group);
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)role).getDatabaseName());
+                
+                ((TorqueAbstractSecurityEntity)role).update(con);
+                ((TorqueAbstractSecurityEntity)group).update(con);
                 
-                TorqueDynamicGroupRole gr = new TorqueDynamicGroupRole();
-                gr.setGroupId((Integer)group.getId());
-                gr.setRoleId((Integer)role.getId());
-                gr.save();
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (Exception e)
-        {
-            throw new DataBackendException("grant('" + group.getName() + "', '" + role.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("grant('" + group.getName() + "', '" + role.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+            
+            return;
         }
 
         if (!groupExists)
@@ -330,29 +389,40 @@
     public synchronized void addDelegate(User delegator, User delegatee)
             throws DataBackendException, UnknownEntityException 
     {
-        boolean delegatorExists = false;
-        boolean delegateeExists = false;
+        boolean delegatorExists = getUserManager().checkExists(delegator);
+        boolean delegateeExists = getUserManager().checkExists(delegatee);
         
-        try
+        if (delegatorExists && delegateeExists)
         {
-            delegatorExists = getUserManager().checkExists(delegator);
-            delegateeExists = getUserManager().checkExists(delegatee);
+            super.addDelegate(delegator, delegatee);
 
-            if (delegatorExists && delegateeExists)
+            Connection con = null;
+            
+            try
             {
-                super.addDelegate(delegator, delegatee);
-
-                TorqueDynamicUserDelegates d = new TorqueDynamicUserDelegates();
-                d.setDelegatorUserId((Integer)delegator.getId());
-                d.setDelegateeUserId((Integer)delegatee.getId());
-                d.save();
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)delegator).getDatabaseName());
+                
+                ((TorqueAbstractSecurityEntity)delegator).update(con);
+                ((TorqueAbstractSecurityEntity)delegatee).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (Exception e)
-        {
-            throw new DataBackendException("addDelegate('" 
-                    + delegator.getName() + "', '" 
-                    + delegatee.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("addDelegate('" 
+                        + delegator.getName() + "', '" 
+                        + delegatee.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+            
+            return;
         }
 
         if (!delegatorExists)
@@ -374,29 +444,40 @@
     public synchronized void removeDelegate(User delegator, User delegatee)
             throws DataBackendException, UnknownEntityException 
     {
-        boolean delegatorExists = false;
-        boolean delegateeExists = false;
+        boolean delegatorExists = getUserManager().checkExists(delegator);
+        boolean delegateeExists = getUserManager().checkExists(delegatee);
         
-        try
+        if (delegatorExists && delegateeExists)
         {
-            delegatorExists = getUserManager().checkExists(delegator);
-            delegateeExists = getUserManager().checkExists(delegatee);
+            super.removeDelegate(delegator, delegatee);
 
-            if (delegatorExists && delegateeExists)
+            Connection con = null;
+            
+            try
             {
-                super.removeDelegate(delegator, delegatee);
-
-                Criteria criteria = new Criteria();
-                criteria.add(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, (Integer)delegator.getId());
-                criteria.add(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, (Integer)delegatee.getId());
-                TorqueDynamicUserDelegatesPeer.doDelete(criteria);
+                con = Transaction.begin(((TorqueAbstractSecurityEntity)delegator).getDatabaseName());
+                
+                ((TorqueAbstractSecurityEntity)delegator).update(con);
+                ((TorqueAbstractSecurityEntity)delegatee).update(con);
+                
+                Transaction.commit(con);
+                con = null;
             }
-        }
-        catch (TorqueException e)
-        {
-            throw new DataBackendException("removeDelegate('" 
-                    + delegator.getName() + "', '" 
-                    + delegatee.getName() + "') failed", e);
+            catch (TorqueException e)
+            {
+                throw new DataBackendException("removeDelegate('" 
+                        + delegator.getName() + "', '" 
+                        + delegatee.getName() + "') failed", e);
+            }
+            finally
+            {
+                if (con != null)
+                {
+                    Transaction.safeRollback(con);
+                }
+            }
+            
+            return;
         }
 
         if (!delegatorExists)

Modified: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicPermissionManagerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicPermissionManagerImpl.java?view=diff&rev=525904&r1=525903&r2=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicPermissionManagerImpl.java (original)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicPermissionManagerImpl.java Thu Apr  5 10:28:53 2007
@@ -15,19 +15,13 @@
  *  limitations under the License.
  */
 import java.sql.Connection;
-import java.util.Iterator;
 import java.util.List;
 
-import org.apache.fulcrum.security.RoleManager;
 import org.apache.fulcrum.security.entity.Permission;
-import org.apache.fulcrum.security.entity.Role;
-import org.apache.fulcrum.security.model.dynamic.entity.DynamicPermission;
 import org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermissionPeer;
-import org.apache.fulcrum.security.torque.om.TorqueRole;
-import org.apache.fulcrum.security.torque.om.TorqueRolePeer;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.RoleSet;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicPermissionPeer;
+import org.apache.torque.NoRowsException;
+import org.apache.torque.TooManyRowsException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.Criteria;
 /**
@@ -39,33 +33,40 @@
 public class TorqueDynamicPermissionManagerImpl extends TorqueAbstractPermissionManager
 {
     /**
-     * Provides the roles for the given permission
-     *  
-     * @param permission the permission for which the roles should be retrieved  
-     * @param con a database connection
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager#doSelectAllPermissions(java.sql.Connection)
      */
-    protected void attachObjectsForPermission(Permission permission, Connection con)
-        throws TorqueException, DataBackendException
+    protected List doSelectAllPermissions(Connection con) throws TorqueException
     {
-        RoleSet roleSet = new RoleSet();
+        Criteria criteria = new Criteria(TorqueDynamicPermissionPeer.DATABASE_NAME);
         
-        Criteria criteria = new Criteria();
-        criteria.addJoin(TorqueDynamicRolePermissionPeer.ROLE_ID, TorqueRolePeer.ROLE_ID);
-        criteria.add(TorqueDynamicRolePermissionPeer.PERMISSION_ID, (Integer)permission.getId());
-        
-        List roles = TorqueRolePeer.doSelect(criteria, con);
-        RoleManager roleManager = getRoleManager();
+        return TorqueDynamicPermissionPeer.doSelect(criteria, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager#doSelectById(java.lang.Integer, java.sql.Connection)
+     */
+    protected Permission doSelectById(Integer id, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        return TorqueDynamicPermissionPeer.retrieveByPK(id, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager#doSelectByName(java.lang.String, java.sql.Connection)
+     */
+    protected Permission doSelectByName(String name, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        Criteria criteria = new Criteria(TorqueDynamicPermissionPeer.DATABASE_NAME);
+        criteria.add(TorqueDynamicPermissionPeer.PERMISSION_NAME, name);
+        criteria.setIgnoreCase(true);
+        criteria.setSingleRecord(true);
         
-        for (Iterator i = roles.iterator(); i.hasNext();)
+        List permissions = TorqueDynamicPermissionPeer.doSelect(criteria, con);
+
+        if (permissions.isEmpty())
         {
-            TorqueRole r = (TorqueRole)i.next();
-            Role role = roleManager.getRoleInstance();
-            
-            role.setId(r.getId());
-            role.setName(r.getName());
-            roleSet.add(role);
+            throw new NoRowsException(name);
         }
         
-        ((DynamicPermission)permission).setRoles(roleSet);
+        return (Permission)permissions.get(0);
     }
 }

Modified: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicRoleManagerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicRoleManagerImpl.java?view=diff&rev=525904&r1=525903&r2=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicRoleManagerImpl.java (original)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicRoleManagerImpl.java Thu Apr  5 10:28:53 2007
@@ -15,26 +15,13 @@
  *  limitations under the License.
  */
 import java.sql.Connection;
-import java.util.Iterator;
 import java.util.List;
 
-import org.apache.fulcrum.security.GroupManager;
-import org.apache.fulcrum.security.PermissionManager;
-import org.apache.fulcrum.security.entity.Group;
-import org.apache.fulcrum.security.entity.Permission;
 import org.apache.fulcrum.security.entity.Role;
-import org.apache.fulcrum.security.model.dynamic.entity.DynamicRole;
 import org.apache.fulcrum.security.torque.TorqueAbstractRoleManager;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicGroupRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermissionPeer;
-import org.apache.fulcrum.security.torque.om.TorqueGroup;
-import org.apache.fulcrum.security.torque.om.TorqueGroupPeer;
-import org.apache.fulcrum.security.torque.om.TorquePermission;
-import org.apache.fulcrum.security.torque.om.TorquePermissionPeer;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.GroupSet;
-import org.apache.fulcrum.security.util.PermissionSet;
-import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePeer;
+import org.apache.torque.NoRowsException;
+import org.apache.torque.TooManyRowsException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.Criteria;
 /**
@@ -46,54 +33,40 @@
 public class TorqueDynamicRoleManagerImpl extends TorqueAbstractRoleManager
 {
     /**
-     * Provides the groups/permissions for the given role
-     *  
-     * @param role the role for which the groups/permissions should be retrieved  
-     * @param con a database connection
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractRoleManager#doSelectAllRoles(java.sql.Connection)
      */
-    protected void attachObjectsForRole(Role role, Connection con)
-        throws TorqueException, DataBackendException, UnknownEntityException
+    protected List doSelectAllRoles(Connection con) throws TorqueException
     {
-        GroupSet groupSet = new GroupSet();
-        
-        Criteria criteria = new Criteria();
-        criteria.addJoin(TorqueDynamicGroupRolePeer.GROUP_ID, TorqueGroupPeer.GROUP_ID);
-        criteria.add(TorqueDynamicGroupRolePeer.ROLE_ID, (Integer)role.getId());
-        
-        List groups = TorqueGroupPeer.doSelect(criteria, con);
-        GroupManager groupManager = getGroupManager();
-        
-        for (Iterator i = groups.iterator(); i.hasNext();)
-        {
-            TorqueGroup g = (TorqueGroup)i.next();
-            Group group = groupManager.getGroupInstance();
-            
-            group.setId(g.getId());
-            group.setName(g.getName());
-            groupSet.add(group);
-        }
-        
-        ((DynamicRole)role).setGroups(groupSet);
+        Criteria criteria = new Criteria(TorqueDynamicRolePeer.DATABASE_NAME);
 
-        PermissionSet permissionSet = new PermissionSet();
-        
-        criteria.clear();
-        criteria.addJoin(TorqueDynamicRolePermissionPeer.PERMISSION_ID, TorquePermissionPeer.PERMISSION_ID);
-        criteria.add(TorqueDynamicRolePermissionPeer.ROLE_ID, (Integer)role.getId());
-        
-        List permissions = TorquePermissionPeer.doSelect(criteria, con);
-        PermissionManager permissionManager = getPermissionManager();
+        return TorqueDynamicRolePeer.doSelect(criteria, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractRoleManager#doSelectById(java.lang.Integer, java.sql.Connection)
+     */
+    protected Role doSelectById(Integer id, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        return TorqueDynamicRolePeer.retrieveByPK(id, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractRoleManager#doSelectByName(java.lang.String, java.sql.Connection)
+     */
+    protected Role doSelectByName(String name, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        Criteria criteria = new Criteria(TorqueDynamicRolePeer.DATABASE_NAME);
+        criteria.add(TorqueDynamicRolePeer.ROLE_NAME, name);
+        criteria.setIgnoreCase(true);
+        criteria.setSingleRecord(true);
+
+        List roles = TorqueDynamicRolePeer.doSelect(criteria, con);
         
-        for (Iterator i = permissions.iterator(); i.hasNext();)
+        if (roles.isEmpty())
         {
-            TorquePermission p = (TorquePermission)i.next();
-            Permission permission = permissionManager.getPermissionInstance();
-            
-            permission.setId(p.getId());
-            permission.setName(p.getName());
-            permissionSet.add(permission);
+            throw new NoRowsException(name);
         }
         
-        ((DynamicRole)role).setPermissions(permissionSet);
+        return (Role)roles.get(0);
     }
 }

Modified: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicUserManagerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicUserManagerImpl.java?view=diff&rev=525904&r1=525903&r2=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicUserManagerImpl.java (original)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicUserManagerImpl.java Thu Apr  5 10:28:53 2007
@@ -15,24 +15,13 @@
  *  limitations under the License.
  */
 import java.sql.Connection;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
-import org.apache.fulcrum.security.GroupManager;
-import org.apache.fulcrum.security.entity.Group;
 import org.apache.fulcrum.security.entity.User;
-import org.apache.fulcrum.security.model.dynamic.entity.DynamicUser;
 import org.apache.fulcrum.security.torque.TorqueAbstractUserManager;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegatesPeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
-import org.apache.fulcrum.security.torque.om.TorqueGroup;
-import org.apache.fulcrum.security.torque.om.TorqueGroupPeer;
-import org.apache.fulcrum.security.torque.om.TorqueUser;
-import org.apache.fulcrum.security.torque.om.TorqueUserPeer;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.GroupSet;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicUserPeer;
+import org.apache.torque.NoRowsException;
+import org.apache.torque.TooManyRowsException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.Criteria;
 /**
@@ -44,75 +33,40 @@
 public class TorqueDynamicUserManagerImpl extends TorqueAbstractUserManager
 {
     /**
-     * Provides the attached objects for the given user
-     *  
-     * @param user the user for which the attached objects should be retrieved  
-     * @param con a database connection
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractUserManager#doSelectAllUsers(java.sql.Connection)
      */
-    protected void attachObjectsForUser(User user, Connection con)
-        throws TorqueException, DataBackendException
+    protected List doSelectAllUsers(Connection con) throws TorqueException
     {
-        GroupSet groupSet = new GroupSet();
-        
-        Criteria criteria = new Criteria();
-        criteria.addJoin(TorqueDynamicUserGroupPeer.GROUP_ID, TorqueGroupPeer.GROUP_ID);
-        criteria.add(TorqueDynamicUserGroupPeer.USER_ID, (Integer)user.getId());
-        
-        List groups = TorqueGroupPeer.doSelect(criteria, con);
-        GroupManager groupManager = getGroupManager();
-        
-        for (Iterator i = groups.iterator(); i.hasNext();)
-        {
-            TorqueGroup g = (TorqueGroup)i.next();
-            Group group = groupManager.getGroupInstance();
-            
-            group.setId(g.getId());
-            group.setName(g.getName());
-            groupSet.add(group);
-        }
-        
-        ((DynamicUser)user).setGroups(groupSet);
+        Criteria criteria = new Criteria(TorqueDynamicUserPeer.DATABASE_NAME);
 
-        Set delegatorsSet = new HashSet();
-        
-        criteria.clear();
-        criteria.addJoin(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, TorqueUserPeer.USER_ID);
-        criteria.add(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, (Integer)user.getId());
-        
-        List users = TorqueUserPeer.doSelect(criteria, con);
-        
-        for (Iterator i = users.iterator(); i.hasNext();)
-        {
-            TorqueUser u = (TorqueUser)i.next();
-            User delegator = getUserInstance();
-            
-            delegator.setId(u.getId());
-            delegator.setName(u.getName());
-            delegator.setPassword(u.getPassword());
-            delegatorsSet.add(delegator);
-        }
-        
-        ((DynamicUser)user).setDelegators(delegatorsSet);
+        return TorqueDynamicUserPeer.doSelect(criteria, con);
+    }
 
-        Set delegateesSet = new HashSet();
-        
-        criteria.clear();
-        criteria.addJoin(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, TorqueUserPeer.USER_ID);
-        criteria.add(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, (Integer)user.getId());
-        
-        users = TorqueUserPeer.doSelect(criteria, con);
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractUserManager#doSelectById(java.lang.Integer, java.sql.Connection)
+     */
+    protected User doSelectById(Integer id, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        return TorqueDynamicUserPeer.retrieveByPK(id, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractUserManager#doSelectByName(java.lang.String, java.sql.Connection)
+     */
+    protected User doSelectByName(String name, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        Criteria criteria = new Criteria(TorqueDynamicUserPeer.DATABASE_NAME);
+        criteria.add(TorqueDynamicUserPeer.LOGIN_NAME, name);
+        criteria.setIgnoreCase(true);
+        criteria.setSingleRecord(true);
+
+        List users = TorqueDynamicUserPeer.doSelect(criteria, con);
         
-        for (Iterator i = users.iterator(); i.hasNext();)
+        if (users.isEmpty())
         {
-            TorqueUser u = (TorqueUser)i.next();
-            User delegatee = getUserInstance();
-            
-            delegatee.setId(u.getId());
-            delegatee.setName(u.getName());
-            delegatee.setPassword(u.getPassword());
-            delegateesSet.add(delegatee);
+            throw new NoRowsException(name);
         }
         
-        ((DynamicUser)user).setDelegatees(delegateesSet);
+        return (User)users.get(0);
     }
 }

Added: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java?view=auto&rev=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java (added)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineGroup.java Thu Apr  5 10:28:53 2007
@@ -0,0 +1,174 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ *  Copyright 2001-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+import java.sql.Connection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.fulcrum.security.model.turbine.entity.TurbineGroup;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
+import org.apache.torque.TorqueException;
+import org.apache.torque.om.SimpleKey;
+import org.apache.torque.util.Criteria;
+/**
+ * This abstract class provides the SecurityInterface to the managers.
+ *
+ * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @version $Id:$
+ */
+public abstract class TorqueAbstractTurbineGroup extends TorqueAbstractSecurityEntity
+    implements TurbineGroup
+{
+    /** a cache of user_group_role objects */
+    private Set userGroupRoleSet = null;
+
+    /**
+     * Forward reference to generated code
+     * 
+     * Get a list of association objects, pre-populated with their TorqueTurbineRole 
+     * objects.
+     * 
+     * @param criteria Criteria to define the selection of records
+     * @throws TorqueException
+     * 
+     * @return a list of User/Group/Role relations
+     */
+    protected abstract List getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(Criteria criteria)
+        throws TorqueException;
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#addUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
+     */
+    public void addUserGroupRole(TurbineUserGroupRole userGroupRole)
+    {
+        getUserGroupRoleSet().add(userGroupRole);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#getUserGroupRoleSet()
+     */
+    public Set getUserGroupRoleSet()
+    {
+        if (userGroupRoleSet == null)
+        {
+            userGroupRoleSet = new HashSet();
+        }
+
+        return userGroupRoleSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#removeUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
+     */
+    public void removeUserGroupRole(TurbineUserGroupRole userGroupRole)
+    {
+        getUserGroupRoleSet().remove(userGroupRole);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#setUserGroupRoleSet(java.util.Set)
+     */
+    public void setUserGroupRoleSet(Set userGroupRoleSet)
+    {
+        if (userGroupRoleSet != null)
+        {
+            this.userGroupRoleSet = userGroupRoleSet;
+        }
+        else
+        {
+            this.userGroupRoleSet = new HashSet();
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#getDatabaseName()
+     */
+    public String getDatabaseName()
+    {
+        return TorqueTurbineGroupPeer.DATABASE_NAME;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection)
+     */
+    public void retrieveAttachedObjects(Connection con) throws TorqueException
+    {
+        this.userGroupRoleSet = new HashSet();
+        
+        // the generated method that allows a Connection parameter is missing
+        List ugrs = getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(new Criteria());
+
+        for (Iterator i = ugrs.iterator(); i.hasNext();)
+        {
+            TorqueTurbineUserGroupRole ttugr = (TorqueTurbineUserGroupRole)i.next();
+            
+            TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+            ugr.setGroup(this);
+            ugr.setRole(ttugr.getTorqueTurbineRole());
+            ugr.setUser(ttugr.getTorqueTurbineUser(con));
+            userGroupRoleSet.add(ugr);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#update(java.sql.Connection)
+     */
+    public void update(Connection con) throws TorqueException
+    {
+        if (userGroupRoleSet != null)
+        {
+            Criteria criteria = new Criteria();
+            
+            /* remove old entries */
+            criteria.add(TorqueTurbineUserGroupRolePeer.GROUP_ID, getEntityId());
+            TorqueTurbineUserGroupRolePeer.doDelete(criteria, con);
+
+            for (Iterator i = userGroupRoleSet.iterator(); i.hasNext();)
+            {
+                TurbineUserGroupRole ugr = (TurbineUserGroupRole)i.next();
+                
+                TorqueTurbineUserGroupRole ttugr = new TorqueTurbineUserGroupRole();
+                ttugr.setGroupId((Integer)ugr.getGroup().getId());
+                ttugr.setUserId((Integer)ugr.getUser().getId());
+                ttugr.setRoleId((Integer)ugr.getRole().getId());
+                ttugr.save(con);
+            }
+        }
+        
+        try
+        {
+            save(con);
+        }
+        catch (Exception e)
+        {
+            throw new TorqueException(e);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#delete()
+     */
+    public void delete() throws TorqueException
+    {
+        TorqueTurbineGroupPeer.doDelete(SimpleKey.keyFor(getEntityId()));
+    }
+}
\ No newline at end of file

Added: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java?view=auto&rev=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java (added)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbinePermission.java Thu Apr  5 10:28:53 2007
@@ -0,0 +1,189 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ *  Copyright 2001-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+import java.sql.Connection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.model.turbine.entity.TurbinePermission;
+import org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.torque.om.TorqueTurbinePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRole;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermission;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
+import org.apache.fulcrum.security.util.RoleSet;
+import org.apache.torque.TorqueException;
+import org.apache.torque.om.SimpleKey;
+import org.apache.torque.util.Criteria;
+/**
+ * This abstract class provides the SecurityInterface to the managers.
+ *
+ * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @version $Id:$
+ */
+public abstract class TorqueAbstractTurbinePermission extends TorqueAbstractSecurityEntity
+    implements TurbinePermission
+{
+    /** a cache of role objects */
+    private Set roleSet = null;
+    
+    /**
+     * Forward reference to generated code
+     * 
+     * Get a list of association objects, pre-populated with their TorqueTurbineRole 
+     * objects.
+     * 
+     * @param criteria Criteria to define the selection of records
+     * @throws TorqueException
+     * 
+     * @return a list of Role/Permission relations
+     */
+    protected abstract List getTorqueTurbineRolePermissionsJoinTorqueTurbineRole(Criteria criteria)
+        throws TorqueException;
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbinePermission#addRole(org.apache.fulcrum.security.entity.Role)
+     */
+    public void addRole(Role role)
+    {
+        getRoles().add(role);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbinePermission#getRoles()
+     */
+    public RoleSet getRoles()
+    {
+        if (roleSet == null)
+        {
+            roleSet = new RoleSet();
+        }
+        else if(!(roleSet instanceof RoleSet))
+        {
+            roleSet = new RoleSet(roleSet);
+        }
+
+        return (RoleSet)roleSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbinePermission#getRolesAsSet()
+     */
+    public Set getRolesAsSet()
+    {
+        return roleSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbinePermission#removeRole(org.apache.fulcrum.security.entity.Role)
+     */
+    public void removeRole(Role role)
+    {
+        getRoles().remove(role);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbinePermission#setRoles(org.apache.fulcrum.security.util.RoleSet)
+     */
+    public void setRoles(RoleSet roleSet)
+    {
+        if (roleSet != null)
+        {
+            this.roleSet = roleSet;
+        }
+        else
+        {
+            this.roleSet = new RoleSet();
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbinePermission#setRolesAsSet(java.util.Set)
+     */
+    public void setRolesAsSet(Set roles)
+    {
+        setRoles(new RoleSet(roles));
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#getDatabaseName()
+     */
+    public String getDatabaseName()
+    {
+        return TorqueTurbinePermissionPeer.DATABASE_NAME;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection)
+     */
+    public void retrieveAttachedObjects(Connection con) throws TorqueException
+    {
+        this.roleSet = new RoleSet();
+        
+        // the generated method that allows a Connection parameter is missing
+        List rolepermissions = getTorqueTurbineRolePermissionsJoinTorqueTurbineRole(new Criteria());
+
+        for (Iterator i = rolepermissions.iterator(); i.hasNext();)
+        {
+            TorqueTurbineRolePermission ttrp = (TorqueTurbineRolePermission)i.next(); 
+            roleSet.add(ttrp.getTorqueTurbineRole());
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#update(java.sql.Connection)
+     */
+    public void update(Connection con) throws TorqueException
+    {
+        if (roleSet != null)
+        {
+            Criteria criteria = new Criteria();
+            
+            /* remove old entries */
+            criteria.add(TorqueTurbineRolePermissionPeer.PERMISSION_ID, getEntityId());
+            TorqueTurbineRolePermissionPeer.doDelete(criteria, con);
+
+            for (Iterator i = roleSet.iterator(); i.hasNext();)
+            {
+                TorqueTurbineRole role = (TorqueTurbineRole)i.next();
+
+                TorqueTurbineRolePermission rp = new TorqueTurbineRolePermission();
+                rp.setRoleId(role.getEntityId());
+                rp.setPermissionId(getEntityId());
+                rp.save(con);
+            }
+        }
+        
+        try
+        {
+            save(con);
+        }
+        catch (Exception e)
+        {
+            throw new TorqueException(e);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#delete()
+     */
+    public void delete() throws TorqueException
+    {
+        TorqueTurbinePermissionPeer.doDelete(SimpleKey.keyFor(getEntityId()));
+    }
+}
\ No newline at end of file

Added: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java?view=auto&rev=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java (added)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineRole.java Thu Apr  5 10:28:53 2007
@@ -0,0 +1,290 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ *  Copyright 2001-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+import java.sql.Connection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.fulcrum.security.entity.Permission;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineRole;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.torque.om.TorqueTurbinePermission;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermission;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
+import org.apache.fulcrum.security.util.PermissionSet;
+import org.apache.torque.TorqueException;
+import org.apache.torque.om.SimpleKey;
+import org.apache.torque.util.Criteria;
+/**
+ * This abstract class provides the SecurityInterface to the managers.
+ *
+ * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @version $Id:$
+ */
+public abstract class TorqueAbstractTurbineRole extends TorqueAbstractSecurityEntity
+    implements TurbineRole
+{
+    /** a cache of permission objects */
+    private Set permissionSet = null;
+    
+    /** a cache of user_group_role objects */
+    private Set userGroupRoleSet = null;
+
+    /**
+     * Forward reference to generated code
+     * 
+     * Get a list of association objects, pre-populated with their TorqueTurbinePermission 
+     * objects.
+     * 
+     * @param criteria Criteria to define the selection of records
+     * @throws TorqueException
+     * 
+     * @return a list of Role/Permission relations
+     */
+    protected abstract List getTorqueTurbineRolePermissionsJoinTorqueTurbinePermission(Criteria criteria)
+        throws TorqueException;
+
+    /**
+     * Forward reference to generated code
+     * 
+     * Get a list of association objects, pre-populated with their TorqueTurbineGroup 
+     * objects.
+     * 
+     * @param criteria Criteria to define the selection of records
+     * @throws TorqueException
+     * 
+     * @return a list of User/Group/Role relations
+     */
+    protected abstract List getTorqueTurbineUserGroupRolesJoinTorqueTurbineGroup(Criteria criteria)
+        throws TorqueException;
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#addPermission(org.apache.fulcrum.security.entity.Permission)
+     */
+    public void addPermission(Permission permission)
+    {
+        getPermissions().add(permission);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#addUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
+     */
+    public void addUserGroupRole(TurbineUserGroupRole userGroupRole)
+    {
+        getUserGroupRoleSet().add(userGroupRole);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#getPermissions()
+     */
+    public PermissionSet getPermissions()
+    {
+        if (permissionSet == null)
+        {
+            permissionSet = new PermissionSet();
+        }
+        else if(!(permissionSet instanceof PermissionSet))
+        {
+            permissionSet = new PermissionSet(permissionSet);
+        }
+
+        return (PermissionSet)permissionSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#getPermissionsAsSet()
+     */
+    public Set getPermissionsAsSet()
+    {
+        return permissionSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#getUserGroupRoleSet()
+     */
+    public Set getUserGroupRoleSet()
+    {
+        if (userGroupRoleSet == null)
+        {
+            userGroupRoleSet = new HashSet();
+        }
+
+        return userGroupRoleSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#removePermission(org.apache.fulcrum.security.entity.Permission)
+     */
+    public void removePermission(Permission permission)
+    {
+        getPermissions().remove(permission);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#removeUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
+     */
+    public void removeUserGroupRole(TurbineUserGroupRole userGroupRole)
+    {
+        getUserGroupRoleSet().remove(userGroupRole);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#setPermissions(org.apache.fulcrum.security.util.PermissionSet)
+     */
+    public void setPermissions(PermissionSet permissionSet)
+    {
+        if (permissionSet != null)
+        {
+            this.permissionSet = permissionSet;
+        }
+        else
+        {
+            this.permissionSet = new PermissionSet();
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#setPermissionsAsSet(java.util.Set)
+     */
+    public void setPermissionsAsSet(Set permissions)
+    {
+        setPermissions(new PermissionSet(permissions));
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#setUserGroupRoleSet(java.util.Set)
+     */
+    public void setUserGroupRoleSet(Set userGroupRoleSet)
+    {
+        if (userGroupRoleSet != null)
+        {
+            this.userGroupRoleSet = userGroupRoleSet;
+        }
+        else
+        {
+            this.userGroupRoleSet = new HashSet();
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#getDatabaseName()
+     */
+    public String getDatabaseName()
+    {
+        return TorqueTurbineRolePeer.DATABASE_NAME;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection)
+     */
+    public void retrieveAttachedObjects(Connection con) throws TorqueException
+    {
+        this.permissionSet = new PermissionSet();
+        
+        // the generated method that allows a Connection parameter is missing
+        List rolepermissions = getTorqueTurbineRolePermissionsJoinTorqueTurbinePermission(new Criteria());
+
+        for (Iterator i = rolepermissions.iterator(); i.hasNext();)
+        {
+            TorqueTurbineRolePermission ttrp = (TorqueTurbineRolePermission)i.next();
+            permissionSet.add(ttrp.getTorqueTurbinePermission());
+        }
+
+        this.userGroupRoleSet = new HashSet();
+        
+        // the generated method that allows a Connection parameter is missing
+        List ugrs = getTorqueTurbineUserGroupRolesJoinTorqueTurbineGroup(new Criteria());
+
+        for (Iterator i = ugrs.iterator(); i.hasNext();)
+        {
+            TorqueTurbineUserGroupRole ttugr = (TorqueTurbineUserGroupRole)i.next();
+            
+            TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+            ugr.setRole(this);
+            ugr.setGroup(ttugr.getTorqueTurbineGroup());
+            ugr.setUser(ttugr.getTorqueTurbineUser(con));
+            userGroupRoleSet.add(ugr);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#update(java.sql.Connection)
+     */
+    public void update(Connection con) throws TorqueException
+    {
+        if (permissionSet != null)
+        {
+            Criteria criteria = new Criteria();
+            
+            /* remove old entries */
+            criteria.add(TorqueTurbineRolePermissionPeer.ROLE_ID, getEntityId());
+            TorqueTurbineRolePermissionPeer.doDelete(criteria, con);
+
+            for (Iterator i = permissionSet.iterator(); i.hasNext();)
+            {
+                TorqueTurbinePermission permission = (TorqueTurbinePermission)i.next();
+
+                TorqueTurbineRolePermission rp = new TorqueTurbineRolePermission();
+                rp.setPermissionId(permission.getEntityId());
+                rp.setRoleId(getEntityId());
+                rp.save(con);
+            }
+        }
+        
+        if (userGroupRoleSet != null)
+        {
+            Criteria criteria = new Criteria();
+            
+            /* remove old entries */
+            criteria.add(TorqueTurbineUserGroupRolePeer.ROLE_ID, getEntityId());
+            TorqueTurbineUserGroupRolePeer.doDelete(criteria, con);
+
+            for (Iterator i = userGroupRoleSet.iterator(); i.hasNext();)
+            {
+                TurbineUserGroupRole ugr = (TurbineUserGroupRole)i.next();
+                
+                TorqueTurbineUserGroupRole ttugr = new TorqueTurbineUserGroupRole();
+                ttugr.setGroupId((Integer)ugr.getGroup().getId());
+                ttugr.setUserId((Integer)ugr.getUser().getId());
+                ttugr.setRoleId((Integer)ugr.getRole().getId());
+                ttugr.save(con);
+            }
+        }
+        
+        try
+        {
+            save(con);
+        }
+        catch (Exception e)
+        {
+            throw new TorqueException(e);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#delete()
+     */
+    public void delete() throws TorqueException
+    {
+        TorqueTurbineRolePeer.doDelete(SimpleKey.keyFor(getEntityId()));
+    }
+}
\ No newline at end of file

Added: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java?view=auto&rev=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java (added)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueAbstractTurbineUser.java Thu Apr  5 10:28:53 2007
@@ -0,0 +1,174 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ *  Copyright 2001-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+import java.sql.Connection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer;
+import org.apache.torque.TorqueException;
+import org.apache.torque.om.SimpleKey;
+import org.apache.torque.util.Criteria;
+/**
+ * This abstract class provides the SecurityInterface to the managers.
+ *
+ * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @version $Id:$
+ */
+public abstract class TorqueAbstractTurbineUser extends TorqueAbstractSecurityEntity
+    implements TurbineUser
+{
+    /** a cache of user_group_role objects */
+    private Set userGroupRoleSet = null;
+
+    /**
+     * Forward reference to generated code
+     * 
+     * Get a list of association objects, pre-populated with their TorqueTurbineRole 
+     * objects.
+     * 
+     * @param criteria Criteria to define the selection of records
+     * @throws TorqueException
+     * 
+     * @return a list of User/Group/Role relations
+     */
+    protected abstract List getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(Criteria criteria)
+        throws TorqueException;
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineUser#addUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
+     */
+    public void addUserGroupRole(TurbineUserGroupRole userGroupRole)
+    {
+        getUserGroupRoleSet().add(userGroupRole);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineUser#getUserGroupRoleSet()
+     */
+    public Set getUserGroupRoleSet()
+    {
+        if (userGroupRoleSet == null)
+        {
+            userGroupRoleSet = new HashSet();
+        }
+
+        return userGroupRoleSet;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineUser#removeUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
+     */
+    public void removeUserGroupRole(TurbineUserGroupRole userGroupRole)
+    {
+        getUserGroupRoleSet().remove(userGroupRole);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineUser#setUserGroupRoleSet(java.util.Set)
+     */
+    public void setUserGroupRoleSet(Set userGroupRoleSet)
+    {
+        if (userGroupRoleSet != null)
+        {
+            this.userGroupRoleSet = userGroupRoleSet;
+        }
+        else
+        {
+            this.userGroupRoleSet = new HashSet();
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#getDatabaseName()
+     */
+    public String getDatabaseName()
+    {
+        return TorqueTurbineUserPeer.DATABASE_NAME;
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection)
+     */
+    public void retrieveAttachedObjects(Connection con) throws TorqueException
+    {
+        this.userGroupRoleSet = new HashSet();
+        
+        // the generated method that allows a Connection parameter is missing
+        List ugrs = getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(new Criteria());
+
+        for (Iterator i = ugrs.iterator(); i.hasNext();)
+        {
+            TorqueTurbineUserGroupRole ttugr = (TorqueTurbineUserGroupRole)i.next();
+            
+            TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+            ugr.setUser(this);
+            ugr.setRole(ttugr.getTorqueTurbineRole());
+            ugr.setGroup(ttugr.getTorqueTurbineGroup(con));
+            userGroupRoleSet.add(ugr);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#update(java.sql.Connection)
+     */
+    public void update(Connection con) throws TorqueException
+    {
+        if (userGroupRoleSet != null)
+        {
+            Criteria criteria = new Criteria();
+            
+            /* remove old entries */
+            criteria.add(TorqueTurbineUserGroupRolePeer.USER_ID, getEntityId());
+            TorqueTurbineUserGroupRolePeer.doDelete(criteria, con);
+
+            for (Iterator i = userGroupRoleSet.iterator(); i.hasNext();)
+            {
+                TurbineUserGroupRole ugr = (TurbineUserGroupRole)i.next();
+                
+                TorqueTurbineUserGroupRole ttugr = new TorqueTurbineUserGroupRole();
+                ttugr.setGroupId((Integer)ugr.getGroup().getId());
+                ttugr.setUserId((Integer)ugr.getUser().getId());
+                ttugr.setRoleId((Integer)ugr.getRole().getId());
+                ttugr.save(con);
+            }
+        }
+        
+        try
+        {
+            save(con);
+        }
+        catch (Exception e)
+        {
+            throw new TorqueException(e);
+        }
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractSecurityEntity#delete()
+     */
+    public void delete() throws TorqueException
+    {
+        TorqueTurbineUserPeer.doDelete(SimpleKey.keyFor(getEntityId()));
+    }
+}
\ No newline at end of file

Modified: jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java?view=diff&rev=525904&r1=525903&r2=525904
==============================================================================
--- jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java (original)
+++ jakarta/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java Thu Apr  5 10:28:53 2007
@@ -15,26 +15,13 @@
  *  limitations under the License.
  */
 import java.sql.Connection;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
-import org.apache.fulcrum.security.RoleManager;
-import org.apache.fulcrum.security.UserManager;
 import org.apache.fulcrum.security.entity.Group;
-import org.apache.fulcrum.security.entity.Role;
-import org.apache.fulcrum.security.entity.User;
-import org.apache.fulcrum.security.model.turbine.entity.TurbineGroup;
-import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
 import org.apache.fulcrum.security.torque.TorqueAbstractGroupManager;
-import org.apache.fulcrum.security.torque.om.TorqueRole;
-import org.apache.fulcrum.security.torque.om.TorqueRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueUser;
-import org.apache.fulcrum.security.torque.om.TorqueUserPeer;
-import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
+import org.apache.torque.NoRowsException;
+import org.apache.torque.TooManyRowsException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.Criteria;
 /**
@@ -46,46 +33,40 @@
 public class TorqueTurbineGroupManagerImpl extends TorqueAbstractGroupManager
 {
     /**
-     * Provides the user/group/role-relations for the given group
-     *  
-     * @param group the group for which the relations should be retrieved  
-     * @param con a database connection
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectAllGroups(java.sql.Connection)
      */
-    protected void attachObjectsForGroup(Group group, Connection con)
-        throws TorqueException, DataBackendException
+    protected List doSelectAllGroups(Connection con) throws TorqueException
     {
-        Set ugrSet = new HashSet();
-        
-        Criteria criteria = new Criteria();
-        criteria.add(TorqueTurbineUserGroupRolePeer.GROUP_ID, (Integer)group.getId());
-        
-        List ugrs = TorqueTurbineUserGroupRolePeer.doSelect(criteria, con);
-        UserManager userManager = getUserManager();
-        RoleManager roleManager = getRoleManager();
-        
-        for (Iterator i = ugrs.iterator(); i.hasNext();)
-        {
-            TurbineUserGroupRole ugr = new TurbineUserGroupRole();
-            ugr.setGroup(group);
-            
-            TorqueTurbineUserGroupRole tugr = (TorqueTurbineUserGroupRole)i.next();
+        Criteria criteria = new Criteria(TorqueTurbineGroupPeer.DATABASE_NAME);
+
+        return TorqueTurbineGroupPeer.doSelect(criteria, con);
+    }
+
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectById(java.lang.Integer, java.sql.Connection)
+     */
+    protected Group doSelectById(Integer id, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        return TorqueTurbineGroupPeer.retrieveByPK(id, con);
+    }
 
-            User user = userManager.getUserInstance();
-            TorqueUser u = TorqueUserPeer.retrieveByPK(tugr.getUserId(), con);
-            user.setId(u.getId());
-            user.setName(u.getName());
-            user.setPassword(u.getPassword());
-            ugr.setUser(user);
+    /**
+     * @see org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectByName(java.lang.String, java.sql.Connection)
+     */
+    protected Group doSelectByName(String name, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
+    {
+        Criteria criteria = new Criteria(TorqueTurbineGroupPeer.DATABASE_NAME);
+        criteria.add(TorqueTurbineGroupPeer.GROUP_NAME, name);
+        criteria.setIgnoreCase(true);
+        criteria.setSingleRecord(true);
+        
+        List groups = TorqueTurbineGroupPeer.doSelect(criteria, con);
 
-            Role role = roleManager.getRoleInstance();
-            TorqueRole r = TorqueRolePeer.retrieveByPK(tugr.getRoleId(), con);
-            role.setId(r.getId());
-            role.setName(r.getName());
-            ugr.setRole(role);
-            
-            ugrSet.add(ugr);
+        if (groups.isEmpty())
+        {
+            throw new NoRowsException(name);
         }
         
-        ((TurbineGroup)group).setUserGroupRoleSet(ugrSet);
+        return (Group)groups.get(0);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org