Interface GroupManager

All Known Implementing Classes:
DefaultGroupManager, MockGroupManager, RequestCachingGroupManager

public interface GroupManager
This object can be used to manage groups in JIRA.
Since:
v3.13
  • Method Details

    • groupExists

      boolean groupExists(String groupName)
      Returns true if the given group name exists.
      Parameters:
      groupName - The group name.
      Returns:
      true if the given group name exists.
      Since:
      v3.13
    • groupExists

      boolean groupExists(@Nonnull com.atlassian.crowd.embedded.api.Group group)
      Returns true if the given group exists.
      Parameters:
      group - The group.
      Returns:
      true if the given group exists.
      Since:
      v7.0
    • getAllGroups

      @Deprecated Collection<com.atlassian.crowd.embedded.api.Group> getAllGroups()
      Deprecated.
      Since v7.0. Only retrieve the users you really need. See GroupPickerSearchService
      Get all groups.
      Returns:
      Collection of all Groups.
      Since:
      v4.3
    • createGroup

      com.atlassian.crowd.embedded.api.Group createGroup(String groupName) throws com.atlassian.crowd.exception.OperationNotPermittedException, com.atlassian.crowd.exception.embedded.InvalidGroupException
      Create a group with the given name.
      Parameters:
      groupName - The group name.
      Returns:
      the newly created Group.
      Throws:
      com.atlassian.crowd.exception.embedded.InvalidGroupException - if the group already exists in ANY associated directory or the group template does not have the required properties populated.
      com.atlassian.crowd.exception.OperationNotPermittedException - if the directory has been configured to not allow the operation to be performed
      Since:
      v4.3
    • getGroup

      com.atlassian.crowd.embedded.api.Group getGroup(String groupName)
      Returns the Group for this groupName, else null if no such Group exists.
      Parameters:
      groupName - The group name.
      Returns:
      The Group for this groupName, else null if no such Group exists.
    • getGroupEvenWhenUnknown

      com.atlassian.crowd.embedded.api.Group getGroupEvenWhenUnknown(String groupName)
      Returns the Group for this groupName, if no such Group exists then a proxy unknown immutable Group object is returned.
      Parameters:
      groupName - The group name.
      Returns:
      The Group for this groupName.
    • getGroupObject

      @Deprecated com.atlassian.crowd.embedded.api.Group getGroupObject(String groupName)
      Deprecated.
      use getGroup(String) instead. Since 6.5
      Returns the Group for this groupName, else null if no such Group exists.

      Legacy synonym for getGroup(String).

      Parameters:
      groupName - The group name.
      Returns:
      The Group for this groupName, else null if no such Group exists.
      See Also:
    • isUserInGroup

      boolean isUserInGroup(@Nullable String username, @Nullable String groupname)
      Deprecated.
      Use one of the other isUserInGroup methods that takes a concrete user object instead. Since v6.4.8.
      Returns true if the user is a member of the group.

      Note that if the username or groupname is null, then it will return false.

      Performance note: If you have a full user object, then calling one of the other isUserInGroup() methods directly is more efficient.

      Parameters:
      username - user to inspect.
      groupname - group to inspect.
      Returns:
      true if and only if the user is a direct or indirect (nested) member of the group.
      See Also:
    • isUserInGroup

      boolean isUserInGroup(@Nullable ApplicationUser user, @Nullable com.atlassian.crowd.embedded.api.Group group)
      Returns true if the user is a member of the group.

      Note that if the User or Group object is null, then it will return false. This was done to retain consistency with the old OSUser behaviour of User.inGroup() and Group.containsUser()

      Parameters:
      user - user to inspect.
      group - group to inspect.
      Returns:
      true if and only if the user is a direct or indirect (nested) member of the group.
      Since:
      v6.4.8
    • isUserInGroup

      boolean isUserInGroup(@Nullable ApplicationUser user, @Nullable String groupName)
      Returns true if the user is a member of the named group.

      If you already have the user object, then this method is faster than the alternative of passing in the username because it saves on an unnecessary user lookup to find the correct User Directory.

      Parameters:
      user - user to inspect.
      groupName - group to inspect.
      Returns:
      true if and only if the user is a direct or indirect (nested) member of the group.
      Since:
      v6.4.8
    • isUserInGroups

      boolean isUserInGroups(@Nullable ApplicationUser user, @Nullable Set<String> groupNames)
      Returns true if the user is a member of at least one of the named groups.
      Parameters:
      user - user to inspect.
      groupNames - groups to inspect.
      Returns:
      true if and only if the user is a direct or indirect (nested) member of the groups.
      Since:
      v9.0
    • getUsersInGroup

      Collection<ApplicationUser> getUsersInGroup(String groupName)
      Returns all the users in a group.
      Parameters:
      groupName - The group
      Returns:
      all the users that belongs to the group.
      Since:
      v4.3
    • getUsersInGroup

      Collection<ApplicationUser> getUsersInGroup(String groupName, Boolean includeInactive)
      Returns all the users in a group. Allows for additional filtering by the active flag of a user.
      Parameters:
      groupName - The group
      includeInactive - if set to true inactive users will be returned as well
      Returns:
      all the users that belongs to the group.
      Since:
      v7.0.1
    • getUsersInGroup

      Page<ApplicationUser> getUsersInGroup(String groupName, Boolean includeInactive, PageRequest pageRequest)
      Returns a page with users in a group. Users are sorted by name in ascending order.
      Parameters:
      groupName - name of the group for which users are returned
      includeInactive - if set to true inactive users will be returned as well
      pageRequest - parameters of the page to return
      Returns:
      page with the users
    • getUsersInGroup

      Collection<ApplicationUser> getUsersInGroup(com.atlassian.crowd.embedded.api.Group group)
      Returns all the users in a group. This will include nested group members.
      Parameters:
      group - The group
      Returns:
      all the users that belongs to the group.
      Throws:
      NullPointerException - if the group is null
      Since:
      v4.3
    • getUsersInGroupCount

      int getUsersInGroupCount(com.atlassian.crowd.embedded.api.Group group)
      Returns a count of all active users in a group. This will include nested group members.
      Parameters:
      group - The group
      Returns:
      a count of all the users that belongs to the group.
      Since:
      7.0
    • getUsersInGroupCount

      int getUsersInGroupCount(String groupName)
      Returns a count of all active users in a group. This will include nested group members.
      Parameters:
      groupName - The group name
      Returns:
      a count of all the users that belongs to the group.
      Since:
      7.0
    • getNamesOfDirectMembersOfGroups

      Collection<String> getNamesOfDirectMembersOfGroups(Collection<String> groupNames, int limit)
      Returns a list of all active user names that are direct members in at least one of the supplied groups.
      Parameters:
      groupNames - A collection of group names to find direct members of
      limit - A maximum number of names to return
      Returns:
      a list of user names
      Since:
      7.0
    • filterUsersInAllGroupsDirect

      Collection<String> filterUsersInAllGroupsDirect(Collection<String> userNames, Collection<String> groupNames)
      Returns a collection of user names for the users that are direct members of every one of the supplied groups.
      Parameters:
      userNames - A collection of user names
      groupNames - A collection of groups
      Returns:
      a collection of user names
      Since:
      7.0
    • getUserNamesInGroup

      Collection<String> getUserNamesInGroup(com.atlassian.crowd.embedded.api.Group group)
      Returns the names of all the users in a group. This will include nested group members.
      Parameters:
      group - The group
      Returns:
      all the users that belongs to the group.
      Throws:
      NullPointerException - if the group is null
      Since:
      v5.0
    • getUserNamesInGroups

      Collection<String> getUserNamesInGroups(Collection<com.atlassian.crowd.embedded.api.Group> groups)
      Returns the names of all the users in a collection of groups. This will include nested group members.
      Parameters:
      groups - The collection of groups
      Returns:
      all the users that belongs to the group.
      Throws:
      NullPointerException - if a group is null
      Since:
      v7.0
    • getUserNamesInGroup

      Collection<String> getUserNamesInGroup(String groupName)
      Returns the names of all the users in a group. This will include nested group members.
      Parameters:
      groupName - The group
      Returns:
      all the users that belongs to the group.
      Throws:
      NullPointerException - if the group is null
      Since:
      v5.0
    • getDirectUsersInGroup

      Collection<ApplicationUser> getDirectUsersInGroup(com.atlassian.crowd.embedded.api.Group group)
      Returns all the users that are direct members of the group. This will NOT include nested group members.
      Parameters:
      group - The group
      Returns:
      all the users that belongs to the group.
      Throws:
      NullPointerException - if the group is null
      Since:
      v4.3
    • getGroupsForUser

      Collection<com.atlassian.crowd.embedded.api.Group> getGroupsForUser(String userName)
      Returns all the groups that the given user belongs to.
      Parameters:
      userName - The user
      Returns:
      all the groups that the given user belongs to.
      Since:
      v4.3
      See Also:
    • getGroupsForUser

      Collection<com.atlassian.crowd.embedded.api.Group> getGroupsForUser(@Nonnull ApplicationUser user)
      Returns all the groups that the given user belongs to.
      Parameters:
      user - The user
      Returns:
      all the groups that the given user belongs to.
      Since:
      v4.3
      See Also:
    • getGroupNamesForUser

      Collection<String> getGroupNamesForUser(String userName)
      Returns the names of all the groups that the given user belongs to.
      Parameters:
      userName - The user
      Returns:
      all the groups that the given user belongs to.
      Since:
      v4.3
      See Also:
    • getGroupNamesForUser

      Collection<String> getGroupNamesForUser(@Nonnull ApplicationUser user)
      Returns the names of all the groups that the given user belongs to.
      Parameters:
      user - The user
      Returns:
      all the groups that the given user belongs to.
      Since:
      v6.2.5
      See Also:
    • getAllGroupNames

      Collection<String> getAllGroupNames()
      Returns the names of all groups or an empty collection if there are no groups.
      Returns:
      all the groups.
      Since:
      v8.11
    • addUserToGroup

      void addUserToGroup(ApplicationUser user, com.atlassian.crowd.embedded.api.Group group) throws com.atlassian.crowd.exception.GroupNotFoundException, com.atlassian.crowd.exception.UserNotFoundException, com.atlassian.crowd.exception.OperationNotPermittedException, com.atlassian.crowd.exception.OperationFailedException
      Adds a user as a member of a group.
      Parameters:
      user - The user that will become a member of the group.
      group - The group that will gain a new member.
      Throws:
      com.atlassian.crowd.exception.UserNotFoundException - if the user could not be found
      com.atlassian.crowd.exception.GroupNotFoundException - if the group could not be found
      com.atlassian.crowd.exception.OperationNotPermittedException - if the directory has been configured to not allow the operation to be performed
      com.atlassian.crowd.exception.OperationFailedException - If the underlying directory implementation failed to execute the operation.
      Since:
      v4.3
    • getConnectUsers

      @Deprecated Set<ApplicationUser> getConnectUsers()
      Deprecated.
      since 7.2.0.
      Returns all the connect app users. This will return an empty Set in JIRA Server as connect plugins are only supported in JIRA Cloud. This result does not filter out inactive users.
      Returns:
      all the connect app users.
      Since:
      v7.0.1