Modified: turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineUser.java URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineUser.java?rev=1851024&r1=1851023&r2=1851024&view=diff ============================================================================== --- turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineUser.java (original) +++ turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineUser.java Fri Jan 11 10:09:52 2019 @@ -29,6 +29,7 @@ import org.apache.fulcrum.security.torqu import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer; import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer; import org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntity; +import org.apache.fulcrum.security.util.DataBackendException; import org.apache.torque.TorqueException; import org.apache.torque.criteria.Criteria; import org.apache.torque.om.SimpleKey; @@ -69,7 +70,7 @@ public abstract class FulcrumAbstractTur */ @Override public void retrieveAttachedObjects( Connection con ) - throws TorqueException + throws DataBackendException { retrieveAttachedObjects( con, false ); } @@ -78,22 +79,26 @@ public abstract class FulcrumAbstractTur * @see org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection, java.lang.Boolean) */ @Override - public void retrieveAttachedObjects(Connection con, Boolean lazy) throws TorqueException + public void retrieveAttachedObjects(Connection con, Boolean lazy) throws DataBackendException { - if (!lazy) { - Set<TurbineUserGroupRole> userGroupRoleSet = new HashSet<TurbineUserGroupRole>(); - List<TorqueTurbineUserGroupRole> ugrs = getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(new Criteria(), con); - - for (TorqueTurbineUserGroupRole ttugr : ugrs) - { - TurbineUserGroupRole ugr = new TurbineUserGroupRole(); - ugr.setUser((User) this); - ugr.setRole(ttugr.getTorqueTurbineRole()); - ugr.setGroup(ttugr.getTorqueTurbineGroup(con)); - userGroupRoleSet.add(ugr); + try { + if (!lazy) { + Set<TurbineUserGroupRole> userGroupRoleSet = new HashSet<TurbineUserGroupRole>(); + List<TorqueTurbineUserGroupRole> ugrs = getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(new Criteria(), con); + + for (TorqueTurbineUserGroupRole ttugr : ugrs) + { + TurbineUserGroupRole ugr = new TurbineUserGroupRole(); + ugr.setUser((User) this); + ugr.setRole(ttugr.getTorqueTurbineRole()); + ugr.setGroup(ttugr.getTorqueTurbineGroup(con)); + userGroupRoleSet.add(ugr); + } + setUserGroupRoleSet(userGroupRoleSet); } - setUserGroupRoleSet(userGroupRoleSet); - } + } catch (TorqueException e ) { + throw new DataBackendException( e.getMessage(),e ); + } } /* (non-Javadoc)
Modified: turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java?rev=1851024&r1=1851023&r2=1851024&view=diff ============================================================================== --- turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java (original) +++ turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java Fri Jan 11 10:09:52 2019 @@ -178,7 +178,7 @@ public class TorqueTurbineUserManagerImp /** * Retrieve a user from persistent storage using username as the - * key. + * key. Also retrieves all attached objects (user group role relationships). * * @param userName the name of the user. * @return an User object. @@ -229,7 +229,7 @@ public class TorqueTurbineUserManagerImp } /** - * Retrieves all users defined in the system. + * Retrieves all users with attached related objects (user group role relationships) defined in the system. * * @return the names of all users defined in the system. * @throws DataBackendException if there was an error accessing the data @@ -274,7 +274,7 @@ public class TorqueTurbineUserManagerImp } /** - * Retrieve a User object with specified id. + * Retrieve a User object with specified id and all attached objects (user group role relationships). * * @param id * the id of the User. @@ -329,32 +329,45 @@ public class TorqueTurbineUserManagerImp return user; } - private <T extends User> void attachRelatedObjects( T user, Connection con ) - throws TorqueException + /** + * Retrieves all related objects (user group roles). If the objects not exists {@link DataBackendException} is wrapped in a new TorqueException. + * + * @param user + * @param con + * @throws TorqueException + */ + private <T extends User> void attachRelatedObjects( T user, Connection con ) throws TorqueException + { + if (user instanceof TorqueAbstractSecurityEntity) { + if (getCustomPeer()) { + try { - if (user instanceof TorqueAbstractSecurityEntity) { - if (getCustomPeer()) { - try - { - TorqueTurbineUserGroupRolePeer<TurbineUserGroupRoleModelPeerMapper> peerInstance = - (TorqueTurbineUserGroupRolePeer<TurbineUserGroupRoleModelPeerMapper>) getUserGroupRolePeerInstance(); - Criteria criteria = new Criteria(); - // expecting the same name in any custom implementation - criteria.where(peerInstance.getTableMap().getColumn(getColumnName4UserGroupRole() ), ( (TorqueAbstractSecurityEntity) user ).getEntityId() ); - List<TurbineUserGroupRoleModelPeerMapper> ugrs = peerInstance.doSelectJoinTurbineRole( criteria, con ); - - if (user instanceof TorqueAbstractTurbineTurbineSecurityEntityDefault) { - ((TorqueAbstractTurbineTurbineSecurityEntityDefault)user).retrieveAttachedObjects(con, false, ugrs); - } - } - catch ( DataBackendException e ) - { - throw new TorqueException( e ); - } - } else { - ((TorqueAbstractSecurityEntity)user).retrieveAttachedObjects(con); - } + TorqueTurbineUserGroupRolePeer<TurbineUserGroupRoleModelPeerMapper> peerInstance = + (TorqueTurbineUserGroupRolePeer<TurbineUserGroupRoleModelPeerMapper>) getUserGroupRolePeerInstance(); + Criteria criteria = new Criteria(); + // expecting the same name in any custom implementation + criteria.where(peerInstance.getTableMap().getColumn(getColumnName4UserGroupRole() ), ( (TorqueAbstractSecurityEntity) user ).getEntityId() ); + List<TurbineUserGroupRoleModelPeerMapper> ugrs = peerInstance.doSelectJoinTurbineRole( criteria, con ); + + if (user instanceof TorqueAbstractTurbineTurbineSecurityEntityDefault) { + ((TorqueAbstractTurbineTurbineSecurityEntityDefault)user).retrieveAttachedObjects(con, false, ugrs); } } + catch ( DataBackendException e ) + { + throw new TorqueException( e ); + } + } else { + try + { + ((TorqueAbstractSecurityEntity)user).retrieveAttachedObjects(con); + } + catch ( DataBackendException e ) + { + throw new TorqueException( e ); + } + } + } + } }
