Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ public interface GroupDAO extends AnyDAO<Group> {

Optional<? extends Group> findByName(String name);

List<String> findKeysByNamePattern(String pattern);

@Override
Collection<String> findAllResourceKeys(String key);

Map<String, Long> countByRealm();

/**
* Checks if the calling user is authorized to access the Group matching the provided key, under the given
* realm.
Expand All @@ -51,33 +55,73 @@ public interface GroupDAO extends AnyDAO<Group> {
*/
void securityChecks(Set<String> authRealms, String key, String realm);

boolean isManager(String key);

List<User> findManagedUsers(String key);

List<Group> findManagedGroups(String key);

List<AnyObject> findManagedAnyObjects(String key);

Map<String, Long> countByRealm();
long countUMembers(String groupKey);

List<String> findKeysByNamePattern(String pattern);
List<String> findUMembers(String groupKey);

List<AMembership> findAMemberships(Group group);
boolean existsUMembership(String userKey, String groupKey);

List<UMembership> findUMemberships(Group group, Pageable pageable);

List<String> findAMembers(String groupKey);
long countAMembers(String groupKey);

List<String> findUMembers(String groupKey);
List<String> findAMembers(String groupKey);

boolean existsAMembership(String anyObjectKey, String groupKey);

boolean existsUMembership(String userKey, String groupKey);
List<AMembership> findAMemberships(Group group);

long countAMembers(String groupKey);
List<GroupTypeExtension> findTypeExtensions(AnyTypeClass anyTypeClass);

long countUMembers(String groupKey);
boolean isManager(String key);

List<GroupTypeExtension> findTypeExtensions(AnyTypeClass anyTypeClass);
/**
* Returns all users managed by the group for the given key.
*
* Given:
* * group G1 for the provided key
* * group G2, with user member U
*
* then we have 2 cases where U is managed by G1:
*
* (a) U has gManager set to G1
* (b) G2 has gManager set to G1
*
* @param key manager key
* @return users managed by the group for the given key
*/
List<User> findManagedUsers(String key);

/**
* Returns all groups managed by the group for the given key.
*
* Given:
* * group G1 for the provided key
* * group G2
*
* then we have 1 case where G2 is managed by G1:
*
* (a) G2 has gManager set to G1
*
* @param key manager key
* @return groups managed by the group for the given key
*/
List<Group> findManagedGroups(String key);

/**
* Returns all any objects managed by the group for the given key.
*
* Given:
* * group G1 for the provided key
* * group G2, with any object member O
*
* then we have 2 cases where O is managed by G1:
*
* (a) O has gManager set to G1
* (b) G2 has gManager set to G1
*
* @param key manager key
* @return any objects managed by the group for the given key
*/
List<AnyObject> findManagedAnyObjects(String key);
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,59 @@ public interface UserDAO extends AnyDAO<User> {

boolean isManager(String key);

/**
* Returns all users managed by the user for the given key.
*
* Given:
* * user U1 for the provided key, member of group G1
* * user U2, member of group G2
*
* then we have 4 cases where U2 is managed by U1:
*
* (a) U2 has uManager set to U1
* (b) G2 has uManager set to U1
* (c) U2 has gManager set to G1
* (d) G2 has gManager set to G1
*
* @param key manager key
* @return users managed by the user for the given key
*/
List<User> findManagedUsers(String key);

/**
* Returns all groups managed by the user for the given key.
*
* Given:
* * user U1 for the provided key, member of group G1
* * group G2
*
* then we have 2 cases where G2 is managed by U1:
*
* (a) G2 has uManager set to U1
* (b) G2 has gManager set to G1
*
* @param key manager key
* @return groups managed by the user for the given key
*/
List<Group> findManagedGroups(String key);

/**
* Returns all any objects managed by the user for the given key.
*
* Given:
* * user U for the provided key, member of group G1
* * any object O, member of group G2
*
* then we have 4 cases where O is managed by U:
*
* (a) O has uManager set to U
* (b) G2 has uManager set to U
* (c) O has gManager set to G1
* (d) G2 has gManager set to G1
*
* @param key manager key
* @return any objects managed by the user for the given key
*/
List<AnyObject> findManagedAnyObjects(String key);

Map<String, Long> countByRealm();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,4 @@ public interface GroupRepo
@Query("SELECT e FROM #{#entityName} e WHERE e.id IN (:keys)")
@Override
List<Group> findByKeys(@Param("keys") List<String> keys);

@Query("SELECT DISTINCT e.leftEnd.id FROM JPAAMembership e WHERE e.rightEnd.id = :groupKey")
@Override
List<String> findAMembers(@Param("groupKey") String groupKey);

@Query("SELECT DISTINCT e.leftEnd.id FROM JPAUMembership e WHERE e.rightEnd.id = :groupKey")
@Override
List<String> findUMembers(@Param("groupKey") String groupKey);

@Query("SELECT COUNT(DISTINCT e.leftEnd.id) FROM JPAAMembership e WHERE e.rightEnd.id = :groupKey")
@Override
long countAMembers(@Param("groupKey") String groupKey);

@Query("SELECT COUNT(DISTINCT e.leftEnd.id) FROM JPAUMembership e WHERE e.rightEnd.id = :groupKey")
@Override
long countUMembers(@Param("groupKey") String groupKey);
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,36 @@

public interface GroupRepoExt extends AnyRepoExt<Group> {

Map<String, Long> countByRealm();

void securityChecks(Set<String> authRealms, String key, String realm);

boolean isManager(String key);
long countUMembers(String groupKey);

List<User> findManagedUsers(String key);
List<String> findUMembers(String groupKey);

List<Group> findManagedGroups(String key);
boolean existsUMembership(String userKey, String groupKey);

List<AnyObject> findManagedAnyObjects(String key);
List<UMembership> findUMemberships(Group group, Pageable pageable);

Map<String, Long> countByRealm();
long countAMembers(String groupKey);

boolean existsAMembership(String anyObjectKey, String groupKey);
List<String> findAMembers(String groupKey);

boolean existsUMembership(String userKey, String groupKey);
boolean existsAMembership(String anyObjectKey, String groupKey);

List<AMembership> findAMemberships(Group group);

List<UMembership> findUMemberships(Group group, Pageable pageable);

List<GroupTypeExtension> findTypeExtensions(AnyTypeClass anyTypeClass);

boolean isManager(String key);

List<User> findManagedUsers(String key);

List<Group> findManagedGroups(String key);

List<AnyObject> findManagedAnyObjects(String key);

@Override
<S extends Group> S save(S group);

Expand Down
Loading
Loading