Package com.atlassian.bamboo.user
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,org.acegisecurity.userdetails.UserDetailsService
public class BambooUserManagerImpl extends bucket.user.DefaultUserAccessor implements BambooUserManager
-
-
Field Summary
-
Fields inherited from interface com.atlassian.bamboo.user.BambooUserManager
JABBER_ADDRESS_KEY, USER_NOTIFICATION_PREFERENCE, USER_NOTIFICATION_TRANSPORT_PREFERENCE
-
-
Constructor Summary
Constructors Constructor Description BambooUserManagerImpl()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddMembershipWithConfirmation(com.atlassian.user.Group group, com.atlassian.user.User user)BambooUseraddUser(String username, String password, boolean enabled, String email, String fullName, String jabberAddress, List<String> groups, @NotNull List<Long> authors)BambooUseraddUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups)Method that extends the standard addUser methods to also add Bamboo specific paramsBambooUseraddUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups, @NotNull List<Long> authors)BambooUseraddUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups, ExtendedAuthor author)Method that extends the standard addUser methods to also add Bamboo specific paramsvoidalterPassword(com.atlassian.user.User user, String plainTextPassword)booleancanCreateGroups()Whether creation of new groups is allowed.booleancanCreateUsers()Whether creation of new users is allowed.voidcleanupRemovedGroupReferences(@NotNull String groupName)Cleanup all Bamboo-stored data related to a group that is being deleted or has been deleted.voidcleanupRemovedUserReferences(@NotNull String username)Cleanup all Bamboo-stored data related to a user that is being deleted or has been deleted.@NotNull PasswordResetTokencreatePasswordResetToken(String username)Request new one-time token for a user.voiddeletePasswordResetToken(String username)Deletes existing user token.BambooUserfindUserWithJabberAddress(@NotNull String jabberAddress)Searches for user using specified jabberAddress.BambooUsergetBambooUser(@NotNull AccessToken accessToken)Returns aBambooUserwith filled accessToken@Nullable BambooUsergetBambooUser(@Nullable com.atlassian.user.User user)Returns aBambooUsergiven aUser@Nullable BambooUsergetBambooUser(String username)Returns aBambooUserof the given usernameList<String>getGroupNamesAsList(com.atlassian.user.User user)Returns groups for theUsercom.atlassian.user.search.page.Pager<com.atlassian.user.Group>getGroups()StringgetJiraIssueDefaults(@NotNull com.atlassian.user.User user)@NotNull List<String>getMemberNamesAsList(com.atlassian.user.Group group)@Nullable PasswordResetTokengetPasswordResetToken(String username)Retrieves existing user token.@Nullable com.atlassian.user.UsergetUser(String name)BambooUserinjectUser(@NotNull BambooUser user)A variation of addUser which inserts the encryptedPassword instead - used for importingbooleanisDeletable(com.atlassian.user.Group group)Returns true if the given group can be deleted.booleanisDeletable(com.atlassian.user.User user)Is this user deletable?booleanisReadOnly(com.atlassian.user.Group group)Is this group read only?booleanisReadOnly(com.atlassian.user.User user)Is this user read only?booleanisUserAutocompleteAllowed()Determines whether we are allowed to do autocompletion for users.BambooUserloadUserByUsername(String username)Currently should NOT be called during setup/upgrade.protected List<String>loadUserGroups(com.atlassian.user.User user)voidonExternalUserRename(@NotNull String oldUserName, @NotNull String newUserName)voidpostConstruct()voidremoveGroup(com.atlassian.user.Group group)booleanremoveMembership(com.atlassian.user.Group group, com.atlassian.user.User user)voidremoveUser(com.atlassian.user.User user)voidrenameUser(@NotNull String oldUserName, @NotNull String newUserName)voidsaveJiraIssueDefaults(@NotNull com.atlassian.user.User user, @NotNull String jiraIssueDefaults)Saves default data use in JIRA issue creation dialogvoidsaveNotificationPreferences(String username, String notificationPreference, String notificationTransportPref)Save just the notification preferences for the given uservoidsaveUser(String username, @Nullable String password, boolean enabled, String email, String fullName, String jabberAddress, String notificationPreference, String notificationTransportPreference, List<String> selectedGroups, @NotNull List<Long> authors)voidsaveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups)Saves the properties for the given uservoidsaveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups, ExtendedAuthor author)Saves the properties for the given uservoidsetAccessTokenDao(AccessTokenDao accessTokenDao)voidsetAclAuthorizationStrategy(org.acegisecurity.acls.domain.AclAuthorizationStrategy aclAuthorizationStrategy)voidsetAclService(HibernateMutableAclService aclService)voidsetAuthorDao(AuthorDao authorDao)voidsetAvatarService(AvatarService avatarService)voidsetCacheManager(com.atlassian.cache.CacheManager cacheManager)voidsetCommentManager(CommentManager commentManager)voidsetFeatureManager(FeatureManager featureManager)voidsetFilteredGroupsProvider(FilteredGroupsProvider filteredGroupsProvider)voidsetLabelDao(LabelDao labelDao)voidsetLoginInformationManager(LoginInformationManager loginInformationManager)voidsetMembership(com.atlassian.user.Group group, List<String> members)Sets a group's members as the passed listvoidsetPropertySetDao(BambooPropertySetDao propertySetDao)voidsetRecoveryModeService(com.atlassian.crowd.manager.recovery.RecoveryModeService recoveryModeService)voidsetRememberMeTokenDao(com.atlassian.seraph.spi.rememberme.RememberMeTokenDao rememberMeTokenDao)voidsetTokenDao(PasswordResetTokenDao tokenDao)voidsetupInitialAdminUser(String username, String password, String email, String fullName)Setup the initial admin user for the Bamboo instance.static String[]stringListToArray(Collection<String> strings)Converts aCollectionof Strings to an array of Stringsstatic <T> Collection<T>subtractNewList(Collection<T> oldList, Collection<T> newList)Works likeCollectionUtils.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, getUsers, getUsersByEmail, getUsersWithConfluenceAccess, hasMembership, hasMembership, isDeactivated, isDeactivated, isLicensedToAddMoreUsers, isUserRemovable, reactivateUser, 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 com.atlassian.user.search.query.EntityQueryParser
findGroups, findGroups, findUsers
-
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, getUsers, getUsersByEmail, getUsersWithConfluenceAccess, hasMembership, hasMembership, isDeactivated, isDeactivated, isLicensedToAddMoreUsers, isUserRemovable, reactivateUser, removeMembership, saveUser, setAtlassianUserConfiguration
-
-
-
-
Method Detail
-
postConstruct
@PostConstruct public void postConstruct()
-
getBambooUser
@Nullable public @Nullable BambooUser getBambooUser(String username)
Description copied from interface:BambooUserManagerReturns aBambooUserof the given username- Specified by:
getBambooUserin interfaceBambooUserManager- 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:BambooUserManagerReturns aBambooUsergiven aUser- Specified by:
getBambooUserin interfaceBambooUserManager- Returns:
- The wrapped user.
-
getBambooUser
public BambooUser getBambooUser(@NotNull @NotNull AccessToken accessToken)
Description copied from interface:BambooUserManagerReturns aBambooUserwith filled accessToken- Specified by:
getBambooUserin interfaceBambooUserManager- Returns:
- The wrapped user with access token
-
getUser
@Nullable public @Nullable com.atlassian.user.User getUser(String name)
- Specified by:
getUserin interfacebucket.user.UserAccessor- Overrides:
getUserin classbucket.user.DefaultUserAccessor
-
addUser
public BambooUser addUser(String username, String password, String email, String fullName, String jabberAddress, List<String> groups)
Description copied from interface:BambooUserManagerMethod that extends the standard addUser methods to also add Bamboo specific params- Specified by:
addUserin interfaceBambooUserManagergroups- -Listof Strings as the group names. May be null.- Returns:
- the created
BambooUserobject 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:BambooUserManagerMethod that extends the standard addUser methods to also add Bamboo specific params- Specified by:
addUserin interfaceBambooUserManagergroups- -Listof Strings as the group names. May be null.- Returns:
- the created
BambooUserobject 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:
addUserin interfaceBambooUserManager
-
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:
addUserin interfaceBambooUserManager
-
renameUser
public void renameUser(@NotNull @NotNull String oldUserName, @NotNull @NotNull String newUserName)- Specified by:
renameUserin interfaceBambooUserManager
-
onExternalUserRename
public void onExternalUserRename(@NotNull @NotNull String oldUserName, @NotNull @NotNull String newUserName)- Specified by:
onExternalUserRenamein interfaceBambooUserManager
-
saveUser
public void saveUser(String username, String password, String email, String fullName, String jabberAddress, List<String> selectedGroups) throws IllegalArgumentException
Description copied from interface:BambooUserManagerSaves the properties for the given user- Specified by:
saveUserin interfaceBambooUserManagerselectedGroups- -Listof Strings as the group names. May be null.- Throws:
IllegalArgumentException- ifusernamedoes 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:BambooUserManagerSaves the properties for the given user- Specified by:
saveUserin interfaceBambooUserManagerselectedGroups- -Listof Strings as the group names. May be null.- Throws:
IllegalArgumentException- ifusernamedoes 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:
saveUserin interfaceBambooUserManager- Throws:
IllegalArgumentException
-
alterPassword
public void alterPassword(com.atlassian.user.User user, String plainTextPassword) throws com.atlassian.user.EntityException- Specified by:
alterPasswordin interfacebucket.user.UserAccessor- Overrides:
alterPasswordin classbucket.user.DefaultUserAccessor- Throws:
com.atlassian.user.EntityException
-
saveNotificationPreferences
public void saveNotificationPreferences(String username, String notificationPreference, String notificationTransportPref)
Description copied from interface:BambooUserManagerSave just the notification preferences for the given user- Specified by:
saveNotificationPreferencesin interfaceBambooUserManager
-
removeUser
public void removeUser(com.atlassian.user.User user)
- Specified by:
removeUserin interfacebucket.user.UserAccessor- Overrides:
removeUserin classbucket.user.DefaultUserAccessor
-
cleanupRemovedUserReferences
public void cleanupRemovedUserReferences(@NotNull @NotNull String username)Description copied from interface:BambooUserManagerCleanup all Bamboo-stored data related to a user that is being deleted or has been deleted.- Specified by:
cleanupRemovedUserReferencesin interfaceBambooUserManager
-
removeGroup
public void removeGroup(com.atlassian.user.Group group)
- Specified by:
removeGroupin interfacebucket.user.UserAccessor- Overrides:
removeGroupin classbucket.user.DefaultUserAccessor
-
cleanupRemovedGroupReferences
public void cleanupRemovedGroupReferences(@NotNull @NotNull String groupName)Description copied from interface:BambooUserManagerCleanup all Bamboo-stored data related to a group that is being deleted or has been deleted.- Specified by:
cleanupRemovedGroupReferencesin interfaceBambooUserManager
-
getGroupNamesAsList
public List<String> getGroupNamesAsList(com.atlassian.user.User user)
Description copied from interface:BambooUserManagerReturns groups for theUser- Specified by:
getGroupNamesAsListin interfaceBambooUserManager- Parameters:
user- - Must not be null- Returns:
ListofStringrepresenting group names.Collections.emptyList()if none exists
-
setMembership
public void setMembership(com.atlassian.user.Group group, List<String> members)Description copied from interface:BambooUserManagerSets a group's members as the passed list- Specified by:
setMembershipin interfaceBambooUserManager- Parameters:
group- - The group to modify the user list. Cannot be null.members- -Listof usernameStrings. Can be null
-
getMemberNamesAsList
@NotNull public @NotNull List<String> getMemberNamesAsList(com.atlassian.user.Group group)
- Specified by:
getMemberNamesAsListin interfaceBambooUserManager
-
isUserAutocompleteAllowed
public boolean isUserAutocompleteAllowed()
Description copied from interface:BambooUserManagerDetermines whether we are allowed to do autocompletion for users. Currently this will return false if using LDAP, otherwise true- Specified by:
isUserAutocompleteAllowedin interfaceBambooUserManager- Returns:
- true if we are allowed to do autocomplete for users.
-
subtractNewList
public static <T> Collection<T> subtractNewList(Collection<T> oldList, Collection<T> newList)
Works likeCollectionUtils.removeAll(Collection, Collection)only that it's null safe- Parameters:
oldList- - can be nullnewList- - can be null- Returns:
CollectionUtils.removeAll(Collection, Collection). Null lists count as empty lists.
-
stringListToArray
public static String[] stringListToArray(Collection<String> strings)
Converts aCollectionof Strings to an array of Strings- Parameters:
strings- -CollectionofStrings. 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:BambooUserManagerA variation of addUser which inserts the encryptedPassword instead - used for importing- Specified by:
injectUserin interfaceBambooUserManager- Parameters:
user- user data- Returns:
- the created
BambooUserobject with the created properties
-
isDeletable
public boolean isDeletable(com.atlassian.user.User user)
Description copied from interface:BambooUserManagerIs this user deletable? A user may not be deletable because: 1) They are read-only (i.e. the user is externally sourced)- Specified by:
isDeletablein interfaceBambooUserManager- Parameters:
user- user data- Returns:
booleanwhether user deletable
-
isDeletable
public boolean isDeletable(com.atlassian.user.Group group)
Description copied from interface:BambooUserManagerReturns true if the given group can be deleted. Some user directories may be read-only and thus may not permit deleting entities.- Specified by:
isDeletablein interfaceBambooUserManager
-
isReadOnly
public boolean isReadOnly(com.atlassian.user.User user)
Description copied from interface:BambooUserManagerIs this user read only?- Specified by:
isReadOnlyin interfaceBambooUserManager
-
isReadOnly
public boolean isReadOnly(com.atlassian.user.Group group)
Description copied from interface:BambooUserManagerIs this group read only?- Specified by:
isReadOnlyin interfaceBambooUserManager
-
canCreateUsers
public boolean canCreateUsers()
Description copied from interface:BambooUserManagerWhether creation of new users is allowed. Some user directories may be read-only and thus may not permit adding new entities.- Specified by:
canCreateUsersin interfaceBambooUserManager
-
canCreateGroups
public boolean canCreateGroups()
Description copied from interface:BambooUserManagerWhether creation of new groups is allowed. Some user directories may be read-only and thus may not permit adding new entities.- Specified by:
canCreateGroupsin interfaceBambooUserManager
-
setupInitialAdminUser
public void setupInitialAdminUser(String username, String password, String email, String fullName)
Description copied from interface:BambooUserManagerSetup the initial admin user for the Bamboo instance.- Specified by:
setupInitialAdminUserin interfaceBambooUserManager
-
createPasswordResetToken
@NotNull public @NotNull PasswordResetToken createPasswordResetToken(String username)
Description copied from interface:BambooUserManagerRequest new one-time token for a user. Replaces the old one if it exists.- Specified by:
createPasswordResetTokenin interfaceBambooUserManager- Parameters:
username- user login name- Returns:
- freshly created one-time token
-
getPasswordResetToken
@Nullable public @Nullable PasswordResetToken getPasswordResetToken(String username)
Description copied from interface:BambooUserManagerRetrieves existing user token. Returns null if there is none.- Specified by:
getPasswordResetTokenin interfaceBambooUserManager- Parameters:
username- user login name- Returns:
- user token object or null
-
deletePasswordResetToken
public void deletePasswordResetToken(String username)
Description copied from interface:BambooUserManagerDeletes existing user token. Does nothing if there is no token.- Specified by:
deletePasswordResetTokenin interfaceBambooUserManager- Parameters:
username- user login name
-
findUserWithJabberAddress
public BambooUser findUserWithJabberAddress(@NotNull @NotNull String jabberAddress)
Description copied from interface:BambooUserManagerSearches for user using specified jabberAddress.- Specified by:
findUserWithJabberAddressin interfaceBambooUserManager- Parameters:
jabberAddress- address to be matched- Returns:
BambooUseror null if none found
-
loadUserByUsername
public BambooUser loadUserByUsername(String username) throws org.acegisecurity.userdetails.UsernameNotFoundException, org.springframework.dao.DataAccessException
Description copied from interface:BambooUserManagerCurrently 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:
loadUserByUsernamein interfaceBambooUserManager- Specified by:
loadUserByUsernamein interfaceorg.acegisecurity.userdetails.UserDetailsService- Throws:
org.acegisecurity.userdetails.UsernameNotFoundExceptionorg.springframework.dao.DataAccessException
-
getJiraIssueDefaults
public String getJiraIssueDefaults(@NotNull @NotNull com.atlassian.user.User user)
- Specified by:
getJiraIssueDefaultsin interfaceBambooUserManager- 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:BambooUserManagerSaves default data use in JIRA issue creation dialog- Specified by:
saveJiraIssueDefaultsin interfaceBambooUserManager- Parameters:
user- userjiraIssueDefaults- default data formatted as JSON string
-
removeMembership
public boolean removeMembership(com.atlassian.user.Group group, com.atlassian.user.User user)- Specified by:
removeMembershipin interfacebucket.user.UserAccessor- Overrides:
removeMembershipin classbucket.user.DefaultUserAccessor
-
addMembershipWithConfirmation
public boolean addMembershipWithConfirmation(com.atlassian.user.Group group, com.atlassian.user.User user)- Specified by:
addMembershipWithConfirmationin interfaceBambooUserManager- Returns:
- true iff operation successful
-
setAuthorDao
public void setAuthorDao(AuthorDao authorDao)
-
setCommentManager
public void setCommentManager(CommentManager commentManager)
-
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:
getGroupsin interfacebucket.user.UserAccessor- Overrides:
getGroupsin classbucket.user.DefaultUserAccessor
-
-