Author: bdaw
Date: 2009-05-05 09:48:43 -0400 (Tue, 05 May 2009)
New Revision: 477
Added:
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/GroupQueryTest.java
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/RoleQueryTest.java
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/UserQueryTest.java
idm/trunk/idm/src/test/resources/log4j.xml
Modified:
idm/trunk/idm-api/src/main/java/org/jboss/identity/idm/api/RoleManager.java
idm/trunk/idm/pom.xml
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/AbstractQuery.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/GroupQueryImpl.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/RoleQueryImpl.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/UserQueryImpl.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/session/managers/RoleManagerImpl.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObject.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationship.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationshipName.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateRealm.java
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APILDAPTestCase.java
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APITestCase.java
idm/trunk/idm/src/test/resources/datasources/datasources.xml
idm/trunk/idm/src/test/resources/datasources/hibernates.xml
Log:
partial commit for sybase and db2 testing and some db fixes.
Modified: idm/trunk/idm/pom.xml
===================================================================
--- idm/trunk/idm/pom.xml 2009-05-04 18:16:51 UTC (rev 476)
+++ idm/trunk/idm/pom.xml 2009-05-05 13:48:43 UTC (rev 477)
@@ -284,14 +284,14 @@
<profiles>
<profile>
- <id>oracle-provided-jdbc-driver</id>
+ <id>provided-jdbc-driver</id>
<dependencies>
<dependency>
- <groupId>oracle</groupId>
+ <groupId>privided</groupId>
<artifactId>jdbc-driver</artifactId>
<version>NA</version>
<scope>system</scope>
- <systemPath>${oracle.jdbc.driver.path}</systemPath>
+ <systemPath>${provided.jdbc.driver.path}</systemPath>
</dependency>
</dependencies>
</profile>
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/AbstractQuery.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/AbstractQuery.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/AbstractQuery.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -28,6 +28,8 @@
import org.jboss.identity.idm.api.IdentitySession;
import org.jboss.identity.idm.api.Group;
import org.jboss.identity.idm.api.IdentityType;
+import org.jboss.identity.idm.api.User;
+import org.jboss.identity.idm.api.Role;
import org.jboss.identity.idm.api.query.UserQuery;
import org.jboss.identity.idm.api.query.UnsupportedQueryCriterium;
import org.jboss.identity.idm.api.query.Query;
@@ -37,6 +39,9 @@
import org.jboss.identity.idm.impl.api.model.SimpleUser;
import org.jboss.identity.idm.impl.api.session.IdentitySessionImpl;
+import java.util.List;
+import java.util.LinkedList;
+
/**
* @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
* @version : 0.1 $
@@ -133,4 +138,83 @@
return new SimpleUser(id);
}
}
+
+ protected List<IdentityType> mergeIdentityTypeWithAND(List<IdentityType>
first, List<IdentityType> second)
+ {
+ List<IdentityType> results = new LinkedList<IdentityType>();
+
+ for (IdentityType identityType : first)
+ {
+ if (second.contains(identityType))
+ {
+ results.add(identityType);
+ }
+ }
+
+ return results;
+ }
+
+ protected List<User> mergeUsersWithAND(List<User> first, List<User>
second)
+ {
+ List<User> results = new LinkedList<User>();
+
+ for (User user : first)
+ {
+ if (second.contains(user))
+ {
+ results.add(user);
+ }
+ }
+
+ return results;
+ }
+
+ protected List<Group> mergeGroupsWithAND(List<Group> first,
List<Group> second)
+ {
+ List<Group> results = new LinkedList<Group>();
+
+ for (Group group : first)
+ {
+ if (second.contains(group))
+ {
+ results.add(group);
+ }
+ }
+
+ return results;
+ }
+
+ protected List<User> applyCriteriaUsers(List<User> users)
+ {
+// List<User> results = new LinkedList<User>();
+//
+// // First pass - filters
+// if(searchCriteria.isFiltered())
+// {
+// for (User user : users)
+// {
+// if (searchCriteria.getFilter() != null)
+// {
+//
+// }
+// }
+//
+// }
+
+ return users;
+ }
+
+ protected List<Role> applyCriteriaRoles(List<Role> roles)
+ {
+ //TODO:
+ return roles;
+ }
+
+ protected List<Group> applyCriteriaGroups(List<Group> roles)
+ {
+ //TODO:
+ return roles;
+ }
+
+
}
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/GroupQueryImpl.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/GroupQueryImpl.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/GroupQueryImpl.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -28,16 +28,19 @@
import org.jboss.identity.idm.api.SortOrder;
import org.jboss.identity.idm.api.Group;
import org.jboss.identity.idm.api.User;
+import org.jboss.identity.idm.api.Role;
import org.jboss.identity.idm.impl.NotYetImplementedException;
import org.jboss.identity.idm.impl.api.session.IdentitySessionImpl;
import org.jboss.identity.idm.impl.api.model.GroupId;
import org.jboss.identity.idm.impl.api.model.SimpleGroup;
import org.jboss.identity.idm.impl.api.model.SimpleUser;
+import org.jboss.identity.idm.exception.IdentityException;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
+import java.util.LinkedList;
/**
* @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
@@ -69,7 +72,183 @@
public Collection<Group> execute() throws QueryException
{
prepare();
- throw new NotYetImplementedException();
+
+ List<Group> mainResults = new LinkedList<Group>();
+
+ try
+ {
+ Group uniqueResult = null;
+
+ List<Group> resultsAssociatedParentGroups = new
LinkedList<Group>();
+ List<Group> resultsAssociatedChildGroups = new LinkedList<Group>();
+ List<Group> resultsUsersAssociated = new LinkedList<Group>();
+ List<Group> resultsUsersRelated = new LinkedList<Group>();
+ List<Group> resultsUsersConnectedByRole = new LinkedList<Group>();
+
+ if (groupId != null)
+ {
+ uniqueResult =
identitySession.getPersistenceManager().findGroup(groupId.getName(), groupId.getType());
+ }
+
+ // Process each condition
+
+ if (associatedParentGroups.size() > 0)
+ {
+ for (Group group : associatedParentGroups)
+ {
+
resultsAssociatedParentGroups.addAll(identitySession.getRelationshipManager().findAssociatedGroups(
+ group, groupType, true, false, searchCriteria));
+ }
+ }
+
+ if (associatedChildGroups.size() > 0)
+ {
+ for (Group group : associatedChildGroups)
+ {
+
resultsAssociatedChildGroups.addAll(identitySession.getRelationshipManager().findAssociatedGroups(
+ group, groupType, false, false, searchCriteria));
+ }
+ }
+
+
+ if (usersAssociated.size() > 0)
+ {
+ for (User user : usersAssociated)
+ {
+
resultsUsersAssociated.addAll(identitySession.getRelationshipManager().findAssociatedGroups(
+ user, groupType, searchCriteria));
+ }
+ }
+
+ if (usersRelated.size() > 0)
+ {
+ for (User user : usersRelated)
+ {
+
resultsUsersRelated.addAll(identitySession.getRelationshipManager().findRelatedGroups(user,
groupType, searchCriteria));
+ }
+ }
+
+ if (usersConnectedByRole.size() > 0)
+ {
+ for (User user : usersConnectedByRole)
+ {
+
resultsUsersConnectedByRole.addAll(identitySession.getRoleManager().findGroupsWithRelatedRole(user,
groupType, searchCriteria));
+ }
+ }
+
+ // If only one search was performed then return it as search criteria are
applied correctly
+
+ if (uniqueResult == null &&
+ resultsAssociatedChildGroups.size() == 0 &&
+ resultsAssociatedParentGroups.size() == 0 &&
+ resultsUsersAssociated.size() == 0 &&
+ resultsUsersConnectedByRole.size() == 0 &&
+ resultsUsersRelated.size() == 0)
+ {
+ return mainResults;
+
+ }
+ else if (uniqueResult != null &&
+ resultsAssociatedChildGroups.size() == 0 &&
+ resultsAssociatedParentGroups.size() == 0 &&
+ resultsUsersAssociated.size() == 0 &&
+ resultsUsersConnectedByRole.size() == 0 &&
+ resultsUsersRelated.size() == 0)
+ {
+
+ mainResults.add(uniqueResult);
+ //TODO: apply constraints...
+ return mainResults;
+ }
+ else if (uniqueResult == null &&
+ resultsAssociatedChildGroups.size() != 0 &&
+ resultsAssociatedParentGroups.size() == 0 &&
+ resultsUsersAssociated.size() == 0 &&
+ resultsUsersConnectedByRole.size() == 0 &&
+ resultsUsersRelated.size() == 0)
+ {
+ return resultsAssociatedChildGroups;
+
+ }
+ else if (uniqueResult == null &&
+ resultsAssociatedChildGroups.size() == 0 &&
+ resultsAssociatedParentGroups.size() != 0 &&
+ resultsUsersAssociated.size() == 0 &&
+ resultsUsersConnectedByRole.size() == 0 &&
+ resultsUsersRelated.size() == 0)
+ {
+ return resultsAssociatedParentGroups;
+ }
+ else if (uniqueResult == null &&
+ resultsAssociatedChildGroups.size() == 0 &&
+ resultsAssociatedParentGroups.size() == 0 &&
+ resultsUsersAssociated.size() != 0 &&
+ resultsUsersConnectedByRole.size() == 0 &&
+ resultsUsersRelated.size() == 0)
+ {
+ return resultsUsersAssociated;
+ }
+ else if (uniqueResult == null &&
+ resultsAssociatedChildGroups.size() == 0 &&
+ resultsAssociatedParentGroups.size() == 0 &&
+ resultsUsersAssociated.size() == 0 &&
+ resultsUsersConnectedByRole.size() != 0 &&
+ resultsUsersRelated.size() == 0)
+ {
+ return resultsUsersConnectedByRole;
+ }
+ else if (uniqueResult == null &&
+ resultsAssociatedChildGroups.size() == 0 &&
+ resultsAssociatedParentGroups.size() == 0 &&
+ resultsUsersAssociated.size() == 0 &&
+ resultsUsersConnectedByRole.size() == 0 &&
+ resultsUsersRelated.size() != 0)
+ {
+ return resultsUsersRelated;
+ }
+
+ // Merge with logical AND
+
+ if (uniqueResult != null)
+ {
+ mainResults.add(uniqueResult);
+ }
+
+ if (resultsAssociatedChildGroups.size() > 0)
+ {
+ mainResults = mergeGroupsWithAND(mainResults, resultsAssociatedChildGroups);
+ }
+
+ if (resultsAssociatedParentGroups.size() > 0)
+ {
+ mainResults = mergeGroupsWithAND(mainResults,
resultsAssociatedParentGroups);
+ }
+
+ if (resultsUsersAssociated.size() > 0)
+ {
+ mainResults = mergeGroupsWithAND(mainResults, resultsUsersAssociated);
+ }
+
+ if (resultsUsersConnectedByRole.size() > 0)
+ {
+ mainResults = mergeGroupsWithAND(mainResults, resultsUsersConnectedByRole);
+ }
+
+ if (resultsUsersRelated.size() > 0);
+ {
+ mainResults = mergeGroupsWithAND(mainResults, resultsUsersRelated);
+ }
+
+ mainResults = applyCriteriaGroups(mainResults);
+ }
+ catch (Exception e)
+ {
+ throw new QueryException("Failed to execute query", e);
+ }
+
+
+
+ return mainResults;
}
private void prepare()
@@ -78,15 +257,35 @@
{
groupId = new GroupId(groupName, groupType);
}
+
}
public Group uniqueResult() throws QueryException
{
- throw new NotYetImplementedException();
+ Collection<Group> results = execute();
+
+ if (results.size() > 1)
+ {
+ throw new QueryException("More than one result returned");
+ }
+ else if (results.size() == 1)
+ {
+ return results.iterator().next();
+ }
+
+ return null;
}
public List<Group> list() throws QueryException
{
+ Collection<Group> results = execute();
+
+ if (results instanceof List)
+ {
+ return (List<Group>)results;
+ }
+
+ //TODO:
throw new NotYetImplementedException();
}
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/RoleQueryImpl.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/RoleQueryImpl.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/RoleQueryImpl.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -37,10 +37,14 @@
import org.jboss.identity.idm.impl.api.model.GroupId;
import org.jboss.identity.idm.impl.api.model.SimpleGroup;
import org.jboss.identity.idm.impl.api.model.SimpleRoleType;
+import org.jboss.identity.idm.impl.api.model.SimpleRole;
import org.jboss.identity.idm.impl.NotYetImplementedException;
+import org.jboss.identity.idm.exception.IdentityException;
+import org.jboss.identity.idm.exception.FeatureNotSupportedException;
import java.util.Collection;
import java.util.List;
+import java.util.LinkedList;
/**
* @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
@@ -62,17 +66,111 @@
public Collection<Role> execute() throws QueryException
{
- throw new NotYetImplementedException();
+ List<Role> mainResults = new LinkedList<Role>();
+
+ try
+ {
+ // Check all constraints combinations
+
+ if (user == null &&
+ group == null &&
+ roleType == null)
+ {
+ return mainResults;
+ }
+ else if (user != null &&
+ group != null &&
+ roleType != null)
+ {
+ Role role = identitySession.getRoleManager().getRole(roleType, user, group);
+ if (role != null)
+ {
+ mainResults.add(role);
+ }
+ return mainResults;
+
+ }
+ else if (user != null &&
+ group == null &&
+ roleType == null)
+ {
+ return identitySession.getRoleManager().findRoles(user, null);
+ }
+ else if (user != null &&
+ group == null &&
+ roleType != null)
+ {
+ return identitySession.getRoleManager().findRoles(user, roleType);
+ }
+ else if (user == null &&
+ group != null &&
+ roleType == null)
+ {
+ return identitySession.getRoleManager().findRoles(group, null);
+ }
+ else if (user == null &&
+ group != null &&
+ roleType != null)
+ {
+ return identitySession.getRoleManager().findRoles(group, roleType);
+ }
+ else if (user == null &&
+ group == null &&
+ roleType != null)
+ {
+ //TODO: reconsider if this should be supported
+ throw new QueryException("Not enought information to perform a query.
Cannot query roles only with a given RoleType");
+ }
+ else if (user != null &&
+ group != null &&
+ roleType == null)
+ {
+ Collection<RoleType> roleTypes =
identitySession.getRoleManager().findRoleTypes(user, group, searchCriteria);
+ for (RoleType type : roleTypes)
+ {
+ mainResults.add(new SimpleRole(type, user, group));
+ }
+ return mainResults;
+ }
+ }
+ catch (Exception e)
+ {
+ throw new QueryException("Failed to execute query", e);
+ }
+
+ mainResults = applyCriteriaRoles(mainResults);
+
+ return mainResults;
+
}
public Role uniqueResult() throws QueryException
{
- throw new NotYetImplementedException();
+ Collection<Role> results = execute();
+
+ if (results.size() > 1)
+ {
+ throw new QueryException("More than one result returned");
+ }
+ else if (results.size() == 1)
+ {
+ return results.iterator().next();
+ }
+
+ return null;
}
public List<Role> list() throws QueryException
{
+ Collection<Role> results = execute();
+
+ if (results instanceof List)
+ {
+ return (List<Role>)results;
+ }
+
+ //TODO:
throw new NotYetImplementedException();
}
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/UserQueryImpl.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/UserQueryImpl.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/query/UserQueryImpl.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -30,11 +30,13 @@
import org.jboss.identity.idm.api.SortOrder;
import org.jboss.identity.idm.impl.api.session.IdentitySessionImpl;
import org.jboss.identity.idm.impl.NotYetImplementedException;
+import org.jboss.identity.idm.exception.IdentityException;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
+import java.util.LinkedList;
/**
* @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
@@ -58,16 +60,145 @@
public Collection<User> execute() throws QueryException
{
- throw new NotYetImplementedException();
+
+ List<User> resultsMain = new LinkedList<User>();
+
+ try
+ {
+
+ User uniqueUser = null;
+ List<User> resultsAssociatedGroups = new LinkedList<User>();
+ List<User> resultsConnectedWithRoleGroups = new LinkedList<User>();
+ List<User> resultsRelatedGroups = new LinkedList<User>();
+
+ // Process each condition separately
+
+ if (userId != null)
+ {
+ uniqueUser = identitySession.getPersistenceManager().findUser(userId);
+ }
+
+ if (groupsAssociatedWith.size() > 0)
+ {
+ for (Group group : groupsAssociatedWith)
+ {
+
resultsAssociatedGroups.addAll(identitySession.getRelationshipManager().findAssociatedUsers(group,
false, searchCriteria));
+ }
+ }
+
+ if (groupsConnectedWithRole.size() > 0)
+ {
+ for (Group group : groupsConnectedWithRole)
+ {
+
resultsConnectedWithRoleGroups.addAll(identitySession.getRoleManager().findUsersWithRelatedRole(group,
searchCriteria));
+ }
+ }
+
+ if (groupsRelated.size() > 0)
+ {
+ for (Group group : groupsRelated)
+ {
+
resultsRelatedGroups.addAll(identitySession.getRelationshipManager().findRelatedUsers(group,
searchCriteria));
+ }
+ }
+
+ // If only one condition was present just return it
+
+ if (uniqueUser != null &&
+ resultsAssociatedGroups.size() == 0 &&
+ resultsConnectedWithRoleGroups.size() == 0 &&
+ resultsRelatedGroups.size() == 0)
+ {
+ resultsMain.add(uniqueUser);
+ //TODO: apply constraints...
+ return resultsMain;
+ }
+ else if (uniqueUser == null &&
+ resultsAssociatedGroups.size() > 0 &&
+ resultsConnectedWithRoleGroups.size() == 0 &&
+ resultsRelatedGroups.size() == 0)
+ {
+ return resultsAssociatedGroups;
+ }
+ else if (uniqueUser == null &&
+ resultsAssociatedGroups.size() == 0 &&
+ resultsConnectedWithRoleGroups.size() > 0 &&
+ resultsRelatedGroups.size() == 0)
+ {
+ return resultsConnectedWithRoleGroups;
+ }
+ else if (uniqueUser == null &&
+ resultsAssociatedGroups.size() == 0 &&
+ resultsConnectedWithRoleGroups.size() == 0 &&
+ resultsRelatedGroups.size() > 0)
+ {
+ return resultsRelatedGroups;
+ }
+
+ // Merge results with logical AND
+
+ if (uniqueUser != null)
+ {
+ resultsMain.add(uniqueUser);
+ }
+
+ if (resultsAssociatedGroups.size() > 0)
+ {
+ resultsMain = mergeUsersWithAND(resultsMain, resultsAssociatedGroups);
+ }
+
+ if (resultsConnectedWithRoleGroups.size() > 0)
+ {
+ resultsMain = mergeUsersWithAND(resultsMain,
resultsConnectedWithRoleGroups);
+ }
+
+ if (resultsRelatedGroups.size() > 0)
+ {
+ resultsMain = mergeUsersWithAND(resultsMain, resultsRelatedGroups);
+ }
+
+ // As results were merged criteria need to be applied separately
+ if (resultsMain.size() > 0)
+ {
+ resultsMain = applyCriteriaUsers(resultsMain);
+ }
+
+ }
+ catch (Exception e)
+ {
+ throw new QueryException("Failed to execute query", e);
+ }
+
+ return resultsMain;
}
public User uniqueResult() throws QueryException
{
- throw new NotYetImplementedException();
+
+ Collection<User> results = execute();
+
+ if (results.size() > 1)
+ {
+ throw new QueryException("More than one result returned");
+ }
+ else if (results.size() == 1)
+ {
+ return results.iterator().next();
+ }
+
+ return null;
}
public List<User> list() throws QueryException
{
+ Collection<User> results = execute();
+
+ if (results instanceof List)
+ {
+ return (List<User>)results;
+ }
+
+ //TODO:
throw new NotYetImplementedException();
}
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/session/managers/RoleManagerImpl.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/session/managers/RoleManagerImpl.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/api/session/managers/RoleManagerImpl.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -445,6 +445,34 @@
}
+ public Collection<User> findUsersWithRelatedRole(Group group,
IdentitySearchCriteria controls) throws IdentityException
+ {
+ checkNotNullArgument(group, "Group");
+
+ List<User> identities = new LinkedList<User>();
+
+
+ Collection<IdentityObject> ios = null;
+
+ ios = getRepository().findIdentityObject(getInvocationContext(),
createIdentityObject(group), ROLE, true, convertSearchControls(controls));
+
+ for (IdentityObject io : ios)
+ {
+ identities.add(createUser(io));
+ }
+
+ return identities;
+ }
+
+ public Collection<User> findUsersWithRelatedRole(String groupId,
IdentitySearchCriteria controls) throws IdentityException
+ {
+ checkNotNullArgument(groupId, "Group id");
+
+ Group group = createGroupFromId(groupId);
+
+ return findUsersWithRelatedRole(group, controls);
+ }
+
public Collection<Group> findGroupsWithRelatedRole(User identity,
IdentitySearchCriteria controls) throws IdentityException
{
checkNotNullArgument(identity, "User");
@@ -477,31 +505,42 @@
public Collection<Group> findGroupsWithRelatedRole(User identity, String
groupType, IdentitySearchCriteria controls) throws IdentityException
{
checkNotNullArgument(identity, "User");
- checkNotNullArgument(groupType, "Group type");
+// checkNotNullArgument(groupType, "Group type");
List<Group> identities = new LinkedList<Group>();
- IdentityObjectType iot = getIdentityObjectType(groupType);
-
Collection<IdentityObject> ios = null;
ios = getRepository().findIdentityObject(getInvocationContext(),
createIdentityObject(identity), ROLE, false, convertSearchControls(controls));
- for (IdentityObject io : ios)
+ if (groupType != null)
{
- if (io.getIdentityType().getName().equals(iot.getName()))
+ IdentityObjectType iot = getIdentityObjectType(groupType);
+
+ for (IdentityObject io : ios)
{
+ if (io.getIdentityType().getName().equals(iot.getName()))
+ {
+ identities.add(createGroup(io));
+ }
+ }
+ }
+ else
+ {
+ for (IdentityObject io : ios)
+ {
identities.add(createGroup(io));
}
}
+
return identities;
}
public Collection<Group> findGroupsWithRelatedRole(String userName, String
groupType, IdentitySearchCriteria controls) throws IdentityException
{
checkNotNullArgument(userName, "User name");
- checkNotNullArgument(groupType, "Group type");
+// checkNotNullArgument(groupType, "Group type");
User user = createUserFromId(userName);
@@ -512,7 +551,7 @@
public Collection<Role> findRoles(IdentityType identityType, RoleType roleType)
throws IdentityException
{
checkNotNullArgument(identityType, "IdentityType");
- checkNotNullArgument(roleType, "RoleType");
+ //checkNotNullArgument(roleType, "RoleType");
Set<Role> roles = new HashSet<Role>();
@@ -531,8 +570,15 @@
for (IdentityObjectRelationship relationship : relationships)
{
- if (roleType.getName().equals(relationship.getName()))
+ if (roleType != null)
{
+ if (roleType.getName().equals(relationship.getName()))
+ {
+ roles.add(new SimpleRole(new SimpleRoleType(relationship.getName()),
createUser(relationship.getToIdentityObject()),
createGroup(relationship.getFromIdentityObject())));
+ }
+ }
+ else
+ {
roles.add(new SimpleRole(new SimpleRoleType(relationship.getName()),
createUser(relationship.getToIdentityObject()),
createGroup(relationship.getFromIdentityObject())));
}
}
@@ -544,9 +590,10 @@
public Collection<Role> findRoles(String id, String roleTypeName) throws
IdentityException
{
checkNotNullArgument(id, "Group id or User name");
- checkNotNullArgument(roleTypeName, "RoleType name");
+// checkNotNullArgument(roleTypeName, "RoleType name");
- return findRoles(createIdentityTypeFromId(id), new SimpleRoleType(roleTypeName));
+ RoleType roleType = roleTypeName != null ? new SimpleRoleType(roleTypeName) :
null;
+ return findRoles(createIdentityTypeFromId(id), roleType);
}
public Map<String, String> getProperties(RoleType roleType) throws
IdentityException
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObject.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObject.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObject.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -101,7 +101,8 @@
private Set<HibernateIdentityObjectAttribute> attributes = new
HashSet<HibernateIdentityObjectAttribute>();
@CollectionOfElements
- @JoinTable(name = "identity_obj_properties", joinColumns = @JoinColumn(name
= "IDENTITY_OBJ_ID"))
+ @JoinTable(name = "identity_obj_properties", joinColumns = @JoinColumn(name
= "IDENTITY_OBJ_ID", nullable=false))
+ @org.hibernate.annotations.MapKey(columns = @Column(name = "prop_key",
nullable=false))
@Column(name = "PROPERTY")
private Map<String, String> properties = new HashMap<String, String>();
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -32,6 +32,7 @@
import javax.persistence.JoinColumn;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
+import javax.persistence.Lob;
import java.util.Set;
import java.util.HashSet;
import java.util.Collections;
@@ -51,7 +52,7 @@
@GeneratedValue
private Long id;
-
+ @Lob
@Column(length = 10240000)
private byte[] value;
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -68,11 +68,13 @@
@Column(name= "TEXT", nullable = true)
private String textValue;
+ @Lob
@Column(name= "BINARY_VALUE", nullable = true, length = 10240000)
private byte[] binaryValue;
@CollectionOfElements
- @JoinTable(name = "jbid_io_creden_props", joinColumns = @JoinColumn(name =
"CREDENTIAL_ID"))
+ @JoinTable(name = "jbid_io_creden_props", joinColumns = @JoinColumn(name =
"CREDENTIAL_ID", nullable = false))
+ @org.hibernate.annotations.MapKey(columns = @Column(name = "prop_key",
nullable=false))
@Column(name = "PROPERTY")
private Map<String, String> properties = new HashMap<String, String>();
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationship.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationship.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationship.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -80,7 +80,8 @@
private HibernateIdentityObject toIdentityObject;
@CollectionOfElements
- @JoinTable(name = "jbid_io_rel_props", joinColumns = @JoinColumn(name =
"REALATIONSHIP_ID"))
+ @JoinTable(name = "jbid_io_rel_props", joinColumns = @JoinColumn(name =
"REALATIONSHIP_ID", nullable=false))
+ @org.hibernate.annotations.MapKey(columns = @Column(name = "prop_key",
nullable=false))
@Column(name = "PROPERTY")
private Map<String, String> properties = new HashMap<String, String>();
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationshipName.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationshipName.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectRelationshipName.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -89,7 +89,8 @@
private HibernateRealm realm;
@CollectionOfElements
- @JoinTable(name = "jbid_io_rel_name_props", joinColumns = @JoinColumn(name =
"REALATIONSHIP_NAME_ID"))
+ @JoinTable(name = "jbid_io_rel_name_props", joinColumns = @JoinColumn(name =
"REALATIONSHIP_NAME_ID", nullable=false))
+ @org.hibernate.annotations.MapKey(columns = @Column(name = "prop_key",
nullable=false))
@Column(name = "PROPERTY")
private Map<String, String> properties = new HashMap<String, String>();
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateRealm.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateRealm.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateRealm.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -34,6 +34,8 @@
import javax.persistence.NamedQuery;
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
+import javax.persistence.AttributeOverride;
+import javax.persistence.MapKey;
import java.util.Map;
import java.util.HashMap;
@@ -57,8 +59,9 @@
private String name;
@CollectionOfElements
- @JoinTable(name = "jbid_io_realm_props", joinColumns = @JoinColumn(name =
"REALM_ID"))
+ @JoinTable(name = "jbid_io_realm_props", joinColumns = @JoinColumn(name =
"REALM_ID", nullable=false))
@Column(name = "PROPERTY")
+ @org.hibernate.annotations.MapKey(columns = @Column(name = "prop_key",
nullable=false))
private Map<String, String> properties = new HashMap<String, String>();
public HibernateRealm()
Modified:
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APILDAPTestCase.java
===================================================================
---
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APILDAPTestCase.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APILDAPTestCase.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -56,6 +56,12 @@
RoleManagerTest roleManagerTest;
+ UserQueryTest userQueryTest;
+
+ GroupQueryTest groupQueryTest;
+
+ RoleQueryTest roleQueryTest;
+
IdentitySessionFactory identitySessionFactory;
@Create
@@ -66,6 +72,10 @@
relationshipManagerTest = new RelationshipManagerTest(this);
roleManagerTest = new RoleManagerTest(this);
+ userQueryTest = new UserQueryTest(this);
+ groupQueryTest = new GroupQueryTest(this);
+ roleQueryTest = new RoleQueryTest(this);
+
setRealmName("realm://RedHat/DB_LDAP");
populateClean();
@@ -109,4 +119,19 @@
{
roleManagerTest.testMethods(getRealmName());
}
+
+ public void testUserQuery() throws Exception
+ {
+ userQueryTest.testQuery(getRealmName());
+ }
+
+ public void testGroupQuery() throws Exception
+ {
+ groupQueryTest.testQuery(getRealmName());
+ }
+
+ public void testRoleQuery() throws Exception
+ {
+ roleQueryTest.testQuery(getRealmName());
+ }
}
\ No newline at end of file
Modified: idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APITestCase.java
===================================================================
---
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APITestCase.java 2009-05-04
18:16:51 UTC (rev 476)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/APITestCase.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -55,6 +55,12 @@
RoleManagerTest roleManagerTest;
+ UserQueryTest userQueryTest;
+
+ GroupQueryTest groupQueryTest;
+
+ RoleQueryTest roleQueryTest;
+
IdentitySessionFactory identitySessionFactory;
@Create
@@ -65,6 +71,10 @@
relationshipManagerTest = new RelationshipManagerTest(this);
roleManagerTest = new RoleManagerTest(this);
+ userQueryTest = new UserQueryTest(this);
+ groupQueryTest = new GroupQueryTest(this);
+ roleQueryTest = new RoleQueryTest(this);
+
setRealmName("realm://RedHat/DB");
@@ -106,4 +116,20 @@
{
roleManagerTest.testMethods(getRealmName());
}
+
+ public void testUserQuery() throws Exception
+ {
+ userQueryTest.testQuery(getRealmName());
+ }
+
+ public void testGroupQuery() throws Exception
+ {
+ groupQueryTest.testQuery(getRealmName());
+ }
+
+ public void testRoleQuery() throws Exception
+ {
+ roleQueryTest.testQuery(getRealmName());
+ }
+
}
\ No newline at end of file
Added: idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/GroupQueryTest.java
===================================================================
--- idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/GroupQueryTest.java
(rev 0)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/GroupQueryTest.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -0,0 +1,46 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+
+package org.jboss.identity.idm.impl.api;
+
+/**
+ * @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class GroupQueryTest
+{
+ private APITestContext ctx;
+
+ public GroupQueryTest(APITestContext testContext)
+ {
+ this.ctx = testContext;
+ }
+
+ public void testQuery(String realmName) throws Exception
+ {
+ ctx.begin();
+
+
+
+ ctx.commit();
+ }
+}
Added: idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/RoleQueryTest.java
===================================================================
--- idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/RoleQueryTest.java
(rev 0)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/RoleQueryTest.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -0,0 +1,46 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+
+package org.jboss.identity.idm.impl.api;
+
+/**
+ * @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class RoleQueryTest
+{
+ private APITestContext ctx;
+
+ public RoleQueryTest(APITestContext testContext)
+ {
+ this.ctx = testContext;
+ }
+
+ public void testQuery(String realmName) throws Exception
+ {
+ ctx.begin();
+
+
+
+ ctx.commit();
+ }
+}
Added: idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/UserQueryTest.java
===================================================================
--- idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/UserQueryTest.java
(rev 0)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/UserQueryTest.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -0,0 +1,65 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+
+package org.jboss.identity.idm.impl.api;
+
+import org.jboss.identity.idm.api.IdentitySession;
+import org.jboss.identity.idm.api.query.UserQuery;
+import junit.framework.Assert;
+
+/**
+ * @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class UserQueryTest extends Assert
+{
+ private APITestContext ctx;
+
+ public UserQueryTest(APITestContext testContext)
+ {
+ this.ctx = testContext;
+ }
+
+ public void testQuery(String realmName) throws Exception
+ {
+ ctx.begin();
+
+ IdentitySession ids =
ctx.getIdentitySessionFactory().getCurrentIdentitySession(realmName);
+
+ ids.getPersistenceManager().createUser("testUser");
+ ids.getPersistenceManager().createUser("testUser2");
+ ids.getPersistenceManager().createUser("testUser3");
+
+ UserQuery q = ids.createUserQuery();
+
+ q.withUserId("testUser");
+
+ assertEquals(1, q.execute().size());
+ assertEquals(1, q.list().size());
+ assertEquals("testUser", q.uniqueResult().getId());
+
+ ctx.commit();
+ }
+
+
+
+}
Modified: idm/trunk/idm/src/test/resources/datasources/datasources.xml
===================================================================
--- idm/trunk/idm/src/test/resources/datasources/datasources.xml 2009-05-04 18:16:51 UTC
(rev 476)
+++ idm/trunk/idm/src/test/resources/datasources/datasources.xml 2009-05-05 13:48:43 UTC
(rev 477)
@@ -24,6 +24,22 @@
<datasources>
<datasource>
+ <datasource-name>sybase152</datasource-name>
+
<connection-url>jdbc:sybase:Tds:dev77.qa.atl2.redhat.com:4100/jbidentity</connection-url>
+ <driver-class>com.sybase.jdbc3.jdbc.SybDriver</driver-class>
+ <user-name>jbidentity</user-name>
+ <password>jbidentity</password>
+ </datasource>
+
+ <datasource>
+ <datasource-name>db291</datasource-name>
+
<connection-url>jdbc:db2://dev67.qa.atl.jboss.com:50000/jbossqa</connection-url>
+ <driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
+ <user-name>identity</user-name>
+ <password>identity</password>
+ </datasource>
+
+ <datasource>
<datasource-name>oracle10g-local</datasource-name>
<connection-url>jdbc:oracle:thin:@192.168.1.101:1521:XE</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
Modified: idm/trunk/idm/src/test/resources/datasources/hibernates.xml
===================================================================
--- idm/trunk/idm/src/test/resources/datasources/hibernates.xml 2009-05-04 18:16:51 UTC
(rev 476)
+++ idm/trunk/idm/src/test/resources/datasources/hibernates.xml 2009-05-05 13:48:43 UTC
(rev 477)
@@ -176,4 +176,22 @@
</property>
</properties>
</configuration>
+ <configuration>
+ <configuration-name>sybase152</configuration-name>
+ <properties>
+ <property>
+ <name>hibernate.dialect</name>
+ <value>org.hibernate.dialect.SybaseDialect</value>
+ </property>
+ </properties>
+ </configuration>
+ <configuration>
+ <configuration-name>db291</configuration-name>
+ <properties>
+ <property>
+ <name>hibernate.dialect</name>
+ <value>org.hibernate.dialect.DB2Dialect</value>
+ </property>
+ </properties>
+ </configuration>
</configurations>
Added: idm/trunk/idm/src/test/resources/log4j.xml
===================================================================
--- idm/trunk/idm/src/test/resources/log4j.xml (rev 0)
+++ idm/trunk/idm/src/test/resources/log4j.xml 2009-05-05 13:48:43 UTC (rev 477)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
+ <appender name="CONSOLE"
class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
+ value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}:
%m%n" />
+ </layout>
+ </appender>
+
+ <appender name="ASYNC"
class="org.apache.log4j.AsyncAppender">
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </appender>
+
+ <appender name="FILE"
class="org.apache.log4j.RollingFileAppender">
+ <param name="File" value="log4j-output.log"/>
+ <param name="MaxFileSize" value="1MB"/>
+ <param name="MaxBackupIndex" value="100"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
+ value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}:
%m%n" />
+ </layout>
+ </appender>
+
+ <root>
+ <priority value="info"/>
+ <appender-ref ref="CONSOLE"/>
+ <!--<appender-ref ref="ASYNC"/>-->
+ </root>
+</log4j:configuration>
\ No newline at end of file
Modified: idm/trunk/idm-api/src/main/java/org/jboss/identity/idm/api/RoleManager.java
===================================================================
--- idm/trunk/idm-api/src/main/java/org/jboss/identity/idm/api/RoleManager.java 2009-05-04
18:16:51 UTC (rev 476)
+++ idm/trunk/idm-api/src/main/java/org/jboss/identity/idm/api/RoleManager.java 2009-05-05
13:48:43 UTC (rev 477)
@@ -307,6 +307,28 @@
IdentitySearchCriteria controls) throws
IdentityException;
/**
+ * Find all Users with which Group has a Role association
+ *
+ * @param group
+ * @param controls
+ * @return
+ * @throws IdentityException
+ */
+ Collection<User> findUsersWithRelatedRole(Group group,
+ IdentitySearchCriteria controls) throws
IdentityException;
+
+ /**
+ * Find all Users with which Group has a Role association
+ *
+ * @param groupId
+ * @param controls
+ * @return
+ * @throws IdentityException
+ */
+ Collection<User> findUsersWithRelatedRole(String groupId,
+ IdentitySearchCriteria controls) throws
IdentityException;
+
+ /**
* Find Role objects with a given RoleType associated with a given IdentityType
* @param identityType
* @param roleType