Class BambooUserManagerImpl

java.lang.Object
bucket.user.DefaultUserAccessor
com.atlassian.bamboo.user.BambooUserManagerImpl
All Implemented Interfaces:
bucket.user.UserAccessor, BambooUserManager, com.atlassian.user.search.query.EntityQueryParser

public class BambooUserManagerImpl extends bucket.user.DefaultUserAccessor implements BambooUserManager
  • Constructor Details

    • BambooUserManagerImpl

      public BambooUserManagerImpl()
  • Method Details

    • postConstruct

      @PostConstruct public void postConstruct()
    • getBambooUser

      @Nullable public @Nullable BambooUser getBambooUser(String username)
      Description copied from interface: BambooUserManager
      Returns a BambooUser of the given username
      Specified by:
      getBambooUser in interface BambooUserManager
      Returns:
      The matching user, null if does not exist
    • getBambooUser

      @Nullable public @Nullable BambooUser getBambooUser(@Nullable @Nullable com.atlassian.user.User user)
      Description copied from interface: BambooUserManager
      Returns a BambooUser given a User
      Specified by:
      getBambooUser in interface BambooUserManager
      Returns:
      The wrapped user.
    • getBambooUser

      public BambooUser getBambooUser(@NotNull @NotNull AccessToken accessToken)
      Description copied from interface: BambooUserManager
      Returns a BambooUser with filled accessToken
      Specified by:
      getBambooUser in interface BambooUserManager
      Returns:
      The wrapped user with access token
    • getUser

      @Nullable public @Nullable com.atlassian.user.User getUser(String name)
      Specified by:
      getUser in interface bucket.user.UserAccessor
      Overrides:
      getUser in class bucket.user.DefaultUserAccessor
    • addUser

      public BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups)
      Description copied from interface: BambooUserManager
      Method that extends the standard addUser methods to also add Bamboo specific params
      Specified by:
      addUser in interface BambooUserManager
      groups - - List of Strings as the group names. May be null.
      Returns:
      the created BambooUser object with the created properties
    • addUser

      public BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups, ExtendedAuthor author)
      Description copied from interface: BambooUserManager
      Method that extends the standard addUser methods to also add Bamboo specific params
      Specified by:
      addUser in interface BambooUserManager
      Returns:
      the created BambooUser object with the created properties
    • addUser

      public BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups, @NotNull @NotNull List<Long> authors)
      Specified by:
      addUser in interface BambooUserManager
    • addUser

      public BambooUser addUser(String username, String password, boolean enabled, String email, String fullName, String jabberAddress, List<String> groups, @NotNull @NotNull List<Long> authors)
      Specified by:
      addUser in interface BambooUserManager
    • renameUser

      public void renameUser(@NotNull @NotNull String oldUserName, @NotNull @NotNull String newUserName)
      Specified by:
      renameUser in interface BambooUserManager
    • onExternalUserRename

      public void onExternalUserRename(@NotNull @NotNull String oldUserName, @NotNull @NotNull String newUserName)
      Specified by:
      onExternalUserRename in interface BambooUserManager
    • saveUser

      public void saveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups) throws IllegalArgumentException
      Description copied from interface: BambooUserManager
      Saves the properties for the given user
      Specified by:
      saveUser in interface BambooUserManager
      Throws:
      IllegalArgumentException - if username does not match a user, or if the password cannot be altered by the local user management facility.
    • saveUser

      public void saveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups, ExtendedAuthor author) throws IllegalArgumentException
      Description copied from interface: BambooUserManager
      Saves the properties for the given user
      Specified by:
      saveUser in interface BambooUserManager
      Throws:
      IllegalArgumentException - if username does not match a user, or if the password cannot be altered by the local user management facility.
    • saveUser

      public void saveUser(String username, @Nullable @Nullable String password, boolean enabled, String email, String fullName, String jabberAddress, String notificationPreference, String notificationTransportPreference, List<String> selectedGroups, @NotNull @NotNull List<Long> authors) throws IllegalArgumentException
      Specified by:
      saveUser in interface BambooUserManager
      Throws:
      IllegalArgumentException
    • alterPassword

      public void alterPassword(com.atlassian.user.User user, String plainTextPassword) throws com.atlassian.user.EntityException
      Specified by:
      alterPassword in interface bucket.user.UserAccessor
      Overrides:
      alterPassword in class bucket.user.DefaultUserAccessor
      Throws:
      com.atlassian.user.EntityException
    • saveNotificationPreferences

      public void saveNotificationPreferences(String username, String notificationPreference, String notificationTransportPref)
      Description copied from interface: BambooUserManager
      Save just the notification preferences for the given user
      Specified by:
      saveNotificationPreferences in interface BambooUserManager
    • removeUser

      public void removeUser(com.atlassian.user.User user)
      Specified by:
      removeUser in interface bucket.user.UserAccessor
      Overrides:
      removeUser in class bucket.user.DefaultUserAccessor
    • cleanupRemovedUserReferences

      public void cleanupRemovedUserReferences(@NotNull @NotNull String username)
      Description copied from interface: BambooUserManager
      Cleanup all Bamboo-stored data related to a user that is being deleted or has been deleted.
      Specified by:
      cleanupRemovedUserReferences in interface BambooUserManager
    • removeGroup

      public void removeGroup(com.atlassian.user.Group group)
      Specified by:
      removeGroup in interface bucket.user.UserAccessor
      Overrides:
      removeGroup in class bucket.user.DefaultUserAccessor
    • cleanupRemovedGroupReferences

      public void cleanupRemovedGroupReferences(@NotNull @NotNull String groupName)
      Description copied from interface: BambooUserManager
      Cleanup all Bamboo-stored data related to a group that is being deleted or has been deleted.
      Specified by:
      cleanupRemovedGroupReferences in interface BambooUserManager
    • getGroupNamesAsList

      public List<String> getGroupNamesAsList(com.atlassian.user.User user)
      Description copied from interface: BambooUserManager
      Returns groups for the User
      Specified by:
      getGroupNamesAsList in interface BambooUserManager
      Parameters:
      user - - Must not be null
      Returns:
      List of String representing group names. Collections.emptyList() if none exists
    • setMembership

      public void setMembership(com.atlassian.user.Group group, List<String> members)
      Description copied from interface: BambooUserManager
      Sets a group's members as the passed list
      Specified by:
      setMembership in interface BambooUserManager
      Parameters:
      group - - The group to modify the user list. Cannot be null.
      members - - List of username Strings. Can be null
    • getMemberNamesAsList

      @NotNull public @NotNull List<String> getMemberNamesAsList(com.atlassian.user.Group group)
      Specified by:
      getMemberNamesAsList in interface BambooUserManager
    • isUserAutocompleteAllowed

      public boolean isUserAutocompleteAllowed()
      Description copied from interface: BambooUserManager
      Determines whether or not we are allowed to do autocompletion for users. Currently this will return false if using LDAP, otherwise true
      Specified by:
      isUserAutocompleteAllowed in interface BambooUserManager
      Returns:
      true if we are allowed to do automcomplete for users.
    • subtractNewList

      public static <T> Collection<T> subtractNewList(Collection<T> oldList, Collection<T> newList)
      Works like CollectionUtils.removeAll(Collection, Collection) only that it's null safe
      Parameters:
      oldList - - can be null
      newList - - can be null
      Returns:
      CollectionUtils.removeAll(Collection, Collection). Null lists count as empty lists.
    • stringListToArray

      public static String[] stringListToArray(Collection<String> strings)
      Converts a Collection of Strings to an array of Strings
      Parameters:
      strings - - Collection of Strings. May be nukk
      Returns:
      Array of strings. Null if input is null or empty
    • injectUser

      public BambooUser injectUser(@NotNull @NotNull BambooUser user)
      Description copied from interface: BambooUserManager
      A variation of addUser which inserts the encryptedPassword instead - used for importing
      Specified by:
      injectUser in interface BambooUserManager
      Parameters:
      user - user data
      Returns:
      the created BambooUser object with the created properties
    • isDeletable

      public boolean isDeletable(com.atlassian.user.User user)
      Description copied from interface: BambooUserManager
      Is this user deletable? A user may not be deletable because: 1) They are read-only (i.e. the user is externally sourced) 2) They have comments/labels linked to them
      Specified by:
      isDeletable in interface BambooUserManager
      Returns:
      booleanwhether user deletable
    • isDeletable

      public boolean isDeletable(com.atlassian.user.Group group)
      Description copied from interface: BambooUserManager
      Returns true if the given group can be deleted. Some user directories may be read-only and thus may not permit deleting entities.
      Specified by:
      isDeletable in interface BambooUserManager
    • isReadOnly

      public boolean isReadOnly(com.atlassian.user.User user)
      Description copied from interface: BambooUserManager
      Is this user read only?
      Specified by:
      isReadOnly in interface BambooUserManager
    • isReadOnly

      public boolean isReadOnly(com.atlassian.user.Group group)
      Description copied from interface: BambooUserManager
      Is this group read only?
      Specified by:
      isReadOnly in interface BambooUserManager
    • canCreateUsers

      public boolean canCreateUsers()
      Description copied from interface: BambooUserManager
      Whether creation of new users is allowed. Some user directories may be read-only and thus may not permit adding new entities.
      Specified by:
      canCreateUsers in interface BambooUserManager
    • canCreateGroups

      public boolean canCreateGroups()
      Description copied from interface: BambooUserManager
      Whether creation of new groups is allowed. Some user directories may be read-only and thus may not permit adding new entities.
      Specified by:
      canCreateGroups in interface BambooUserManager
    • setupInitialAdminUser

      public void setupInitialAdminUser(String username, String password, String email, String fullName)
      Description copied from interface: BambooUserManager
      Setup the initial admin user for the Bamboo instance.
      Specified by:
      setupInitialAdminUser in interface BambooUserManager
    • createPasswordResetToken

      @NotNull public @NotNull PasswordResetToken createPasswordResetToken(String username)
      Description copied from interface: BambooUserManager
      Request new one-time token for a user. Replaces the old one if it exists.
      Specified by:
      createPasswordResetToken in interface BambooUserManager
      Parameters:
      username - user login name
      Returns:
      freshly created one-time token
    • getPasswordResetToken

      @Nullable public @Nullable PasswordResetToken getPasswordResetToken(String username)
      Description copied from interface: BambooUserManager
      Retrieves existing user token. Returns null if there is none.
      Specified by:
      getPasswordResetToken in interface BambooUserManager
      Parameters:
      username - user login name
      Returns:
      user token object or null
    • deletePasswordResetToken

      public void deletePasswordResetToken(String username)
      Description copied from interface: BambooUserManager
      Deletes existing user token. Does nothing if there is no token.
      Specified by:
      deletePasswordResetToken in interface BambooUserManager
      Parameters:
      username - user login name
    • findUserWithJabberAddress

      public BambooUser findUserWithJabberAddress(@NotNull @NotNull String jabberAddress)
      Description copied from interface: BambooUserManager
      Searches for user using specified jabberAddress.
      Specified by:
      findUserWithJabberAddress in interface BambooUserManager
      Parameters:
      jabberAddress - address to be matched
      Returns:
      BambooUser or null if none found
    • loadUserByUsername

      public BambooUser loadUserByUsername(String username) throws org.acegisecurity.userdetails.UsernameNotFoundException
      Description copied from interface: BambooUserManager
      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
      Specified by:
      loadUserByUsername in interface BambooUserManager
      Throws:
      org.acegisecurity.userdetails.UsernameNotFoundException
    • getJiraIssueDefaults

      public String getJiraIssueDefaults(@NotNull @NotNull com.atlassian.user.User user)
      Specified by:
      getJiraIssueDefaults in interface BambooUserManager
      Returns:
      json string containing default JIRA server applink id, project id and issue type id
    • saveJiraIssueDefaults

      public void saveJiraIssueDefaults(@NotNull @NotNull com.atlassian.user.User user, @NotNull @NotNull String jiraIssueDefaults)
      Description copied from interface: BambooUserManager
      Saves default data use in JIRA issue creation dialog
      Specified by:
      saveJiraIssueDefaults in interface BambooUserManager
      Parameters:
      user - user
      jiraIssueDefaults - default data formatted as JSON string
    • removeMembership

      public boolean removeMembership(com.atlassian.user.Group group, com.atlassian.user.User user)
      Specified by:
      removeMembership in interface bucket.user.UserAccessor
      Overrides:
      removeMembership in class bucket.user.DefaultUserAccessor
    • addMembershipWithConfirmation

      public boolean addMembershipWithConfirmation(com.atlassian.user.Group group, com.atlassian.user.User user)
      Specified by:
      addMembershipWithConfirmation in interface BambooUserManager
      Returns:
      true iff operation successful
    • setAuthorDao

      public void setAuthorDao(AuthorDao authorDao)
    • setCommentDao

      public void setCommentDao(CommentDao commentDao)
    • setLabelDao

      public void setLabelDao(LabelDao labelDao)
    • setTokenDao

      public void setTokenDao(PasswordResetTokenDao tokenDao)
    • setAclService

      public void setAclService(HibernateMutableAclService aclService)
    • setAclAuthorizationStrategy

      public void setAclAuthorizationStrategy(org.acegisecurity.acls.domain.AclAuthorizationStrategy aclAuthorizationStrategy)
    • setLoginInformationManager

      public void setLoginInformationManager(LoginInformationManager loginInformationManager)
    • setRememberMeTokenDao

      public void setRememberMeTokenDao(com.atlassian.seraph.spi.rememberme.RememberMeTokenDao rememberMeTokenDao)
    • setPropertySetDao

      public void setPropertySetDao(BambooPropertySetDao propertySetDao)
    • setFilteredGroupsProvider

      public void setFilteredGroupsProvider(FilteredGroupsProvider filteredGroupsProvider)
    • setFeatureManager

      public void setFeatureManager(FeatureManager featureManager)
    • setRecoveryModeService

      public void setRecoveryModeService(com.atlassian.crowd.manager.recovery.RecoveryModeService recoveryModeService)
    • setAccessTokenDao

      public void setAccessTokenDao(AccessTokenDao accessTokenDao)
    • setAvatarService

      public void setAvatarService(AvatarService avatarService)
    • setCacheManager

      public void setCacheManager(com.atlassian.cache.CacheManager cacheManager)
    • getGroups

      public com.atlassian.user.search.page.Pager<com.atlassian.user.Group> getGroups()
      Specified by:
      getGroups in interface bucket.user.UserAccessor
      Overrides:
      getGroups in class bucket.user.DefaultUserAccessor
    • loadUserGroups

      protected List<String> loadUserGroups(com.atlassian.user.User user)