Interface BambooUserManager

All Superinterfaces:
com.atlassian.user.search.query.EntityQueryParser, bucket.user.UserAccessor
All Known Implementing Classes:
BambooUserManagerImpl

public interface BambooUserManager extends bucket.user.UserAccessor
Service class to manage interactions with the user.
  • Field Details

  • Method Details

    • getBambooUser

      @Nullable @Nullable BambooUser getBambooUser(String username)
      Returns a BambooUser of the given username
      Parameters:
      username -
      Returns:
      The matching user, null if does not exist
    • getBambooUser

      @Nullable @Nullable BambooUser getBambooUser(@Nullable @Nullable com.atlassian.user.User user)
      Returns a BambooUser given a User
      Parameters:
      user -
      Returns:
      The wrapped user.
    • getBambooUser

      @Nullable @Nullable BambooUser getBambooUser(@NotNull @NotNull AccessToken accessToken)
      Returns a BambooUser with filled accessToken
      Parameters:
      accessToken -
      Returns:
      The wrapped user with access token
    • addUser

      BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groupNames)
      Method that extends the standard addUser methods to also add Bamboo specific params
      Parameters:
      username -
      password -
      email -
      fullName -
      jabberAddress -
      groupNames - - List of Strings as the group names. May be null.
      Returns:
      the created BambooUser object with the created properties
    • addUser

      BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups, ExtendedAuthor author)
      Method that extends the standard addUser methods to also add Bamboo specific params
      Parameters:
      username -
      password -
      email -
      fullName -
      jabberAddress -
      selectedGroups - - List of Strings as the group names. May be null.
      author -
      Returns:
      the created BambooUser object with the created properties
    • addUser

      BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups, @NotNull @NotNull List<Long> authors)
    • addUser

      BambooUser addUser(String username, String password, boolean enabled, String email, String fullName, String jabberAddress, List<String> selectedGroups, @NotNull @NotNull List<Long> authors)
    • renameUser

      void renameUser(String oldUserName, String newUserName)
    • onExternalUserRename

      void onExternalUserRename(@NotNull @NotNull String oldUserName, @NotNull @NotNull String newUserName)
    • saveUser

      void saveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups) throws IllegalArgumentException
      Saves the properties for the given user
      Parameters:
      username -
      password -
      email -
      fullName -
      jabberAddress -
      selectedGroups - - List of Strings as the group names. May be null.
      Throws:
      IllegalArgumentException - if username does not match a user, or if the password cannot be altered by the local user management facility.
    • saveUser

      void saveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups, ExtendedAuthor author) throws IllegalArgumentException
      Saves the properties for the given user
      Parameters:
      username -
      password -
      email -
      fullName -
      jabberAddress -
      selectedGroups - - List of Strings as the group names. May be null.
      author -
      Throws:
      IllegalArgumentException - if username does not match a user, or if the password cannot be altered by the local user management facility.
    • saveUser

      void saveUser(String username, @Nullable @Nullable String password, boolean active, String email, String fullName, String jabberAddress, String notificationPreference, String notificationTransportPreference, List<String> selectedGroups, @NotNull @NotNull List<Long> authors) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • cleanupRemovedUserReferences

      void cleanupRemovedUserReferences(@NotNull @NotNull String userName)
      Cleanup all Bamboo-stored data related to a user that is being deleted or has been deleted.
    • cleanupRemovedGroupReferences

      void cleanupRemovedGroupReferences(@NotNull @NotNull String groupName)
      Cleanup all Bamboo-stored data related to a group that is being deleted or has been deleted.
    • getGroupNamesAsList

      List<String> getGroupNamesAsList(com.atlassian.user.User user)
      Returns groups for the User
      Parameters:
      user - - Must not be null
      Returns:
      List of String representing group names. Collections.emptyList() if none exists
    • setMembership

      void setMembership(com.atlassian.user.Group group, List<String> members)
      Sets a group's members as the passed list
      Parameters:
      group - - The group to modify the user list. Cannot be null.
      members - - List of username Strings. Can be null
    • addMembershipWithConfirmation

      boolean addMembershipWithConfirmation(com.atlassian.user.Group group, com.atlassian.user.User user)
      Returns:
      true iff operation successful
    • getMemberNamesAsList

      @NotNull @NotNull List<String> getMemberNamesAsList(com.atlassian.user.Group group)
    • injectUser

      BambooUser injectUser(@NotNull @NotNull BambooUser user)
      A variation of addUser which inserts the encryptedPassword instead - used for importing
      Parameters:
      user - user data
      Returns:
      the created BambooUser object with the created properties
    • isDeletable

      boolean isDeletable(com.atlassian.user.User user)
      Is this user deletable? A user may not be deletable because: 1) They are read-only (i.e. the user is externally sourced)
      Parameters:
      user - user data
      Returns:
      booleanwhether user deletable
    • isDeletable

      boolean isDeletable(com.atlassian.user.Group group)
      Returns true if the given group can be deleted. Some user directories may be read-only and thus may not permit deleting entities.
    • isReadOnly

      boolean isReadOnly(com.atlassian.user.User user)
      Is this user read only?
      Parameters:
      user -
    • isReadOnly

      boolean isReadOnly(com.atlassian.user.Group group)
      Is this group read only?
      Parameters:
      group -
    • canCreateUsers

      boolean canCreateUsers()
      Whether creation of new users is allowed. Some user directories may be read-only and thus may not permit adding new entities.
    • canCreateGroups

      boolean canCreateGroups()
      Whether creation of new groups is allowed. Some user directories may be read-only and thus may not permit adding new entities.
    • saveNotificationPreferences

      void saveNotificationPreferences(String username, String notificationPreference, String notificationTransportPref)
      Save just the notification preferences for the given user
      Parameters:
      username -
      notificationPreference -
    • setupInitialAdminUser

      void setupInitialAdminUser(String username, String password, String email, String fullName)
      Setup the initial admin user for the Bamboo instance.
      Parameters:
      username -
      password -
      email -
      fullName -
    • createPasswordResetToken

      @NotNull @NotNull PasswordResetToken createPasswordResetToken(String username)
      Request new one-time token for a user. Replaces the old one if it exists.
      Parameters:
      username - user login name
      Returns:
      freshly created one-time token
    • getPasswordResetToken

      @Nullable @Nullable PasswordResetToken getPasswordResetToken(String username)
      Retrieves existing user token. Returns null if there is none.
      Parameters:
      username - user login name
      Returns:
      user token object or null
    • deletePasswordResetToken

      void deletePasswordResetToken(String username)
      Deletes existing user token. Does nothing if there is no token.
      Parameters:
      username - user login name
    • findUserWithJabberAddress

      @Nullable @Nullable BambooUser findUserWithJabberAddress(@NotNull @NotNull String jabberAddress)
      Searches for user using specified jabberAddress.
      Parameters:
      jabberAddress - address to be matched
      Returns:
      BambooUser or null if none found
    • getJiraIssueDefaults

      @Nullable @Nullable String getJiraIssueDefaults(@NotNull @NotNull com.atlassian.user.User user)
      Returns:
      json string containing default JIRA server applink id, project id and issue type id
      Since:
      4.1
    • saveJiraIssueDefaults

      void saveJiraIssueDefaults(@NotNull @NotNull com.atlassian.user.User user, @NotNull @NotNull String jiraIssueDefaultsJson)
      Saves default data use in JIRA issue creation dialog
      Parameters:
      user - user
      jiraIssueDefaultsJson - default data formatted as JSON string
      Since:
      4.1
    • isUserAutocompleteAllowed

      boolean isUserAutocompleteAllowed()
      Determines whether we are allowed to do autocompletion for users. Currently this will return false if using LDAP, otherwise true
      Returns:
      true if we are allowed to do autocomplete for users.
    • loadUserByUsername

      BambooUser loadUserByUsername(String username) throws org.acegisecurity.userdetails.UsernameNotFoundException
      Currently should NOT be called during setup/upgrade. We need a better way of handling bamboo-users vs bamboo-user for Cloud and Server https://jira.atlassian.com/browse/ROTP-1557
      Throws:
      org.acegisecurity.userdetails.UsernameNotFoundException