Class QuotePublishedStatusHandler
java.lang.Object
com.broadleafcommerce.cartoperation.service.status.AbstractCartStatusChangeHandler
com.broadleafcommerce.cartoperation.service.status.quote.AbstractQuoteCartStatusHandler
com.broadleafcommerce.cartoperation.service.status.quote.QuotePublishedStatusHandler
- All Implemented Interfaces:
CartStatusHandler
Handles a
Cart in or changing to the DefaultQuoteStatuses.PUBLISHED status.-
Field Summary
Fields inherited from class com.broadleafcommerce.cartoperation.service.status.AbstractCartStatusChangeHandler
INACCESSIBLE_CART_STATUS, USER_AUTHENTICATION_FAILED -
Constructor Summary
ConstructorsConstructorDescriptionQuotePublishedStatusHandler(com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils, com.broadleafcommerce.common.extension.TypeFactory typeFactory, QuoteAuthUtils quoteAuthUtils, com.broadleafcommerce.cart.client.properties.QuoteProperties properties) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancanBeReadByUser(@NonNull CartStatusValidationRequest statusValidationRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the cart can be read by the currently authenticated user when the cart's current status isAbstractCartStatusChangeHandler.getStatusToHandle().protected booleancanBeTransitionedToByUser(@NonNull ChangeCartStatusRequest changeStatusRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the cart can be transitioned toAbstractCartStatusChangeHandler.getStatusToHandle()by the currently authenticated user.protected booleancanBeUpdatedByUser(@NonNull CartStatusValidationRequest statusValidationRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Published quote's items should not be edited, must shift intoDefaultQuoteStatuses.EDITINGfirst by the buyer.protected StringgetCartActionType(ChangeCartStatusRequest cartStatusRequest) Hook point to determine the cart action type.protected StringGets the status to handle by this handlergetValidOriginatingStatuses(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Gets a set of valid originating statuses that can transition to theAbstractCartStatusChangeHandler.getStatusToHandle().Methods inherited from class com.broadleafcommerce.cartoperation.service.status.quote.AbstractQuoteCartStatusHandler
addCartActionAuditUserInfo, canHandle, getProperties, getQuoteAuthUtils, isAssignedToThisQuote, isAssignedToThisQuote, isConvertingToQuoteMethods inherited from class com.broadleafcommerce.cartoperation.service.status.AbstractCartStatusChangeHandler
buildCartActionAuditToCreate, getAuthenticationUtils, getPolicyUtils, getTypeFactory, isCartOwner, isCartOwner, postProcessStatusChange, process, processStatusChange, setPolicyUtils, validateOriginatingStatus, validateStatusIsReadableByUser, validateStatusIsUpdatableByUser, validateStatusTransition, validateTransitionRules
-
Constructor Details
-
QuotePublishedStatusHandler
public QuotePublishedStatusHandler(com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils, com.broadleafcommerce.common.extension.TypeFactory typeFactory, QuoteAuthUtils quoteAuthUtils, com.broadleafcommerce.cart.client.properties.QuoteProperties properties)
-
-
Method Details
-
getStatusToHandle
Description copied from class:AbstractCartStatusChangeHandlerGets the status to handle by this handler- Specified by:
getStatusToHandlein classAbstractCartStatusChangeHandler- Returns:
- the status to handle by this handler
-
getValidOriginatingStatuses
protected Set<String> getValidOriginatingStatuses(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractCartStatusChangeHandlerGets a set of valid originating statuses that can transition to theAbstractCartStatusChangeHandler.getStatusToHandle().The valid originating statuses may vary depending on the context and
certain quote configurations.- Specified by:
getValidOriginatingStatusesin classAbstractCartStatusChangeHandler- Parameters:
contextInfo- the contextInfo for the request- Returns:
- a set of valid originating statuses that can transition to the
AbstractCartStatusChangeHandler.getStatusToHandle()
-
canBeReadByUser
protected boolean canBeReadByUser(@NonNull @NonNull CartStatusValidationRequest statusValidationRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractCartStatusChangeHandlerDetermines if the cart can be read by the currently authenticated user when the cart's current status isAbstractCartStatusChangeHandler.getStatusToHandle().This is helpful to restrict certain user types to read a cart in certain statuses.
For example, in a B2B quote context, a sales rep should not be able to read quotes in the
DefaultQuoteStatuses.DRAFTINGstatus, only the cart owner can.- Overrides:
canBeReadByUserin classAbstractCartStatusChangeHandler- Parameters:
statusValidationRequest- theChangeCartStatusRequestto facilitate the cart status changecontextInfo- context information surrounding sandboxing and multitenant state- Returns:
- true if it is readable by the user, otherwise false
-
canBeUpdatedByUser
protected boolean canBeUpdatedByUser(@NonNull @NonNull CartStatusValidationRequest statusValidationRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Published quote's items should not be edited, must shift intoDefaultQuoteStatuses.EDITINGfirst by the buyer.Flows that do not update items are allowed, such as process checkout, update address, etc.
- Overrides:
canBeUpdatedByUserin classAbstractCartStatusChangeHandler- Parameters:
statusValidationRequest- theCartStatusValidationRequestto facilitate the cart status validationcontextInfo- context information surrounding sandboxing and multitenant state- Returns:
- true if it is updatable by the user, otherwise false
-
canBeTransitionedToByUser
protected boolean canBeTransitionedToByUser(@NonNull @NonNull ChangeCartStatusRequest changeStatusRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractCartStatusChangeHandlerDetermines if the cart can be transitioned toAbstractCartStatusChangeHandler.getStatusToHandle()by the currently authenticated user.This is helpful to restrict certain user types to update a cart in certain statuses.
For example, in a B2B quote context, only the sales rep can transition a quote from
DefaultQuoteStatuses.ASSIGNEDtoDefaultQuoteStatuses.PUBLISHED.- Overrides:
canBeTransitionedToByUserin classAbstractCartStatusChangeHandler- Parameters:
changeStatusRequest- theChangeCartStatusRequestto facilitate the cart status changecontextInfo- context information surrounding sandboxing and multitenant state- Returns:
- true if it can be transitioned to the status by the user, otherwise false
-
getCartActionType
Description copied from class:AbstractCartStatusChangeHandlerHook point to determine the cart action type.Returns
DefaultQuoteActionTypes.UNKNOWNby default unless overridden.- Overrides:
getCartActionTypein classAbstractCartStatusChangeHandler- Parameters:
cartStatusRequest- the change cart status request- Returns:
DefaultQuoteActionTypes.UNKNOWNby default unless overridden.
-