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 classRepresents request to change user property.static classUser property change validation result. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetAffectedEntities(UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) Calls validationvalidateUserPropertyChange(UserPropertyChangeRequest)Gets affected entities fromAnonymizationHandlerextension pointprotected ServiceOutcomeWithWarnings<Collection<AffectedEntity>> getAffectedEntitiesFromHandlers(UserPropertyChangeService.UserPropertyChangeRequest<P> userPropertyChangeRequest) protected abstract Stringprotected I18nHelpergetI18nBean(ApplicationUser user) protected abstract UserPropertyChangeManager<H, P> intgetNumberOfTasks(P userPropertyChangeParameter) Returns number of tasks/stages to be executed as part of this handler execution.protected booleanprotected booleanisSysAdmin(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
UserPropertyChangeManagerappropriate 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 anIllegalArgumentExceptionwould 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
AnonymizationHandlerextension 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
-