public class DefaultUserManager extends Object implements UserManager
UserManager.UserState
Modifier and Type | Field and Description |
---|---|
static long |
UNKNOWN_DIRECTORY_ID |
static long |
UNKNOWN_USER_ID |
Constructor and Description |
---|
DefaultUserManager(com.atlassian.crowd.embedded.api.CrowdService crowdService,
com.atlassian.crowd.embedded.api.CrowdDirectoryService crowdDirectoryService,
com.atlassian.crowd.manager.directory.DirectoryManager directoryManager,
UserKeyStore userKeyStore,
com.atlassian.crowd.manager.application.ApplicationManager applicationManager,
ApplicationProperties applicationProperties,
ExtendedUserDao userDao) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDirectoryUpdateUserPassword(com.atlassian.crowd.embedded.api.Directory directory)
Checks if the given directory is able to update user passwords.
|
boolean |
canRenameUser(ApplicationUser user)
Test if this user can be renamed.
|
boolean |
canUpdateGroupMembershipForUser(ApplicationUser user)
Test if this user's group membership can be updated, i.e.
|
boolean |
canUpdateUser(ApplicationUser user)
Test if this user can be updated, i.e.
|
boolean |
canUpdateUserPassword(ApplicationUser user)
Test if this user's password can be updated, i.e.
|
ApplicationUser |
createUser(UserDetails userData)
Creates a user in the specified directory (userDirectoryId).
|
ApplicationUser |
findUserInDirectory(String userName,
Long directoryId)
Returns a
User based on user name and directoryId |
String |
generateRandomPassword()
Generates a random password that can be used when the admin has entered a blank password.
|
Collection<ApplicationUser> |
getAllApplicationUsers()
Returns all users defined in JIRA, regardless of whether they are active or not.
|
Set<com.atlassian.crowd.embedded.api.Group> |
getAllGroups()
Returns all groups defined in JIRA.
|
Set<ApplicationUser> |
getAllUsers()
Returns all users defined in JIRA, regardless of whether they are active or not.
|
Optional<com.atlassian.crowd.embedded.api.Directory> |
getDefaultCreateDirectory()
Get the
Directory in which users will be created by default |
com.atlassian.crowd.embedded.api.Directory |
getDirectory(Long directoryId) |
com.atlassian.crowd.embedded.api.Group |
getGroup(String groupName)
Returns a
Group based on user name. |
com.atlassian.crowd.embedded.api.Group |
getGroupObject(String groupName)
Returns a
Group based on user name. |
Collection<com.atlassian.crowd.embedded.api.Group> |
getGroups()
Returns all groups defined in JIRA.
|
int |
getTotalUserCount()
Returns the total number of users defined in JIRA, regardless of whether they are active or not.
|
ApplicationUser |
getUser(String userName)
Returns a
User based on user name. |
Optional<ApplicationUser> |
getUserById(Long id)
Returns a user based in id.
|
ApplicationUser |
getUserByKey(String key)
Returns an
ApplicationUser based on user key. |
ApplicationUser |
getUserByKeyEvenWhenUnknown(String userKey)
Returns an
ApplicationUser based on user key. |
ApplicationUser |
getUserByName(String username)
Returns an
ApplicationUser based on user name. |
ApplicationUser |
getUserByNameEvenWhenUnknown(String userName)
Returns an
ApplicationUser based on user name. |
ApplicationUser |
getUserEvenWhenUnknown(String userName)
Returns a
User based on user name. |
Optional<UserIdentity> |
getUserIdentityById(Long id)
Returns an identity of the user with the specified id.
|
Optional<UserIdentity> |
getUserIdentityByKey(String key)
Returns an identity of the user with the specified key.
|
Optional<UserIdentity> |
getUserIdentityByUsername(String username)
Returns an identity of the user with the specified username.
|
ApplicationUser |
getUserObject(String userName)
Returns a
User based on user name. |
Collection<ApplicationUser> |
getUsers()
Returns all users defined in JIRA, regardless of whether they are active or not.
|
UserManager.UserState |
getUserState(ApplicationUser user)
This convenience method is equivalent to
getUserState(user.getUsername(), user.getDirectoryId())
except that a null user is permitted and returns UserManager.UserState.INVALID_USER . |
UserManager.UserState |
getUserState(String username,
long queryDirectoryId)
Checks for the existence of this user across all directories to determine
whether or not the user exists in the specified directory and whether or not
it is shadowing or shadowed by a user with the same username in another
active user directory.
|
List<com.atlassian.crowd.embedded.api.Directory> |
getWritableDirectories()
Returns an ordered list of directories that have "read-write" permission.
|
boolean |
hasGroupWritableDirectory()
Returns true if any of the directories have permission to update groups.
|
boolean |
hasPasswordWritableDirectory()
Returns true if any of the directories have permission to update user passwords, false if otherwise.
|
boolean |
hasWritableDirectory()
Returns true if at least one User Directory has "read-write" permission.
|
boolean |
isUserDeleted(ApplicationUser user)
Checks if given user is deleted user.
|
boolean |
isUserExisting(ApplicationUser user)
Checks if given user is existing user
|
void |
updateUser(ApplicationUser user)
Updates the
ApplicationUser . |
boolean |
userCanUpdateOwnDetails(ApplicationUser user)
Check if this user is allowed to update their own user details.
|
public static final long UNKNOWN_USER_ID
public static final long UNKNOWN_DIRECTORY_ID
public DefaultUserManager(com.atlassian.crowd.embedded.api.CrowdService crowdService, com.atlassian.crowd.embedded.api.CrowdDirectoryService crowdDirectoryService, com.atlassian.crowd.manager.directory.DirectoryManager directoryManager, UserKeyStore userKeyStore, com.atlassian.crowd.manager.application.ApplicationManager applicationManager, ApplicationProperties applicationProperties, ExtendedUserDao userDao)
public int getTotalUserCount()
UserManager
getTotalUserCount
in interface UserManager
@Nonnull public Collection<ApplicationUser> getUsers()
UserManager
Legacy synonym for UserManager.getAllUsers()
.
getUsers
in interface UserManager
UserManager.getAllUsers()
@Nonnull public Collection<ApplicationUser> getAllApplicationUsers()
UserManager
getAllApplicationUsers
in interface UserManager
@Nonnull public Set<ApplicationUser> getAllUsers()
UserManager
getAllUsers
in interface UserManager
public ApplicationUser getUser(String userName)
UserManager
User
based on user name.
getUser
in interface UserManager
userName
- the user name of the userpublic ApplicationUser getUserObject(@Nullable String userName)
UserManager
User
based on user name.
getUserObject
in interface UserManager
userName
- the user name of the userpublic ApplicationUser findUserInDirectory(String userName, Long directoryId)
UserManager
User
based on user name and directoryIdfindUserInDirectory
in interface UserManager
userName
- the user name of the userdirectoryId
- the Directory to look inpublic ApplicationUser getUserEvenWhenUnknown(String userName)
UserManager
User
based on user name.
If a null username is passed, then a null User object is returned, but it is guaranteed to return a non-null User in all other cases.
If the username is not null, but the User is not found then a proxy unknown immutable User object is returned.
getUserEvenWhenUnknown
in interface UserManager
userName
- the user name of the userpublic Optional<ApplicationUser> getUserById(Long id)
UserManager
getUserById
in interface UserManager
id
- user idpublic ApplicationUser getUserByKey(String key)
UserManager
ApplicationUser
based on user key.getUserByKey
in interface UserManager
key
- the key of the userpublic ApplicationUser getUserByName(String username)
UserManager
ApplicationUser
based on user name.getUserByName
in interface UserManager
username
- the user name of the userpublic ApplicationUser getUserByKeyEvenWhenUnknown(@Nullable String userKey)
UserManager
ApplicationUser
based on user key.
If you want to check if given user is known user - please use UserManager.isUserExisting(com.atlassian.jira.user.ApplicationUser)
getUserByKeyEvenWhenUnknown
in interface UserManager
userKey
- the key of the userpublic ApplicationUser getUserByNameEvenWhenUnknown(@Nullable String userName)
UserManager
ApplicationUser
based on user name.
If you want to check if given user is known user - please use UserManager.isUserExisting(com.atlassian.jira.user.ApplicationUser)
getUserByNameEvenWhenUnknown
in interface UserManager
userName
- the user name of the userpublic boolean canUpdateUser(ApplicationUser user)
UserManager
canUpdateUser
in interface UserManager
user
- The user to update.public boolean userCanUpdateOwnDetails(@Nonnull ApplicationUser user)
UserManager
Returns true if the given user is in a read-write directory AND the "External user management" setting is off.
userCanUpdateOwnDetails
in interface UserManager
user
- The userpublic boolean canRenameUser(ApplicationUser user)
UserManager
UserManager.canUpdateUser(ApplicationUser)
,
renaming a user is only allowed when:
INTERNAL
or DELEGATING
user directory;
ANDAPKeys.JIRA_OPTION_USER_CROWD_ALLOW_RENAME
is enabled to bypass this check.canRenameUser
in interface UserManager
user
- The user to rename.null
and can be renamed.public void updateUser(ApplicationUser user)
UserManager
ApplicationUser
. The user must have non-null names and email address. If the user's name
does not match the name that is currently associated with the key
, then
this is implicitly treated as a request to rename the user.updateUser
in interface UserManager
user
- The user to update.public boolean canUpdateUserPassword(ApplicationUser user)
UserManager
If the "External user management", or "External password management" setting is on, then you cannot update the password.
canUpdateUserPassword
in interface UserManager
user
- The user to update.null
and the user's password can be updated.public boolean canUpdateGroupMembershipForUser(ApplicationUser user)
UserManager
canUpdateGroupMembershipForUser
in interface UserManager
user
- The user to update.null
and can be updated.public Collection<com.atlassian.crowd.embedded.api.Group> getGroups()
UserManager
Legacy synonym for UserManager.getAllGroups()
.
getGroups
in interface UserManager
UserManager.getAllGroups()
public Set<com.atlassian.crowd.embedded.api.Group> getAllGroups()
UserManager
Warning: previous incarnations of this method returned com.opensymphony.user.User
. This class
has now been removed from the JIRA API, meaning that the 5.0 version is not binary or source compatible with
earlier versions.
getAllGroups
in interface UserManager
public com.atlassian.crowd.embedded.api.Group getGroup(String groupName)
UserManager
Group
based on user name.
Warning: previous incarnations of this method returned com.opensymphony.user.User
. This class
has now been removed from the JIRA API, meaning that the 5.0 version is not binary or source compatible with
earlier versions.
getGroup
in interface UserManager
groupName
- the user name of the grouppublic com.atlassian.crowd.embedded.api.Group getGroupObject(@Nullable String groupName)
UserManager
Group
based on user name.
Legacy synonym for UserManager.getGroup(String)
.
getGroupObject
in interface UserManager
groupName
- the user name of the groupUserManager.getGroup(String)
@Nonnull public List<com.atlassian.crowd.embedded.api.Directory> getWritableDirectories()
UserManager
getWritableDirectories
in interface UserManager
UserManager.hasWritableDirectory()
@Nonnull public Optional<com.atlassian.crowd.embedded.api.Directory> getDefaultCreateDirectory()
UserManager
Directory
in which users will be created by defaultgetDefaultCreateDirectory
in interface UserManager
Directory
or Option.none()
in case there is no writable directoriespublic boolean hasWritableDirectory()
UserManager
This is equivalent to:
getWritableDirectories().size() > 0
hasWritableDirectory
in interface UserManager
UserManager.getWritableDirectories()
,
UserManager.hasPasswordWritableDirectory()
,
UserManager.hasGroupWritableDirectory()
public boolean hasPasswordWritableDirectory()
UserManager
Note that this is not quite the same as UserManager.hasWritableDirectory()
because of "Internal with LDAP Authentication" directories.
These directories are generally read-write but passwords are read-only.
hasPasswordWritableDirectory
in interface UserManager
UserManager.hasWritableDirectory()
public boolean hasGroupWritableDirectory()
UserManager
Note that this will not always return the same results as UserManager.hasWritableDirectory()
because you can set "Read-Only with Local Groups" to LDAP directories.
These directories are generally read-only but you can create local gropus and assign users to them.
hasGroupWritableDirectory
in interface UserManager
UserManager.hasWritableDirectory()
public com.atlassian.crowd.embedded.api.Directory getDirectory(Long directoryId)
getDirectory
in interface UserManager
public boolean isUserExisting(ApplicationUser user)
UserManager
isUserExisting
in interface UserManager
user
- possible existing user object - i.e. received from UserManager.getUserByKeyEvenWhenUnknown(String)
or UserManager.getUserByNameEvenWhenUnknown(String)
true
if given user is real user, false
otherwise (also when given object is null
)UserManager.getUserByKeyEvenWhenUnknown(String)
,
UserManager.getUserByNameEvenWhenUnknown(String)
public boolean isUserDeleted(@Nullable ApplicationUser user)
UserManager
isUserDeleted
in interface UserManager
user
- possible deleted user object - i.e. received from UserManager.getUserByKeyEvenWhenUnknown(String)
or UserManager.getUserByNameEvenWhenUnknown(String)
true
if given user is user existing in app_users DB table but does not exist in crowd, false
otherwise (also when given object is null
)UserManager.getUserByKeyEvenWhenUnknown(String)
,
UserManager.getUserByNameEvenWhenUnknown(String)
@Nonnull public String generateRandomPassword()
UserManager
The password is guaranteed to contain at least one upper-case letter, lower-case letter and number in case the backend user Directory has password restrictions.
generateRandomPassword
in interface UserManager
public boolean canDirectoryUpdateUserPassword(com.atlassian.crowd.embedded.api.Directory directory)
UserManager
canDirectoryUpdateUserPassword
in interface UserManager
directory
- the Directory@Nonnull public UserManager.UserState getUserState(@Nullable ApplicationUser user)
UserManager
getUserState(user.getUsername(), user.getDirectoryId())
except that a null
user is permitted and returns UserManager.UserState.INVALID_USER
.getUserState
in interface UserManager
user
- the user to check@Nonnull public UserManager.UserState getUserState(@Nonnull String username, long queryDirectoryId)
UserManager
getUserState
in interface UserManager
username
- the username to checkqueryDirectoryId
- the directory ID of the user directory that the user came from@Nonnull public ApplicationUser createUser(@Nonnull UserDetails userData) throws CreateException, PermissionException
UserManager
Option.none()
,
the user is created in the default directory (usually an Embedded Crowd internal directory).createUser
in interface UserManager
userData
- the user request containing user details.CreateException
- unable to create user.PermissionException
- unable to create user due to permission error.public Optional<UserIdentity> getUserIdentityById(Long id)
UserManager
getUserIdentityById
in interface UserManager
id
- user idpublic Optional<UserIdentity> getUserIdentityByKey(String key)
UserManager
getUserIdentityByKey
in interface UserManager
key
- user keypublic Optional<UserIdentity> getUserIdentityByUsername(String username)
UserManager
getUserIdentityByUsername
in interface UserManager
username
- user nameCopyright © 2002-2022 Atlassian. All Rights Reserved.