com.atlassian.bamboo.user
Class BambooUserManagerImpl

java.lang.Object
  extended by bucket.user.DefaultUserAccessor
      extended by com.atlassian.bamboo.user.BambooUserManagerImpl
All Implemented Interfaces:
bucket.user.UserAccessor, BambooUserManager, com.atlassian.user.search.query.EntityQueryParser, org.acegisecurity.userdetails.UserDetailsService

public class BambooUserManagerImpl
extends bucket.user.DefaultUserAccessor
implements BambooUserManager


Field Summary
 
Fields inherited from class bucket.user.DefaultUserAccessor
DEFAULT_GROUP_NAME, defaultGroup
 
Fields inherited from interface com.atlassian.bamboo.user.BambooUserManager
JABBER_ADDRESS_KEY, USER_IDE_PORT, USER_NOTIFICATION_PREFERENCE, USER_NOTIFICATION_TRANSPORT_PREFERENCE
 
Constructor Summary
BambooUserManagerImpl()
           
 
Method Summary
 BambooUser addUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.util.List<java.lang.String> groups)
          Method that extends the standard addUser methods to also add Bamboo specific params
 BambooUser addUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.util.List<java.lang.String> groups, ExtendedAuthor author)
          Method that extends the standard addUser methods to also add Bamboo specific params
 BambooUser addUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.util.List<java.lang.String> groups, java.util.List<java.lang.Long> authors)
           
 void alterPassword(com.atlassian.user.User user, java.lang.String plainTextPassword)
           
 PasswordResetToken createPasswordResetToken(java.lang.String username)
          Request new one-time token for a user.
 void deletePasswordResetToken(java.lang.String username)
          Deletes existing user token.
 BambooUser findUserWithJabberAddress(java.lang.String jabberAddress)
          Searches for user using specified jabberAddress.
 BambooUser getBambooUser(java.lang.String username)
          Returns a BambooUser of the given username
 BambooUser getBambooUser(com.atlassian.user.User user)
          Returns a BambooUser given a User
 java.util.List<java.lang.String> getGroupNamesAsList(com.atlassian.user.User user)
          Returns groups for the User
 com.atlassian.user.search.page.Pager getGroups()
           
 java.lang.String getJiraIssueDefaults(com.atlassian.user.User user)
           
 java.util.List<java.lang.String> getMemberNamesAsList(com.atlassian.user.Group group)
           
 PasswordResetToken getPasswordResetToken(java.lang.String username)
          Retrieves existing user token.
 com.atlassian.user.User getUser(java.lang.String name)
           
 BambooUser injectUser(BambooUser user)
          A variation of addUser which inserts the encryptedPassword instead - used for importing
 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.
protected  boolean isExternalReadOnly()
           
 boolean isReadOnly(com.atlassian.user.Group group)
          Is this group read only?
 boolean isReadOnly(com.atlassian.user.User user)
          Is this user read only?
 boolean isUserAutocompleteAllowed()
          Determines whether or not we are allowed to do autocompletion for users.
 org.acegisecurity.userdetails.UserDetails loadUserByUsername(java.lang.String username)
           
 void removeGroup(com.atlassian.user.Group group)
           
 void removeUser(com.atlassian.user.User user)
           
 void saveJiraIssueDefaults(com.atlassian.user.User user, java.lang.String jiraIssueDefaults)
          Saves default data use in JIRA issue creation dialog
 void saveNotificationPreferences(java.lang.String username, java.lang.String notificationPreference, java.lang.String notificationTransportPref)
          Save just the notification preferences for the given user
 void saveUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.util.List<java.lang.String> selectedGroups)
          Saves the properties for the given user
 void saveUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.util.List<java.lang.String> groupNames, ExtendedAuthor author)
          Saves the properties for the given user
 void saveUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.util.List<java.lang.String> selectedGroups, ExtendedAuthor author, java.lang.String idePort)
          Saves the properties for the given user
 void saveUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.lang.String notificationPreference, java.lang.String notificationTransportPreference, java.util.List<java.lang.String> selectedGroups, ExtendedAuthor author, java.lang.String idePort)
          Saves the properties for the given user
 void saveUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName, java.lang.String jabberAddress, java.lang.String notificationPreference, java.lang.String notificationTransportPreference, java.util.List<java.lang.String> selectedGroups, java.util.List<java.lang.Long> authors, java.lang.String idePort)
           
 void setAclAuthorizationStrategy(org.acegisecurity.acls.domain.AclAuthorizationStrategy aclAuthorizationStrategy)
           
 void setAclService(HibernateMutableAclService aclService)
           
 void setAuthorDao(AuthorDao authorDao)
           
 void setBambooUserConfiguration(BambooUserConfiguration bambooUserConfiguration)
           
 void setCommentDao(CommentDao commentDao)
           
 void setFilteredGroupsProvider(FilteredGroupsProvider filteredGroupsProvider)
           
 void setLabelDao(LabelDao labelDao)
           
 void setLoginInformationManager(LoginInformationManager loginInformationManager)
           
 void setMembership(com.atlassian.user.Group group, java.util.List<java.lang.String> members)
          Sets a group's members as the passed list
 void setPropertySetDao(BambooPropertySetDao propertySetDao)
           
 void setRememberMeTokenDao(com.atlassian.seraph.spi.rememberme.RememberMeTokenDao rememberMeTokenDao)
           
 void setTokenDao(PasswordResetTokenDao tokenDao)
           
 void setupInitialAdminUser(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String fullName)
          Setup the initial admin user for the Bamboo instance.
static java.lang.String[] stringListToArray(java.util.Collection<java.lang.String> strings)
          Converts a Collection of Strings to an array of Strings
static
<T> java.util.Collection<T>
subtractNewList(java.util.Collection<T> oldList, java.util.Collection<T> newList)
          Works like CollectionUtils.removeAll(Collection,Collection) only that it's null safe
 
Methods inherited from class bucket.user.DefaultUserAccessor
addGroup, addMembership, addMembership, addUser, addUser, authenticate, checkConfiguration, createGroup, createUser, deactivateUser, findGroups, findGroups, findUsers, findUsers, getAuthenticator, getDefaultGroup, getDelegatingRepositories, getEntityQueryParser, getExternallMembers, getGroup, getGroupCreateIfNecessary, getGroupManager, getGroups, getLocalMembers, getMemberNames, getPropertySet, getPropertySetFactory, getRepository, getUserManager, getUserNames, getUserPreferences, getUsers, getUsersByEmail, getUsersWithConfluenceAccess, hasMembership, hasMembership, init, isDeactivated, isDeactivated, isLicensedToAddMoreUsers, isUserRemovable, reactivateUser, removeMembership, removeMembership, removeUserFromAllGroups, saveUser, setAtlassianUserConfiguration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface bucket.user.UserAccessor
addGroup, addMembership, addMembership, addUser, addUser, authenticate, createGroup, createUser, deactivateUser, findUsers, getDefaultGroup, getDelegatingRepositories, getExternallMembers, getGroup, getGroupCreateIfNecessary, getGroups, getLocalMembers, getMemberNames, getPropertySet, getRepository, getUserNames, getUserPreferences, getUsers, getUsersByEmail, getUsersWithConfluenceAccess, hasMembership, hasMembership, isDeactivated, isDeactivated, isLicensedToAddMoreUsers, isUserRemovable, reactivateUser, removeMembership, removeMembership, saveUser, setAtlassianUserConfiguration
 
Methods inherited from interface com.atlassian.user.search.query.EntityQueryParser
findGroups, findGroups, findUsers
 

Constructor Detail

BambooUserManagerImpl

public BambooUserManagerImpl()
Method Detail

getBambooUser

@Nullable
public BambooUser getBambooUser(java.lang.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 BambooUser getBambooUser(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.

getUser

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

addUser

public BambooUser addUser(java.lang.String username,
                          java.lang.String password,
                          java.lang.String email,
                          java.lang.String fullName,
                          java.lang.String jabberAddress,
                          java.util.List<java.lang.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(java.lang.String username,
                          java.lang.String password,
                          java.lang.String email,
                          java.lang.String fullName,
                          java.lang.String jabberAddress,
                          java.util.List<java.lang.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
groups - - List of Strings as the group names. May be null.
Returns:
the created BambooUser object with the created properties

addUser

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

saveUser

public void saveUser(java.lang.String username,
                     java.lang.String password,
                     java.lang.String email,
                     java.lang.String fullName,
                     java.lang.String jabberAddress,
                     java.util.List<java.lang.String> selectedGroups)
              throws java.lang.IllegalArgumentException
Description copied from interface: BambooUserManager
Saves the properties for the given user

Specified by:
saveUser in interface BambooUserManager
selectedGroups - - List of Strings as the group names. May be null.
Throws:
java.lang.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(java.lang.String username,
                     java.lang.String password,
                     java.lang.String email,
                     java.lang.String fullName,
                     java.lang.String jabberAddress,
                     java.util.List<java.lang.String> groupNames,
                     ExtendedAuthor author)
              throws java.lang.IllegalArgumentException
Description copied from interface: BambooUserManager
Saves the properties for the given user

Specified by:
saveUser in interface BambooUserManager
groupNames - - List of Strings as the group names. May be null.
Throws:
java.lang.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(java.lang.String username,
                     java.lang.String password,
                     java.lang.String email,
                     java.lang.String fullName,
                     java.lang.String jabberAddress,
                     java.util.List<java.lang.String> selectedGroups,
                     ExtendedAuthor author,
                     java.lang.String idePort)
              throws java.lang.IllegalArgumentException
Description copied from interface: BambooUserManager
Saves the properties for the given user

Specified by:
saveUser in interface BambooUserManager
Throws:
java.lang.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(java.lang.String username,
                     java.lang.String password,
                     java.lang.String email,
                     java.lang.String fullName,
                     java.lang.String jabberAddress,
                     java.lang.String notificationPreference,
                     java.lang.String notificationTransportPreference,
                     java.util.List<java.lang.String> selectedGroups,
                     ExtendedAuthor author,
                     java.lang.String idePort)
              throws java.lang.IllegalArgumentException
Description copied from interface: BambooUserManager
Saves the properties for the given user

Specified by:
saveUser in interface BambooUserManager
Throws:
java.lang.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(java.lang.String username,
                     @Nullable
                     java.lang.String password,
                     java.lang.String email,
                     java.lang.String fullName,
                     java.lang.String jabberAddress,
                     java.lang.String notificationPreference,
                     java.lang.String notificationTransportPreference,
                     java.util.List<java.lang.String> selectedGroups,
                     @NotNull
                     java.util.List<java.lang.Long> authors,
                     java.lang.String idePort)
              throws java.lang.IllegalArgumentException
Specified by:
saveUser in interface BambooUserManager
Throws:
java.lang.IllegalArgumentException

alterPassword

public void alterPassword(com.atlassian.user.User user,
                          java.lang.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(java.lang.String username,
                                        java.lang.String notificationPreference,
                                        java.lang.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

removeGroup

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

getGroupNamesAsList

public java.util.List<java.lang.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,
                          java.util.List<java.lang.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 java.util.List<java.lang.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> java.util.Collection<T> subtractNewList(java.util.Collection<T> oldList,
                                                          java.util.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 java.lang.String[] stringListToArray(java.util.Collection<java.lang.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
                             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

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

isExternalReadOnly

protected boolean isExternalReadOnly()

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

setupInitialAdminUser

public void setupInitialAdminUser(java.lang.String username,
                                  java.lang.String password,
                                  java.lang.String email,
                                  java.lang.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 PasswordResetToken createPasswordResetToken(java.lang.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 PasswordResetToken getPasswordResetToken(java.lang.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(java.lang.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
                                            java.lang.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 org.acegisecurity.userdetails.UserDetails loadUserByUsername(java.lang.String username)
                                                             throws org.acegisecurity.userdetails.UsernameNotFoundException,
                                                                    org.springframework.dao.DataAccessException
Specified by:
loadUserByUsername in interface org.acegisecurity.userdetails.UserDetailsService
Throws:
org.acegisecurity.userdetails.UsernameNotFoundException
org.springframework.dao.DataAccessException

getJiraIssueDefaults

public java.lang.String getJiraIssueDefaults(@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
                                  com.atlassian.user.User user,
                                  @NotNull
                                  java.lang.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

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)

setBambooUserConfiguration

public void setBambooUserConfiguration(BambooUserConfiguration bambooUserConfiguration)

setFilteredGroupsProvider

public void setFilteredGroupsProvider(FilteredGroupsProvider filteredGroupsProvider)

getGroups

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


Copyright © 2013 Atlassian Software Systems Pty Ltd. All Rights Reserved.