Author: gk
Date: Fri Jan 12 14:31:04 2018
New Revision: 1820996
URL: http://svn.apache.org/viewvc?rev=1820996&view=rev
Log:
- Update to complete custom peer configuration, i.e. to allow ACL to get custom
OM (without overriding methods in OM classes):
- (1) user manager configuration requires additionally element userGroupRole
with peerClassName, cft. TurbineDefaultWithPeersComponentConfig.xml and
TurbineDefaultLazyWithPeersComponentConfig.xml
- (2) in schema configuration added interface
TurbineUserGroupRoleModelPeerMapper for table TurbineUserGroupRole, cft.
schema/fulcrum-turbine-default-schema.xml. As it requires up to now
javaName="TurbineUser", TurbineGroup and TurbineRole for table mapping its NOT
added to schema/fulcrum-turbine-schema.xml. May be resolved by using another
manager.
- (3) added interface TorqueTurbineUserGroupRolePeer to OM class
TurbineUserGroupRolePeerImpl^(still not generatable in torque 4.0)
- as a consequence TorqueTurbineUserManagerImpl overrides now three getXUserX
method to allow for this behaviour.
- added LazyLoadable interface
- tests added with user relationships
- license updates
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/LazyLoadable.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TurbineUserGroupRolePeerImpl.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbineUserGroupRolePeer.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TurbineUserGroupRoleModelPeerMapper.java
(with props)
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
(with props)
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java
(with props)
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java
(with props)
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java
(with props)
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineAccessControlListImpl.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractUserManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-default-schema.xml
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagable.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/managers/PeerUserManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultLazyWithPeersComponentConfig.xml
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultWithPeersComponentConfig.xml
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerLazyTest.java
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerTest.java
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
Fri Jan 12 14:31:04 2018
@@ -27,7 +27,7 @@ import org.apache.fulcrum.security.util.
import org.apache.fulcrum.security.util.UnknownEntityException;
/**
- * An GroupManager performs {@link org.apache.fulcrum.security.entity.Group}
+ * A GroupManager performs {@link org.apache.fulcrum.security.entity.Group}
* objects related tasks on behalf of the
* {@link org.apache.fulcrum.security.BaseSecurityService}.
*
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
Fri Jan 12 14:31:04 2018
@@ -27,13 +27,13 @@ import org.apache.fulcrum.security.util.
import org.apache.fulcrum.security.util.UnknownEntityException;
/**
- * An GroupManager performs {@link org.apache.fulcrum.security.entity.Group}
+ * A PermissionManager performs {@link
org.apache.fulcrum.security.entity.Permission}
* objects related tasks on behalf of the
* {@link org.apache.fulcrum.security.BaseSecurityService}.
*
- * The responsibilities of this class include loading data of an group from the
+ * The responsibilities of this class include loading data of an permission
from the
* storage and putting them into the
- * {@link org.apache.fulcrum.security.entity.Group} objects, saving those data
+ * {@link org.apache.fulcrum.security.entity.Permission} objects, saving those
data
* to the permanent storage.
*
* @author <a href="mailto:[email protected]">Eric Pugh</a>
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
Fri Jan 12 14:31:04 2018
@@ -27,13 +27,13 @@ import org.apache.fulcrum.security.util.
import org.apache.fulcrum.security.util.UnknownEntityException;
/**
- * An GroupManager performs {@link org.apache.fulcrum.security.entity.Group}
+ * A RoleManager performs {@link org.apache.fulcrum.security.entity.Role}
* objects related tasks on behalf of the
* {@link org.apache.fulcrum.security.BaseSecurityService}.
*
- * The responsibilities of this class include loading data of an group from the
+ * The responsibilities of this class include loading data of a role from the
* storage and putting them into the
- * {@link org.apache.fulcrum.security.entity.Group} objects, saving those data
+ * {@link org.apache.fulcrum.security.entity.Role} objects, saving those data
* to the permanent storage.
*
* @author <a href="mailto:[email protected]">Eric Pugh</a>
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
Fri Jan 12 14:31:04 2018
@@ -72,6 +72,6 @@ public interface SecurityService
*
* @return An ModelManager object
*/
- ModelManager getModelManager();
+ <T extends ModelManager> T getModelManager();
}
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
Fri Jan 12 14:31:04 2018
@@ -152,7 +152,7 @@ public interface UserManager extends Ser
* @throws DataBackendException
* if there was an error accessing the data backend.
*/
- UserSet getAllUsers() throws DataBackendException;
+ <T extends User> UserSet<T> getAllUsers() throws DataBackendException;
/**
* Saves User's data in the permanent storage. The user account is required
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineAccessControlListImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineAccessControlListImpl.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineAccessControlListImpl.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/TurbineAccessControlListImpl.java
Fri Jan 12 14:31:04 2018
@@ -141,7 +141,7 @@ public class TurbineAccessControlListImp
}
}
}
-
+ // this check might be not needed any more, required for custom group
if (groupManager != null)
{
this.globalGroup =
groupManager.getGroupByName(modelManager.getGlobalGroupName());
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
Fri Jan 12 14:31:04 2018
@@ -33,6 +33,7 @@ import org.apache.fulcrum.security.util.
*/
public interface TurbineUserGroupRoleEntity
{
+
/**
* Get the User/Group/Role set associated with this entity
*
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
Fri Jan 12 14:31:04 2018
@@ -36,6 +36,10 @@ import org.apache.fulcrum.security.model
*/
public abstract class AbstractTurbineSecurityEntityImpl extends
SecurityEntityImpl implements TurbineUserGroupRoleEntity
{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
private Set<? extends TurbineUserGroupRole> userGroupRoleSet = new
HashSet<TurbineUserGroupRole>();
/**
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractManager.java
Fri Jan 12 14:31:04 2018
@@ -25,7 +25,6 @@ import org.apache.avalon.framework.servi
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.fulcrum.security.GroupManager;
-import org.apache.fulcrum.security.ModelManager;
import org.apache.fulcrum.security.PermissionManager;
import org.apache.fulcrum.security.RoleManager;
import org.apache.fulcrum.security.UserManager;
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractUserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractUserManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractUserManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractUserManager.java
Fri Jan 12 14:31:04 2018
@@ -39,6 +39,11 @@ import org.apache.fulcrum.security.util.
*/
public abstract class AbstractUserManager extends AbstractEntityManager
implements UserManager
{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
protected abstract <T extends User> T persistNewUser(T user) throws
DataBackendException;
private ACLFactory aclFactory;
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
Fri Jan 12 14:31:04 2018
@@ -31,7 +31,7 @@ import org.apache.fulcrum.security.entit
* @author <a href="mailto:[email protected]">Eric Pugh</a>
* @version $Id$
*/
-public class UserSet extends SecuritySet<User>
+public class UserSet<T extends User> extends SecuritySet<User>
{
/**
* Serial number
Modified:
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
Fri Jan 12 14:31:04 2018
@@ -41,6 +41,7 @@ import org.apache.fulcrum.security.model
import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
import org.apache.fulcrum.security.util.PermissionSet;
+import org.apache.fulcrum.security.util.UserSet;
import org.apache.fulcrum.testcontainer.BaseUnit4Test;
import org.junit.Before;
import org.junit.Test;
@@ -174,18 +175,33 @@ public abstract class AbstractTurbineMod
Role role = securityService.getRoleManager().getRoleInstance();
role.setName("TEST_REVOKEALLUSER_ROLE");
role = securityService.getRoleManager().addRole(role);
-
- User user = userManager.getUserInstance("calvin");
- user = userManager.addUser(user, "calvin");
+ String username = "calvin";
+ User user = userManager.getUserInstance(username);
+ user = userManager.addUser(user, username);
modelManager.grant(user, group, role);
-
- group = groupManager.getGroupById(group.getId());
+ // original objects have relationship attached
Set<TurbineUserGroupRole> userGroupRoleSet =
((TurbineUser)user).getUserGroupRoleSet();
assertEquals(1, userGroupRoleSet.size());
-// Set<TurbineUserGroupRole> userGroupRoleSet = ((TurbineGroup)
group).getUserGroupRoleSet();
-// assertEquals(1, userGroupRoleSet.size());
+ Set<TurbineUserGroupRole> userGroupRoleSet1 = ((TurbineRole)
role).getUserGroupRoleSet();
+ assertEquals(1, userGroupRoleSet1.size());
Set<TurbineUserGroupRole> userGroupRoleSet2 = ((TurbineGroup)
group).getUserGroupRoleSet();
assertEquals(1, userGroupRoleSet2.size());
+ // retrieve objects again, which have as lazily loaded no usergroupset
yet
+ group = groupManager.getGroupById(group.getId());
+ user = userManager.getUser( username );
+ role = roleManager.getRoleById( role.getId() );
+
+ UserSet<User> userSet = userManager.getAllUsers();
+ User user2 = userManager.getUserById( user.getId() );
+ assertEquals( user, user2 );
+
+ // retrieve usergroupset now
+ userGroupRoleSet = ((TurbineUser)user).getUserGroupRoleSet();
+ assertEquals(1, userGroupRoleSet.size());
+ userGroupRoleSet1 = ((TurbineRole) role).getUserGroupRoleSet();
+ assertEquals(1, userGroupRoleSet1.size());
+ userGroupRoleSet2 = ((TurbineGroup) group).getUserGroupRoleSet();
+ assertEquals(1, userGroupRoleSet2.size());
modelManager.revokeAll(user);
group = groupManager.getGroupById(group.getId());
Modified:
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-default-schema.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-default-schema.xml?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-default-schema.xml
(original)
+++
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-default-schema.xml
Fri Jan 12 14:31:04 2018
@@ -99,7 +99,8 @@
</foreign-key>
</table>
- <table name="TURBINE_USER_GROUP_ROLE" javaName="TurbineUserGroupRole"
idMethod="none">
+ <table name="TURBINE_USER_GROUP_ROLE" javaName="TurbineUserGroupRole"
idMethod="none"
+
interface="org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper">
<column name="USER_ID" required="true" primaryKey="true" type="INTEGER"
javaType="object"/>
<column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER"
javaType="object"/>
<column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"
javaType="object"/>
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/LazyLoadable.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/LazyLoadable.java?rev=1820996&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/LazyLoadable.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/LazyLoadable.java
Fri Jan 12 14:31:04 2018
@@ -0,0 +1,10 @@
+package org.apache.fulcrum.security.torque;
+
+public interface LazyLoadable
+{
+
+ Boolean getLazyLoading();
+
+ void setLazyLoading( Boolean lazyLoading );
+
+}
\ No newline at end of file
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/LazyLoadable.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
Fri Jan 12 14:31:04 2018
@@ -40,7 +40,7 @@ import org.apache.torque.util.Transactio
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public abstract class TorqueAbstractGroupManager extends AbstractGroupManager
+public abstract class TorqueAbstractGroupManager extends AbstractGroupManager
implements LazyLoadable
{
/** Serial version */
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
Fri Jan 12 14:31:04 2018
@@ -22,7 +22,6 @@ import java.util.List;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.logger.Loggable;
import org.apache.fulcrum.security.entity.Role;
import org.apache.fulcrum.security.spi.AbstractRoleManager;
import
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
@@ -40,7 +39,7 @@ import org.apache.torque.util.Transactio
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public abstract class TorqueAbstractRoleManager extends AbstractRoleManager
+public abstract class TorqueAbstractRoleManager extends AbstractRoleManager
implements LazyLoadable
{
/** Serial version */
@@ -390,12 +389,20 @@ public abstract class TorqueAbstractRole
}
+ /* (non-Javadoc)
+ * @see org.apache.fulcrum.security.torque.LazyLoadable#getLazyLoading()
+ */
+ @Override
public Boolean getLazyLoading()
{
return lazyLoading;
}
+ /* (non-Javadoc)
+ * @see
org.apache.fulcrum.security.torque.LazyLoadable#setLazyLoading(java.lang.Boolean)
+ */
+ @Override
public void setLazyLoading( Boolean lazyLoading )
{
this.lazyLoading = lazyLoading;
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
Fri Jan 12 14:31:04 2018
@@ -284,7 +284,7 @@ public abstract class TorqueAbstractUser
* backend.
*/
@Override
- public UserSet getAllUsers() throws DataBackendException
+ public <T extends User> UserSet<T> getAllUsers() throws
DataBackendException
{
UserSet userSet = new UserSet();
Connection con = null;
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TurbineUserGroupRolePeerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TurbineUserGroupRolePeerImpl.java?rev=1820996&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TurbineUserGroupRolePeerImpl.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TurbineUserGroupRolePeerImpl.java
Fri Jan 12 14:31:04 2018
@@ -0,0 +1,23 @@
+package org.apache.fulcrum.security.torque.om;
+
+import org.apache.fulcrum.security.torque.peer.TorqueTurbineUserGroupRolePeer;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Mon Nov 27 14:37:43 CET 2017]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements. This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public class TurbineUserGroupRolePeerImpl
+ extends
org.apache.fulcrum.security.torque.om.BaseTurbineUserGroupRolePeerImpl
+ implements TorqueTurbineUserGroupRolePeer
+{
+ /** Serial version */
+ private static final long serialVersionUID = 1511789863339L;
+
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TurbineUserGroupRolePeerImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/Peer.java
Fri Jan 12 14:31:04 2018
@@ -1,5 +1,22 @@
package org.apache.fulcrum.security.torque.peer;
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
/**
* This is a marker interface for {@link PeerManager#getPeerInstance(String)}.
* It allows to swap database operations action classes (called Peers in
Torque model).
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagable.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagable.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagable.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagable.java
Fri Jan 12 14:31:04 2018
@@ -1,5 +1,22 @@
package org.apache.fulcrum.security.torque.peer;
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.fulcrum.security.util.DataBackendException;
public interface PeerManagable
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
Fri Jan 12 14:31:04 2018
@@ -1,5 +1,22 @@
package org.apache.fulcrum.security.torque.peer;
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.io.Serializable;
import org.apache.fulcrum.security.spi.AbstractEntityManager;
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
Fri Jan 12 14:31:04 2018
@@ -1,5 +1,22 @@
package org.apache.fulcrum.security.torque.peer;
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.util.Map;
import java.util.concurrent.ConcurrentHashMap;
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbinePeer.java
Fri Jan 12 14:31:04 2018
@@ -1,5 +1,22 @@
package org.apache.fulcrum.security.torque.peer;
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.List;
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbineUserGroupRolePeer.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbineUserGroupRolePeer.java?rev=1820996&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbineUserGroupRolePeer.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbineUserGroupRolePeer.java
Fri Jan 12 14:31:04 2018
@@ -0,0 +1,44 @@
+package org.apache.fulcrum.security.torque.peer;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.List;
+
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.map.TableMap;
+
+/**
+ * This extension to the marker interface {@linkplain Peer} is to allow for
swappable Peer implementations
+ * in Turbine Torque Manager Implementations.
+ *
+ * @param <T> The data object type used by the Torque PeerImpl class.
+ *
+ * @author <a href="mailto:[email protected]">Georg Kallidis</a>
+ * @version $Id$
+ */
+public interface TorqueTurbineUserGroupRolePeer<T extends
TurbineUserGroupRoleModelPeerMapper>
+ extends Peer
+{
+
+ List<T> doSelectJoinTurbineRole( Criteria criteria, Connection con )
throws TorqueException;
+
+ TableMap getTableMap() throws TorqueException;
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TorqueTurbineUserGroupRolePeer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TurbineUserGroupRoleModelPeerMapper.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TurbineUserGroupRoleModelPeerMapper.java?rev=1820996&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TurbineUserGroupRoleModelPeerMapper.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TurbineUserGroupRoleModelPeerMapper.java
Fri Jan 12 14:31:04 2018
@@ -0,0 +1,108 @@
+package org.apache.fulcrum.security.torque.peer;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.entity.User;
+import org.apache.torque.TorqueException;
+
+/**
+ * This interface allows to retrieve user, group, role relationships either
from custom or the default OM in @link org.apache.fulcrum.security.torque.om.
+ *
+ * @author gkallidis
+ *
+ */
+public interface TurbineUserGroupRoleModelPeerMapper
+{
+
+ /**
+ * Returns the associated TurbineUser object.
+ * If it was not retrieved before, the object is retrieved from
+ * the database
+ *
+ * @return the associated TurbineUser object
+ * @throws TorqueException when reading from the database fails.
+ */
+ User getTurbineUser()
+ throws TorqueException;
+
+ /**
+ * Return the associated TurbineUser object
+ * If it was not retrieved before, the object is retrieved from
+ * the database using the passed connection
+ *
+ * @param connection the connection used to retrieve the associated object
+ * from the database, if it was not retrieved before
+ * @return the associated TurbineUser object
+ * @throws TorqueException
+ */
+ User getTurbineUser( Connection connection )
+ throws TorqueException;
+
+ /**
+ * Returns the associated TurbineGroup object.
+ * If it was not retrieved before, the object is retrieved from
+ * the database
+ *
+ * @return the associated TurbineGroup object
+ * @throws TorqueException when reading from the database fails.
+ */
+ Group getTurbineGroup()
+ throws TorqueException;
+
+ /**
+ * Return the associated TurbineGroup object
+ * If it was not retrieved before, the object is retrieved from
+ * the database using the passed connection
+ *
+ * @param connection the connection used to retrieve the associated object
+ * from the database, if it was not retrieved before
+ * @return the associated TurbineGroup object
+ * @throws TorqueException
+ */
+ Group getTurbineGroup( Connection connection )
+ throws TorqueException;
+
+ /**
+ * Returns the associated TurbineRole object.
+ * If it was not retrieved before, the object is retrieved from
+ * the database
+ *
+ * @return the associated TurbineRole object
+ * @throws TorqueException when reading from the database fails.
+ */
+ Role getTurbineRole()
+ throws TorqueException;
+
+ /**
+ * Return the associated TurbineRole object
+ * If it was not retrieved before, the object is retrieved from
+ * the database using the passed connection
+ *
+ * @param connection the connection used to retrieve the associated object
+ * from the database, if it was not retrieved before
+ * @return the associated TurbineRole object
+ * @throws TorqueException
+ */
+ Role getTurbineRole( Connection connection )
+ throws TorqueException;
+
+}
\ No newline at end of file
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/TurbineUserGroupRoleModelPeerMapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/managers/PeerUserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/managers/PeerUserManager.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/managers/PeerUserManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/managers/PeerUserManager.java
Fri Jan 12 14:31:04 2018
@@ -24,6 +24,7 @@ import org.apache.fulcrum.security.torqu
import org.apache.fulcrum.security.torque.peer.PeerManagable;
import org.apache.fulcrum.security.torque.peer.PeerManager;
import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
+import org.apache.fulcrum.security.torque.peer.TorqueTurbineUserGroupRolePeer;
import org.apache.fulcrum.security.util.DataBackendException;
/**
* This implementation persists to a database via Torque.
@@ -34,6 +35,11 @@ import org.apache.fulcrum.security.util.
public abstract class PeerUserManager extends TorqueAbstractUserManager
implements PeerManagable
{
/**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
* if set, the generic implementation is used (by setting @link {@link
#PEER_CLASS_NAME_KEY} in configuration file.
*/
private Boolean customPeer = false; // used for torque which uses per
object peer classes
@@ -43,6 +49,10 @@ public abstract class PeerUserManager ex
transient PeerManager peerManager;
private String columnName = "LOGIN_NAME";
+
+ private String columnName4UserGroupRole = "USER_ID";
+
+ private String userGroupRolePeerClassName;
/**
* Avalon Service lifecycle method
@@ -58,6 +68,24 @@ public abstract class PeerUserManager ex
setPeerClassName( peerClassName );
setCustomPeer(true);
}
+
+ Configuration[] userGroupRoleConf = conf.getChild(
"userGroupRoleManager").getChildren();
+ for ( int i = 0; i < userGroupRoleConf.length; i++ )
+ {
+ Configuration configuration = userGroupRoleConf[i];
+ if ( configuration.getName().equals(PEER_CLASS_NAME_KEY) ) {
+ userGroupRolePeerClassName = configuration.getValue( null );
+ if (userGroupRolePeerClassName != null) {
+ setUserGroupRolePeerClassName( userGroupRolePeerClassName
);
+ setCustomPeer(true);
+ }
+ }
+ }
+ if (peerClassName != null && userGroupRolePeerClassName == null) {
+ //peerClassName.replace( "TurbineUserPeerImpl",
"TurbineUserPeerImpl )
+ throw new ConfigurationException("If using peers in component
configuration (xml) the element userManager expects to have a
userGroupRoleManager child element with peerClassName child element.");
+ }
+
}
@@ -66,6 +94,10 @@ public abstract class PeerUserManager ex
return getPeerManager().getPeerInstance(getPeerClassName(),
TorqueTurbinePeer.class, getClassName());
}
+ public Peer getUserGroupRolePeerInstance() throws DataBackendException {
+ return
getPeerManager().getPeerInstance(getUserGroupRolePeerClassName(),
TorqueTurbineUserGroupRolePeer.class, getClassName());
+ }
+
/**
* @return Returns the persistenceHelper.
*/
@@ -114,6 +146,30 @@ public abstract class PeerUserManager ex
{
this.peerClassName = peerClassName;
}
+
+
+ public String getUserGroupRolePeerClassName()
+ {
+ return userGroupRolePeerClassName;
+ }
+
+
+ public void setUserGroupRolePeerClassName( String
userGroupRolePeerClassName )
+ {
+ this.userGroupRolePeerClassName = userGroupRolePeerClassName;
+ }
+
+
+ public String getColumnName4UserGroupRole()
+ {
+ return columnName4UserGroupRole;
+ }
+
+
+ public void setColumnName4UserGroupRole( String columnName4UserGroupRole )
+ {
+ this.columnName4UserGroupRole = columnName4UserGroupRole;
+ }
}
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
Fri Jan 12 14:31:04 2018
@@ -62,15 +62,16 @@ public abstract class TorqueAbstractSecu
* @param name the name of the entity
*/
public abstract void setEntityName(String name);
-
+
/**
* Retrieve attached objects such as users, permissions, ...
- *
+ *
* @param con A database connection
- * @param lazy if <code>true</code>, may load some or all relationships
later
+ * * @param lazy if <code>true</code>, may load some or all relationships
later
*/
public abstract void retrieveAttachedObjects(Connection con, Boolean lazy)
throws TorqueException;
+
/**
* old contract, lazy is set to <code>false</code>.
*
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
Fri Jan 12 14:31:04 2018
@@ -40,7 +40,7 @@ public abstract class TorqueAbstractTurb
/** a cache of user_group_role objects */
private Set<? extends TurbineUserGroupRole> userGroupRoleSet = null;
-
+
/**
* @throws DataBackendException
* @see
org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#addUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
@@ -49,20 +49,36 @@ public abstract class TorqueAbstractTurb
{
getUserGroupRoleSet().add(userGroupRole);
}
-
- /**
- * @throws DataBackendException if loaded lazily
- * @see
org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#getUserGroupRoleSet()
- */
+
+ public void addUserGroupRole( TurbineUserGroupRole user_group_role,
boolean isLazilyLoaded ) throws DataBackendException {
+ if (isLazilyLoaded)
+ {
+ getDefaultUserGroupRoleSet().add( user_group_role );
+ }
+ else
+ {
+ getUserGroupRoleSet().add( user_group_role );
+ }
+ }
+
@SuppressWarnings("unchecked")
- public <T extends TurbineUserGroupRole> Set<T> getUserGroupRoleSet()
throws DataBackendException
+ private <T extends TurbineUserGroupRole> Set<T>
getDefaultUserGroupRoleSet() throws DataBackendException
{
if (userGroupRoleSet == null)
{
userGroupRoleSet = new HashSet<TurbineUserGroupRole>();
}
- return (Set<T>)userGroupRoleSet;
+ return (Set<T>) userGroupRoleSet;
+ }
+
+ /**
+ * @throws DataBackendException if loaded lazily
+ * @see
org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#getUserGroupRoleSet()
+ */
+ public <T extends TurbineUserGroupRole> Set<T> getUserGroupRoleSet()
throws DataBackendException
+ {
+ return getDefaultUserGroupRoleSet();
}
/**
@@ -73,6 +89,17 @@ public abstract class TorqueAbstractTurb
{
getUserGroupRoleSet().remove(userGroupRole);
}
+
+ public void removeUserGroupRole( TurbineUserGroupRole user_group_role,
boolean isLazilyLoaded ) throws DataBackendException {
+ if (isLazilyLoaded)
+ {
+ getDefaultUserGroupRoleSet().remove( user_group_role );
+ }
+ else
+ {
+ getUserGroupRoleSet().remove( user_group_role );
+ }
+ }
/**
* @see
org.apache.fulcrum.security.model.turbine.entity.TurbineGroup#setUserGroupRoleSet(java.util.Set)
@@ -88,12 +115,5 @@ public abstract class TorqueAbstractTurb
this.userGroupRoleSet = new HashSet<TurbineUserGroupRole>();
}
}
-
-// /**
-// * Retrieve attached objects
-// *
-// * @param con A database connection
-// * @param lazy if <code>true</code>, does not retrieve user group role
relationships
-// */
-// public abstract void retrieveAttachedObjects(Connection con, boolean
lazy) throws TorqueException;
+
}
Added:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java?rev=1820996&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
(added)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
Fri Jan 12 14:31:04 2018
@@ -0,0 +1,53 @@
+package org.apache.fulcrum.security.torque.security.turbine;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.List;
+
+import org.apache.fulcrum.security.model.ACLFactory;
+import
org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRoleEntity;
+import
org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper;
+import org.apache.torque.TorqueException;
+
+/**
+ * This abstract class extends the user manager to allow for custom OM
attached objects (user group role relationships) for ACL.
+ *
+ * Additional Torque Custom Peer contract
+ *
+ * @author <a href="mailto:[email protected]">Georg Kallidis</a>
+ * @version $Id:$
+ */
+public abstract class TorqueAbstractTurbineTurbineSecurityEntityDefault
extends TorqueAbstractTurbineTurbineSecurityEntity
+ implements TurbineUserGroupRoleEntity // not in group and role but already
in TurbineUser interface
+{
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Retrieve attached objects for user: user-group-role relationship(s)
+ *
+ * This method is required if custom peers is activated for (user)
manager, to allow the custom group/role in {@link
ACLFactory#getAccessControlList(org.apache.fulcrum.security.entity.User)}
+ *
+ * @param con A database connection
+ * @param lazy if <code>true</code>, fetches objects lazily
+ * @param ugrs The custom TurbineUserGroupRole set
+ */
+ public abstract <T extends TurbineUserGroupRoleModelPeerMapper> void
retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws
TorqueException;
+
+}
Propchange:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
Fri Jan 12 14:31:04 2018
@@ -27,10 +27,13 @@ import org.apache.fulcrum.security.model
import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
import org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeer;
import org.apache.fulcrum.security.torque.om.TurbineUserPeer;
+import
org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper;
import
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntity;
+import
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntityDefault;
import org.apache.torque.TorqueException;
import org.apache.torque.criteria.Criteria;
import org.apache.torque.om.SimpleKey;
+
/**
* This abstract class provides the SecurityInterface to the managers.
*
@@ -39,16 +42,21 @@ import org.apache.torque.om.SimpleKey;
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public abstract class DefaultAbstractTurbineUser extends
TorqueAbstractTurbineTurbineSecurityEntity
+public abstract class DefaultAbstractTurbineUser extends
TorqueAbstractTurbineTurbineSecurityEntityDefault
{
/** Serial version */
private static final long serialVersionUID = -7255623655281852566L;
/**
- * Forward reference to generated code
+ * Forward reference to module generated code
*
* Get a list of association objects, pre-populated with their TurbineRole
* objects.
+ *
+ * Does intentionally not initialize the cache collTurbineUserGroupRoles
for referenced objects.
+ *
+ * Be careful not call any of the generated getTurbineUserGroupRoles
methods in derived classes,
+ * the link {@link #save()} method otherwise might not update the right
relationships.
*
* @param criteria Criteria to define the selection of records
* @param con a database connection
@@ -56,37 +64,46 @@ public abstract class DefaultAbstractTur
*
* @return a list of User/Group/Role relations
*/
- protected List<org.apache.fulcrum.security.torque.om.TurbineUserGroupRole>
getTurbineUserGroupRolesJoinTurbineRole(Criteria criteria, Connection con)
+ protected <T extends TurbineUserGroupRoleModelPeerMapper> List<T>
getTurbineUserGroupRolesJoinTurbineRole(Criteria criteria, Connection con)
throws TorqueException
{
criteria.and(TurbineUserGroupRolePeer.USER_ID, getEntityId() );
- return TurbineUserGroupRolePeer.doSelectJoinTurbineRole(criteria, con);
+ return (List<T>)
TurbineUserGroupRolePeer.doSelectJoinTurbineRole(criteria, con);
}
-
+ /**
+ *
+ * @see
TorqueAbstractTurbineTurbineSecurityEntity#retrieveAttachedObjects(Connection,
Boolean, List)
+ */
+ @Override
+ public <T extends TurbineUserGroupRoleModelPeerMapper> void
retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws
TorqueException
+ {
+ if (!lazy ) { // !lazy
+ Set<TurbineUserGroupRole> userGroupRoleSet = new
HashSet<TurbineUserGroupRole>();
+
+ if (ugrs == null) { // default
+ ugrs = getTurbineUserGroupRolesJoinTurbineRole(new Criteria(),
con);
+ }
+
+ maptoModel( con, userGroupRoleSet,
(List<TurbineUserGroupRoleModelPeerMapper>) ugrs );
+
+ setUserGroupRoleSet(userGroupRoleSet);
+ }
+ }
/**
- * @see
TorqueAbstractTurbineTurbineSecurityEntity#retrieveAttachedObjects(Connection,
Boolean)
+ * @see
TorqueAbstractTurbineTurbineSecurityEntity#retrieveAttachedObjects(Connection,
boolean)
*/
@Override
public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws
TorqueException
{
if (!lazy) {
Set<TurbineUserGroupRole> userGroupRoleSet = new
HashSet<TurbineUserGroupRole>();
+
+ List<TurbineUserGroupRoleModelPeerMapper> ugrs =
getTurbineUserGroupRolesJoinTurbineRole(new Criteria(), con);
- List<org.apache.fulcrum.security.torque.om.TurbineUserGroupRole>
ugrs = getTurbineUserGroupRolesJoinTurbineRole(new Criteria(), con);
-
- for (org.apache.fulcrum.security.torque.om.TurbineUserGroupRole
ttugr : ugrs)
- {
- TurbineUserGroupRole ugr = new TurbineUserGroupRole();
- ugr.setUser((User) this);
- ugr.setRole(ttugr.getTurbineRole());
- // org.apache.fulcrum.security.torque.om.TurbineGroup
implements
- //
org.apache.fulcrum.security.model.turbine.entity.TurbineGroup
- // but may be hides it?
- ugr.setGroup(ttugr.getTurbineGroup(con));
- userGroupRoleSet.add(ugr);
- }
+ // org.apache.fulcrum.security.torque.om.TurbineUserGroupRole
+ maptoModel( con, userGroupRoleSet, ugrs );
setUserGroupRoleSet(userGroupRoleSet);
}
@@ -96,7 +113,7 @@ public abstract class DefaultAbstractTur
public void retrieveAttachedObjects( Connection con )
throws TorqueException
{
- retrieveAttachedObjects( con, false );
+ retrieveAttachedObjects( con, false ); //false
}
/**
@@ -141,4 +158,21 @@ public abstract class DefaultAbstractTur
{
TurbineUserPeer.doDelete(SimpleKey.keyFor(getEntityId()));
}
+
+ private void maptoModel( Connection con, Set<TurbineUserGroupRole>
userGroupRoleSet,
+ List<TurbineUserGroupRoleModelPeerMapper> ugrs )
+ throws TorqueException
+ {
+ for (TurbineUserGroupRoleModelPeerMapper ttugr : ugrs)
+ {
+ TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+ ugr.setUser((User) this);
+ ugr.setRole(ttugr.getTurbineRole(con));
+ // org.apache.fulcrum.security.torque.om.TurbineGroup implements
+ // org.apache.fulcrum.security.model.turbine.entity.TurbineGroup
+ // but may be hides it?
+ ugr.setGroup(ttugr.getTurbineGroup(con));
+ userGroupRoleSet.add(ugr);
+ }
+ }
}
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
Fri Jan 12 14:31:04 2018
@@ -30,9 +30,11 @@ import org.apache.fulcrum.security.model
import org.apache.fulcrum.security.model.turbine.entity.TurbineRole;
import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.LazyLoadable;
import org.apache.fulcrum.security.torque.om.TurbineRolePermissionPeer;
import org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeer;
import
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntity;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.UnknownEntityException;
import org.apache.torque.TorqueException;
@@ -177,10 +179,20 @@ public class TorqueTurbineModelManagerIm
user_group_role.setRole(role);
((TurbineUser) user).addUserGroupRole(user_group_role);
if (group instanceof TurbineGroup ) {
- ((TurbineGroup) group).addUserGroupRole(user_group_role);
+ if (getGroupManager() instanceof LazyLoadable) {
+ ((TorqueAbstractTurbineTurbineSecurityEntity)
group).addUserGroupRole(user_group_role,
+
((LazyLoadable)getGroupManager()).getLazyLoading());
+ } else {
+ ((TurbineGroup) group).addUserGroupRole(user_group_role);
+ }
}
if (role instanceof TurbineRole ) {
- ((TurbineRole) role).addUserGroupRole(user_group_role);
+ if (getRoleManager() instanceof LazyLoadable) {
+ ((TorqueAbstractTurbineTurbineSecurityEntity)
role).addUserGroupRole(user_group_role,
+
((LazyLoadable)getRoleManager()).getLazyLoading());
+ } else {
+ ((TurbineRole) role).addUserGroupRole(user_group_role);
+ }
}
Connection con = null;
@@ -188,7 +200,10 @@ public class TorqueTurbineModelManagerIm
try
{
con = Transaction.begin();
-
+ // save only the new user group may be the better contract,
but this would
+ // require/add a dependency to initTurbineUserGroupRoles()
+ //((TorqueAbstractSecurityEntity)user).save( con );
+
((TorqueAbstractSecurityEntity)user).update(con);
//((TorqueAbstractSecurityEntity)group).update(con);
//((TorqueAbstractSecurityEntity)role).update(con);
@@ -203,6 +218,13 @@ public class TorqueTurbineModelManagerIm
+ group.getName() + "', '"
+ role.getName() + "') failed", e);
}
+ catch ( Exception e )
+ {
+ throw new DataBackendException("grant('"
+ + user.getName() + "', '"
+ + group.getName() + "', '"
+ + role.getName() + "') failed", e);
+ }
finally
{
if (con != null)
@@ -251,10 +273,20 @@ public class TorqueTurbineModelManagerIm
ugrFound = true;
((TurbineUser)user).removeUserGroupRole(user_group_role);
if (group instanceof TurbineGroup ) {
-
((TurbineGroup)group).removeUserGroupRole(user_group_role);
+ if (getGroupManager() instanceof LazyLoadable) {
+ ((TorqueAbstractTurbineTurbineSecurityEntity)
group).removeUserGroupRole(user_group_role,
+
((LazyLoadable)getGroupManager()).getLazyLoading());
+ } else {
+ ((TurbineGroup)
group).removeUserGroupRole(user_group_role);
+ }
}
if (role instanceof TurbineRole ) {
-
((TurbineRole)role).removeUserGroupRole(user_group_role);
+ if (getRoleManager() instanceof LazyLoadable) {
+ ((TorqueAbstractTurbineTurbineSecurityEntity)
role).removeUserGroupRole(user_group_role,
+
((LazyLoadable)getGroupManager()).getLazyLoading());
+ } else {
+ ((TurbineRole)
role).removeUserGroupRole(user_group_role);
+ }
}
break;
}
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=1820996&r1=1820995&r2=1820996&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 12 14:31:04 2018
@@ -24,13 +24,19 @@ import org.apache.fulcrum.security.entit
import org.apache.fulcrum.security.model.turbine.TurbineUserManager;
import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer;
import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
+import org.apache.fulcrum.security.torque.peer.TorqueTurbineUserGroupRolePeer;
+import
org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper;
import org.apache.fulcrum.security.torque.peer.managers.PeerUserManager;
+import
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntityDefault;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.fulcrum.security.util.UserSet;
import org.apache.torque.NoRowsException;
import org.apache.torque.TooManyRowsException;
import org.apache.torque.TorqueException;
import org.apache.torque.criteria.Criteria;
+import org.apache.torque.util.Transaction;
/**
* This implementation persists to a database via Torque.
*
@@ -169,5 +175,186 @@ public class TorqueTurbineUserManagerImp
return users.get(0);
}
+
+ /**
+ * Retrieve a user from persistent storage using username as the
+ * key.
+ *
+ * @param userName the name of the user.
+ * @return an User object.
+ * @exception UnknownEntityException if the user's account does not
+ * exist in the database.
+ * @exception DataBackendException if there is a problem accessing the
+ * storage.
+ */
+ @Override
+ public <T extends User> T getUser(String userName) throws
UnknownEntityException, DataBackendException
+ {
+ T user = null;
+ Connection con = null;
+
+ try
+ {
+ con = Transaction.begin();
+
+ user = doSelectByName(userName.toLowerCase(), con);
+
+ // Add attached objects if they exist
+ attachRelatedObjects( user, con );
+
+ Transaction.commit(con);
+ con = null;
+ }
+ catch (NoRowsException e)
+ {
+ throw new UnknownEntityException("Unknown user '" + userName +
"'");
+ }
+ catch (TooManyRowsException e)
+ {
+ throw new DataBackendException("Multiple Users with same username
'" + userName + "'");
+ }
+ catch (TorqueException e)
+ {
+ throw new DataBackendException("Error retrieving user
information", e);
+ }
+ finally
+ {
+ if (con != null)
+ {
+ Transaction.safeRollback(con);
+ }
+ }
+
+ return user;
+ }
+
+ /**
+ * Retrieves all users defined in the system.
+ *
+ * @return the names of all users defined in the system.
+ * @throws DataBackendException if there was an error accessing the data
+ * backend.
+ */
+ @Override
+ public <T extends User> UserSet<T> getAllUsers() throws DataBackendException
+ {
+ UserSet<T> userSet = new UserSet<T>();
+ Connection con = null;
+
+ try
+ {
+ con = Transaction.begin();
+
+ List<User> users = doSelectAllUsers(con);
+
+ for (User user : users)
+ {
+ // Add attached objects if they exist
+ attachRelatedObjects( user, con );
+
+ userSet.add(user);
+ }
+
+ Transaction.commit(con);
+ con = null;
+ }
+ catch (TorqueException e)
+ {
+ throw new DataBackendException("Error retrieving all users", e);
+ }
+ finally
+ {
+ if (con != null)
+ {
+ Transaction.safeRollback(con);
+ }
+ }
+
+ return userSet;
+ }
+
+ /**
+ * Retrieve a User object with specified id.
+ *
+ * @param id
+ * the id of the User.
+ * @return an object representing the User with specified id.
+ * @throws DataBackendException
+ * if there was an error accessing the data backend.
+ * @throws UnknownEntityException
+ * if the user does not exist.
+ */
+ @Override
+ public <T extends User> T getUserById(Object id) throws
DataBackendException, UnknownEntityException
+ {
+ T user;
+
+ if (id != null && id instanceof Integer)
+ {
+ Connection con = null;
+
+ try
+ {
+ con = Transaction.begin();
+
+ user = doSelectById((Integer)id, con);
+
+ // Add attached objects if they exist
+ attachRelatedObjects( user, con );
+
+ Transaction.commit(con);
+ con = null;
+ }
+ catch (NoRowsException e)
+ {
+ throw new UnknownEntityException("User with id '" + id + "' does
not exist.", e);
+ }
+ catch (TorqueException e)
+ {
+ throw new DataBackendException("Error retrieving user
information", e);
+ }
+ finally
+ {
+ if (con != null)
+ {
+ Transaction.safeRollback(con);
+ }
+ }
+ }
+ else
+ {
+ throw new UnknownEntityException("Invalid user id '" + id + "'");
+ }
+
+ return user;
+ }
+
+ private <T extends User> void attachRelatedObjects( T user, Connection con )
+ throws TorqueException
+ {
+ 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);
+ }
+ }
+ }
}
Modified:
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultLazyWithPeersComponentConfig.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultLazyWithPeersComponentConfig.xml?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultLazyWithPeersComponentConfig.xml
(original)
+++
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultLazyWithPeersComponentConfig.xml
Fri Jan 12 14:31:04 2018
@@ -27,6 +27,11 @@
<userManager>
<className>org.apache.fulcrum.security.torque.om.TurbineUser</className>
<peerClassName>org.apache.fulcrum.security.torque.om.TurbineUserPeerImpl</peerClassName>
+ <!-- required for acl custom mapping -->
+ <userGroupRoleManager>
+ <!--
className>org.apache.fulcrum.security.torque.om.TurbineUserGroupRole</className-->
+
<peerClassName>org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeerImpl</peerClassName>
+ </userGroupRoleManager>
</userManager>
<groupManager lazy="true">
<className>org.apache.fulcrum.security.torque.om.TurbineGroup</className>
Modified:
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultWithPeersComponentConfig.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultWithPeersComponentConfig.xml?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultWithPeersComponentConfig.xml
(original)
+++
turbine/fulcrum/trunk/security/torque/src/test/TurbineDefaultWithPeersComponentConfig.xml
Fri Jan 12 14:31:04 2018
@@ -27,6 +27,11 @@
<userManager>
<className>org.apache.fulcrum.security.torque.om.TurbineUser</className>
<peerClassName>org.apache.fulcrum.security.torque.om.TurbineUserPeerImpl</peerClassName>
+ <!-- required for acl custom mapping -->
+ <userGroupRoleManager>
+ <!--
className>org.apache.fulcrum.security.torque.om.TurbineUserGroupRole</className-->
+
<peerClassName>org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeerImpl</peerClassName>
+ </userGroupRoleManager>
</userManager>
<groupManager>
<className>org.apache.fulcrum.security.torque.om.TurbineGroup</className>