com.atlassian.jira.bc.user
Interface UserService

All Known Implementing Classes:
DefaultUserService

@PublicApi
public interface UserService

UserService provides User manipulation methods exposed for remote API and actions.

Since:
v4.0

Nested Class Summary
static class UserService.CreateUsernameValidationResult
           
static class UserService.CreateUserValidationResult
           
static class UserService.DeleteUserValidationResult
           
static class UserService.FieldName
           
static class UserService.UpdateUserValidationResult
           
 
Method Summary
 com.atlassian.crowd.embedded.api.User createUserFromSignup(UserService.CreateUserValidationResult result)
          Given a valid validation result, this will create the user using the details provided in the validation result.
 com.atlassian.crowd.embedded.api.User createUserNoNotification(UserService.CreateUserValidationResult result)
          Given a valid validation result, this will create the user using the details provided in the validation result.
 com.atlassian.crowd.embedded.api.User createUserWithNotification(UserService.CreateUserValidationResult result)
          Given a valid validation result, this will create the user using the details provided in the validation result.
 void removeUser(ApplicationUser loggedInUser, UserService.DeleteUserValidationResult result)
          Given a valid validation result, this will remove the user and removes the user from all the groups.
 void removeUser(com.atlassian.crowd.embedded.api.User loggedInUser, UserService.DeleteUserValidationResult result)
          Deprecated. Use removeUser(ApplicationUser, DeleteUserValidationResult) instead. Since v6.0.
 void updateUser(UserService.UpdateUserValidationResult updateUserValidationResult)
          Execute the update using the validation result from validateUpdateUser(User).
 UserService.CreateUserValidationResult validateCreateUserForAdmin(com.atlassian.crowd.embedded.api.User user, String username, String password, String confirmPassword, String email, String fullname)
          Validates creating a user for the admin section.
 UserService.CreateUserValidationResult validateCreateUserForAdmin(com.atlassian.crowd.embedded.api.User user, String username, String password, String confirmPassword, String email, String fullname, Long directoryId)
          Validates creating a user for the admin section.
 UserService.CreateUserValidationResult validateCreateUserForAdminPasswordRequired(com.atlassian.crowd.embedded.api.User user, String username, String password, String confirmPassword, String email, String fullname)
          Validates creating a user for RPC calls.
 UserService.CreateUserValidationResult validateCreateUserForSetup(com.atlassian.crowd.embedded.api.User loggedInUser, String username, String password, String confirmPassword, String email, String fullname)
          Validates creating a user during setup of JIRA.
 UserService.CreateUserValidationResult validateCreateUserForSignup(com.atlassian.crowd.embedded.api.User loggedInUser, String username, String password, String confirmPassword, String email, String fullname)
          Validates creating a user during public signup.
 UserService.CreateUserValidationResult validateCreateUserForSignupOrSetup(com.atlassian.crowd.embedded.api.User user, String username, String password, String confirmPassword, String email, String fullname)
          Deprecated. Use validateCreateUserForSignup(com.atlassian.crowd.embedded.api.User, String, String, String, String, String) or validateCreateUserForSetup(com.atlassian.crowd.embedded.api.User, String, String, String, String, String) instead. Since v5.0.
 UserService.CreateUsernameValidationResult validateCreateUsername(com.atlassian.crowd.embedded.api.User loggedInUser, String username)
          Validates the username for a new user.
 UserService.CreateUsernameValidationResult validateCreateUsername(com.atlassian.crowd.embedded.api.User loggedInUser, String username, Long directoryId)
          Validates the username for a new user.
 UserService.DeleteUserValidationResult validateDeleteUser(ApplicationUser loggedInUser, ApplicationUser userForDelete)
          Validates removing a user for the admin section.
 UserService.DeleteUserValidationResult validateDeleteUser(ApplicationUser loggedInUser, String username)
          Validates removing a user for the admin section.
 UserService.DeleteUserValidationResult validateDeleteUser(com.atlassian.crowd.embedded.api.User loggedInUser, String username)
          Deprecated. Use validateDeleteUser(ApplicationUser, String) or validateDeleteUser(ApplicationUser, ApplicationUser) instead. Since v6.0.
 UserService.UpdateUserValidationResult validateUpdateUser(ApplicationUser user)
          Validates updating a user's details.
 UserService.UpdateUserValidationResult validateUpdateUser(com.atlassian.crowd.embedded.api.User user)
          Deprecated. Use validateUpdateUser(com.atlassian.jira.user.ApplicationUser) instead. Since v6.0.
 

Method Detail

validateCreateUserForSignup

UserService.CreateUserValidationResult validateCreateUserForSignup(com.atlassian.crowd.embedded.api.User loggedInUser,
                                                                   String username,
                                                                   String password,
                                                                   String confirmPassword,
                                                                   String email,
                                                                   String fullname)
Validates creating a user during public signup. This method checks that there is a writable User Directory available. It also validates that all parameters (username, email, fullname, password) have been provided. Email is also checked to ensure that it is a valid email address. The username is required to be lowercase characters only and unique. The confirmPassword has to match the password provided.

This validation differs from the 'ForAdminPasswordRequired' and 'ForAdmin' validations as follows:


validateCreateUserForSetup

UserService.CreateUserValidationResult validateCreateUserForSetup(com.atlassian.crowd.embedded.api.User loggedInUser,
                                                                  String username,
                                                                  String password,
                                                                  String confirmPassword,
                                                                  String email,
                                                                  String fullname)
Validates creating a user during setup of JIRA. This method does not check for a writable User Directory because the embedded crowd subsystem will not be initialised, and we know we will just have an Internal Directory during Setup. It also validates that all parameters (username, email, fullname, password) have been provided. Email is also checked to ensure that it is a valid email address. The username is required to be lowercase characters only and unique. The confirmPassword has to match the password provided.

This validation differs from the 'ForAdminPasswordRequired' and 'ForAdmin' validations as follows:


validateCreateUserForSignupOrSetup

UserService.CreateUserValidationResult validateCreateUserForSignupOrSetup(com.atlassian.crowd.embedded.api.User user,
                                                                          String username,
                                                                          String password,
                                                                          String confirmPassword,
                                                                          String email,
                                                                          String fullname)
Deprecated. Use validateCreateUserForSignup(com.atlassian.crowd.embedded.api.User, String, String, String, String, String) or validateCreateUserForSetup(com.atlassian.crowd.embedded.api.User, String, String, String, String, String) instead. Since v5.0.

Validates creating a user during setup of JIRA or during public signup. This method checks that there is a writable User Directory available. It also validates that all parameters (username, email, fullname, password) have been provided. Email is also checked to ensure that it is a valid email address. The username is required to be lowercase characters only and unique. The confirmPassword has to match the password provided.

This validation differs from the 'ForAdminPasswordRequired' and 'ForAdmin' validations as follows:


validateCreateUserForAdminPasswordRequired

UserService.CreateUserValidationResult validateCreateUserForAdminPasswordRequired(com.atlassian.crowd.embedded.api.User user,
                                                                                  String username,
                                                                                  String password,
                                                                                  String confirmPassword,
                                                                                  String email,
                                                                                  String fullname)
Validates creating a user for RPC calls. This method checks that external user management is disabled and that the user performing the operation has global admin rights. It also validates that all parameters (username, email, fullname, password) have been provided. Email is also checked to ensure that it is a valid email address. The username is required to be lowercase characters only and unique. The confirmPassword has to match the password provided.

This validation differs from the 'ForSetup' and 'ForAdmin' validations as follows:


validateCreateUserForAdmin

UserService.CreateUserValidationResult validateCreateUserForAdmin(com.atlassian.crowd.embedded.api.User user,
                                                                  String username,
                                                                  String password,
                                                                  String confirmPassword,
                                                                  String email,
                                                                  String fullname)
Validates creating a user for the admin section. This method checks that external user management is disabled and that the user performing the operation has global admin rights. It also validates that all parameters (username, email, fullname) except for the password have been provided. Email is also checked to ensure that it is a valid email address. The username is required to be lowercase characters only and unique. The confirmPassword has to match the password provided.

This validation differs from the 'ForSetup' and 'ForAdminPasswordRequired' validations as follows:

Parameters:
user - The remote user trying to add a new user
username - The username of the new user. Needs to be lowercase and unique.
password - The password for the new user.
confirmPassword - The password confirmation. Needs to match password.
email - The email for the new user. Needs to be a valid email address.
fullname - The full name for the new user
Returns:
a validation result containing appropriate errors or the new user's details
Since:
4.3

validateCreateUserForAdmin

UserService.CreateUserValidationResult validateCreateUserForAdmin(com.atlassian.crowd.embedded.api.User user,
                                                                  String username,
                                                                  String password,
                                                                  String confirmPassword,
                                                                  String email,
                                                                  String fullname,
                                                                  @Nullable
                                                                  Long directoryId)
Validates creating a user for the admin section. This method checks that external user management is disabled and that the user performing the operation has global admin rights. It also validates that all parameters (username, email, fullname) except for the password have been provided. Email is also checked to ensure that it is a valid email address. The username is required to be lowercase characters only and unique. The confirmPassword has to match the password provided.

This method allows the caller to name a directory to create the user in and the directoryId must be valid and represent a Directory with "create user" permission.

This validation differs from the 'ForSetup' and 'ForAdminPasswordRequired' validations as follows:

Parameters:
user - The remote user trying to add a new user
username - The username of the new user. Needs to be lowercase and unique.
password - The password for the new user.
confirmPassword - The password confirmation. Needs to match password.
email - The email for the new user. Needs to be a valid email address.
fullname - The full name for the new user
directoryId - The User Directory
Returns:
a validation result containing appropriate errors or the new user's details
Since:
4.3.2

validateCreateUsername

UserService.CreateUsernameValidationResult validateCreateUsername(com.atlassian.crowd.embedded.api.User loggedInUser,
                                                                  String username)
Validates the username for a new user. The username is required to be lowercase characters only and unique across all directories.

Parameters:
loggedInUser - The remote user trying to add a new user
username - The username of the new user. Needs to be lowercase and unique.
Returns:
a validation result containing appropriate errors
Since:
5.0.4

validateCreateUsername

UserService.CreateUsernameValidationResult validateCreateUsername(com.atlassian.crowd.embedded.api.User loggedInUser,
                                                                  String username,
                                                                  Long directoryId)
Validates the username for a new user. The username is required to be lowercase characters only and unique in the given directory.

Parameters:
loggedInUser - The remote user trying to add a new user
username - The username of the new user. Needs to be lowercase and unique.
directoryId - The directory which the new user is intended to be created in.
Returns:
a validation result containing appropriate errors
Since:
5.0.4

createUserFromSignup

com.atlassian.crowd.embedded.api.User createUserFromSignup(UserService.CreateUserValidationResult result)
                                                           throws PermissionException,
                                                                  CreateException
Given a valid validation result, this will create the user using the details provided in the validation result. Email notification will be send to created user - via UserEventType.USER_SIGNUP event.

Parameters:
result - The validation result
Returns:
The new user object that was created
Throws:
CreateException - if the user could not be created, eg username already exists
PermissionException - If you cannot create users in this directory (it is read-only).
Since:
4.3

createUserWithNotification

com.atlassian.crowd.embedded.api.User createUserWithNotification(UserService.CreateUserValidationResult result)
                                                                 throws PermissionException,
                                                                        CreateException
Given a valid validation result, this will create the user using the details provided in the validation result. Email notification will be send to created user - via UserEventType.USER_CREATED event.

Parameters:
result - The validation result
Returns:
The new user object that was created
Throws:
CreateException - if the user could not be created, eg username already exists
PermissionException - If you cannot create users in this directory (it is read-only).
Since:
4.3

createUserNoNotification

com.atlassian.crowd.embedded.api.User createUserNoNotification(UserService.CreateUserValidationResult result)
                                                               throws PermissionException,
                                                                      CreateException
Given a valid validation result, this will create the user using the details provided in the validation result. No email notification will be send to created user.

Parameters:
result - The validation result
Returns:
The new user object that was created
Throws:
CreateException - if the user could not be created, eg username already exists
PermissionException - If you cannot create users in this directory (it is read-only).
Since:
4.3

validateUpdateUser

UserService.UpdateUserValidationResult validateUpdateUser(com.atlassian.crowd.embedded.api.User user)
Deprecated. Use validateUpdateUser(com.atlassian.jira.user.ApplicationUser) instead. Since v6.0.

Validates updating a user's details.

Parameters:
user - The user details to update
Returns:
A validation result containing any errors and all user details

validateUpdateUser

UserService.UpdateUserValidationResult validateUpdateUser(ApplicationUser user)
Validates updating a user's details.

Parameters:
user - The user details to update
Returns:
A validation result containing any errors and all user details

updateUser

void updateUser(UserService.UpdateUserValidationResult updateUserValidationResult)
Execute the update using the validation result from validateUpdateUser(User).

Parameters:
updateUserValidationResult - Result from the validation, which also contains all the user's details.
Throws:
IllegalStateException - if the validation result contains any errors.

validateDeleteUser

UserService.DeleteUserValidationResult validateDeleteUser(com.atlassian.crowd.embedded.api.User loggedInUser,
                                                          String username)
Deprecated. Use validateDeleteUser(ApplicationUser, String) or validateDeleteUser(ApplicationUser, ApplicationUser) instead. Since v6.0.

Validates removing a user for the admin section. This method checks that external user management is disabled and that the user performing the operation has global admin rights. It also validates that username have been provided.

See validateDeleteUser(ApplicationUser, ApplicationUser) for restrictions.

Parameters:
loggedInUser - The remote user trying to remove a user
username - The username of the user to remove. Needs to be valid
Returns:
a validation result containing appropriate errors or the user object for delete
Since:
4.0

validateDeleteUser

UserService.DeleteUserValidationResult validateDeleteUser(ApplicationUser loggedInUser,
                                                          String username)
Validates removing a user for the admin section. This method checks that external user management is disabled and that the user performing the operation has global admin rights. It also validates that username have been provided.

See validateDeleteUser(ApplicationUser, ApplicationUser) for restrictions.

Parameters:
loggedInUser - The remote user trying to remove a user
username - The username of the user to remove. Needs to be valid
Returns:
a validation result containing appropriate errors or the user object for delete
Since:
6.0

validateDeleteUser

UserService.DeleteUserValidationResult validateDeleteUser(ApplicationUser loggedInUser,
                                                          ApplicationUser userForDelete)
Validates removing a user for the admin section. This method checks that external user management is disabled and that the user performing the operation has global admin rights. It also validates that username have been provided.

Removing the user is not allowed if:

Parameters:
loggedInUser - The remote user trying to remove a user
userForDelete - The user to remove. Needs to be valid
Returns:
a validation result containing appropriate errors or the user object for delete
Since:
6.0

removeUser

void removeUser(com.atlassian.crowd.embedded.api.User loggedInUser,
                UserService.DeleteUserValidationResult result)
Deprecated. Use removeUser(ApplicationUser, DeleteUserValidationResult) instead. Since v6.0.

Given a valid validation result, this will remove the user and removes the user from all the groups. All components lead by user will have lead cleared.

Parameters:
loggedInUser - the user performing operation
result - The validation result

removeUser

void removeUser(ApplicationUser loggedInUser,
                UserService.DeleteUserValidationResult result)
Given a valid validation result, this will remove the user and removes the user from all the groups. All components lead by user will have lead cleared.

Parameters:
loggedInUser - the user performing operation
result - The validation result


Copyright © 2002-2013 Atlassian. All Rights Reserved.