Class CachedCrowdMembershipDao

java.lang.Object
com.atlassian.confluence.impl.user.crowd.CachedCrowdMembershipDao
All Implemented Interfaces:
com.atlassian.crowd.embedded.spi.MembershipDao

public final class CachedCrowdMembershipDao extends Object implements com.atlassian.crowd.embedded.spi.MembershipDao
Caches membership information. Invalidation is done whenever any membership in the parent group changes.
Since:
3.5
See Also:
  • Constructor Details

  • Method Details

    • isUserDirectMember

      public boolean isUserDirectMember(long directoryId, String userName, String groupName)
      Specified by:
      isUserDirectMember in interface com.atlassian.crowd.embedded.spi.MembershipDao
    • isGroupDirectMember

      public boolean isGroupDirectMember(long directoryId, String childGroup, String parentGroupName)
      Specified by:
      isGroupDirectMember in interface com.atlassian.crowd.embedded.spi.MembershipDao
    • addUserToGroup

      public void addUserToGroup(long directoryId, String userName, String groupName) throws com.atlassian.crowd.exception.UserNotFoundException, com.atlassian.crowd.exception.GroupNotFoundException, com.atlassian.crowd.exception.MembershipAlreadyExistsException
      Specified by:
      addUserToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.UserNotFoundException
      com.atlassian.crowd.exception.GroupNotFoundException
      com.atlassian.crowd.exception.MembershipAlreadyExistsException
    • addUserToGroups

      public com.atlassian.crowd.util.BatchResult<String> addUserToGroups(long directoryId, String username, Set<String> groupNames) throws com.atlassian.crowd.exception.UserNotFoundException
      Specified by:
      addUserToGroups in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.UserNotFoundException
      Since:
      7.19.5
    • addAllUsersToGroup

      public com.atlassian.crowd.util.BatchResult<String> addAllUsersToGroup(long directoryId, Collection<String> userNames, String groupName) throws com.atlassian.crowd.exception.GroupNotFoundException
      Specified by:
      addAllUsersToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.GroupNotFoundException
    • addGroupToGroup

      public void addGroupToGroup(long directoryId, String childGroupName, String parentGroupName) throws com.atlassian.crowd.exception.GroupNotFoundException, com.atlassian.crowd.exception.MembershipAlreadyExistsException
      Specified by:
      addGroupToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.GroupNotFoundException
      com.atlassian.crowd.exception.MembershipAlreadyExistsException
    • addAllGroupsToGroup

      public com.atlassian.crowd.util.BatchResult<String> addAllGroupsToGroup(long directoryId, Collection<String> childGroupNames, String parentGroupName) throws com.atlassian.crowd.exception.GroupNotFoundException
      Specified by:
      addAllGroupsToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.GroupNotFoundException
    • removeUserFromGroup

      public void removeUserFromGroup(long directoryId, String userName, String groupName) throws com.atlassian.crowd.exception.UserNotFoundException, com.atlassian.crowd.exception.GroupNotFoundException, com.atlassian.crowd.exception.MembershipNotFoundException
      Specified by:
      removeUserFromGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.UserNotFoundException
      com.atlassian.crowd.exception.GroupNotFoundException
      com.atlassian.crowd.exception.MembershipNotFoundException
    • removeUsersFromGroup

      public com.atlassian.crowd.util.BatchResult<String> removeUsersFromGroup(long directoryId, Collection<String> userNames, String parentGroupName) throws com.atlassian.crowd.exception.GroupNotFoundException
      Specified by:
      removeUsersFromGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.GroupNotFoundException
    • removeGroupFromGroup

      public void removeGroupFromGroup(long directoryId, String childGroupName, String parentGroupName) throws com.atlassian.crowd.exception.GroupNotFoundException, com.atlassian.crowd.exception.MembershipNotFoundException
      Specified by:
      removeGroupFromGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.GroupNotFoundException
      com.atlassian.crowd.exception.MembershipNotFoundException
    • removeGroupsFromGroup

      public com.atlassian.crowd.util.BatchResult<String> removeGroupsFromGroup(long directoryId, Collection<String> childGroupNames, String parentGroupName) throws com.atlassian.crowd.exception.GroupNotFoundException
      Specified by:
      removeGroupsFromGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Throws:
      com.atlassian.crowd.exception.GroupNotFoundException
    • countDirectMembersOfGroup

      public com.atlassian.crowd.util.BoundedCount countDirectMembersOfGroup(long directoryId, String groupName, int potentialMaxCount)
      Specified by:
      countDirectMembersOfGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
    • search

      public <T> List<T> search(long directoryId, com.atlassian.crowd.search.query.membership.MembershipQuery<T> query)
      This implementation uses the existing cached data for searches returning strings, and for searches returning Group objects when searching for Groups as well. Missing results for these kinds of searches will also be cached. Any other searches will simply delegate to the underlying implementation.
      Specified by:
      search in interface com.atlassian.crowd.embedded.spi.MembershipDao
    • searchGroupedByName

      public <T> Map<String,List<T>> searchGroupedByName(long directoryId, com.atlassian.crowd.search.query.membership.MembershipQuery<T> query)
      searchGroupedByName accepts a query with the set of group names to search. Returns a multimap where key is the group name and the values are either parent or child group names. It can search for either for parent or child groups. Getting groups for users is not supported by HibernateMembershipDao.searchGroupedByName at the moment.
      Specified by:
      searchGroupedByName in interface com.atlassian.crowd.embedded.spi.MembershipDao
      Since:
      7.11
    • constrainResults

      public static <T> List<T> constrainResults(Collection<T> results, int startIndex, int maxResults)