Class UserPropertyChangeService<H extends AnonymizationHandler<P>,P extends TaskContextAware>
java.lang.Object
com.atlassian.jira.user.anonymize.UserPropertyChangeService<H,P>
- Direct Known Subclasses:
OwnershipTransferChangeService
,UserAnonymizationService
,UserKeyChangeService
,UserNameChangeService
public abstract class UserPropertyChangeService<H extends AnonymizationHandler<P>,P extends TaskContextAware>
extends Object
Contains common logic used across user property change services.
- Since:
- v8.3
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Represents request to change user property.static class
User property change validation result. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetAffectedEntities
(UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) Calls validationvalidateUserPropertyChange(UserPropertyChangeRequest)
Gets affected entities fromAnonymizationHandler
extension pointprotected ServiceOutcomeWithWarnings<Collection<AffectedEntity>>
getAffectedEntitiesFromHandlers
(UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) protected abstract String
protected I18nHelper
getI18nBean
(ApplicationUser user) protected abstract UserPropertyChangeManager<H,
P> int
getNumberOfTasks
(P userPropertyChangeParameter) Returns number of tasks/stages to be executed as part of this handler execution.protected boolean
protected boolean
isSysAdmin
(ApplicationUser user) userPropertyChange
(UserPropertyChangeService.UserPropertyChangeValidationResult<P> userPropertyChangeValidationResult) Performs validation (validateUserPropertyChange(UserPropertyChangeRequest)
) Updates user property in JirauserPropertyChangeInOtherEntities
(UserPropertyChangeService.UserPropertyChangeValidationResult<P> userPropertyChangeValidationResult) Changes user property using plugin points (handlers implementingAnonymizationHandler
).validateBusinessLogic
(AnonymizationParameters anonymizationParameters) validateUserPropertyChange
(UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) Validates if user property change is possible.validateUserPropertyChangeInOtherEntities
(UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) Validates if user property change is possible in external entities (using plugin system).
-
Constructor Details
-
UserPropertyChangeService
public UserPropertyChangeService()
-
-
Method Details
-
getManager
- Returns:
- A
UserPropertyChangeManager
appropriate for the user property handled by the implementation
-
getHandlerDescriptionKey
- Returns:
- An i18n key of the description of the handler
-
getNumberOfTasks
Returns number of tasks/stages to be executed as part of this handler execution. The number returned here must be consistent with the number of updates performed as part ofuserPropertyChangeInOtherEntities(UserPropertyChangeValidationResult)
.- Returns:
- Number of tasks/stages to be executed by all handlers
-
validateUserPropertyChange
@Nonnull public abstract UserPropertyChangeService.UserPropertyChangeValidationResult<P> validateUserPropertyChange(@Nonnull UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) Validates if user property change is possible.- Parameters:
userPropertyChangeRequest
- Change user property request.- Returns:
- Validation result.
-
validateUserPropertyChangeInOtherEntities
@Nonnull public abstract UserPropertyChangeService.UserPropertyChangeValidationResult<P> validateUserPropertyChangeInOtherEntities(@Nonnull UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) Validates if user property change is possible in external entities (using plugin system).- Parameters:
userPropertyChangeRequest
- Change user property request.- Returns:
- Validation result.
-
userPropertyChange
@Nonnull public ServiceResult userPropertyChange(@Nonnull UserPropertyChangeService.UserPropertyChangeValidationResult<P> userPropertyChangeValidationResult) - Performs validation (
validateUserPropertyChange(UserPropertyChangeRequest)
) - Updates user property in Jira
validateUserPropertyChange(UserPropertyChangeRequest)
was not called prior to this method anIllegalArgumentException
would get thrown.- Parameters:
userPropertyChangeValidationResult
- The validated result.- Returns:
- User property change result.
- Performs validation (
-
userPropertyChangeInOtherEntities
@Nonnull public ServiceResultWithWarnings userPropertyChangeInOtherEntities(@Nonnull UserPropertyChangeService.UserPropertyChangeValidationResult<P> userPropertyChangeValidationResult) Changes user property using plugin points (handlers implementingAnonymizationHandler
). Errors from handlers are reported in warning map, they don't cause error result.- Parameters:
userPropertyChangeValidationResult
- Validation result.- Returns:
- User property change result.
-
getAffectedEntities
@Nonnull public ServiceOutcomeWithWarnings<Collection<AffectedEntity>> getAffectedEntities(@Nonnull UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) - Calls validation
validateUserPropertyChange(UserPropertyChangeRequest)
- Gets affected entities from
AnonymizationHandler
extension point
AnonymizationHandler.getAffectedEntities(Object)
} are treated as warnings and end up inServiceOutcomeWithWarnings.getWarnings()
- Parameters:
userPropertyChangeRequest
- Change request.- Returns:
- Result containing list of affected entities (
AffectedEntity
).
- Calls validation
-
validateBusinessLogic
@Nonnull public BusinessLogicValidationResult validateBusinessLogic(@Nonnull AnonymizationParameters anonymizationParameters) -
getAffectedEntitiesFromHandlers
@Nonnull protected ServiceOutcomeWithWarnings<Collection<AffectedEntity>> getAffectedEntitiesFromHandlers(@Nonnull UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) -
isAdministrator
-
isSysAdmin
-
getI18nBean
-