package org.exoplatform.portal.mop.management.operations; import org.gatein.management.api.exceptions.NotAuthorizedException; import org.gatein.management.api.exceptions.OperationException; import org.gatein.management.api.exceptions.ResourceNotFoundException; import org.gatein.management.api.operation.OperationContext; import org.gatein.management.api.operation.OperationHandler; import org.gatein.management.api.operation.ResultHandler; /** * @author <a href="mailto:nscavell@redhat.com">Nick Scavelli</a> */ public abstract class SecureOperationHandler implements OperationHandler { @Override public final void execute(OperationContext operationContext, ResultHandler resultHandler) throws ResourceNotFoundException, OperationException { // Secure all operations for MOP Management extension to /platform/administrators group. if (!operationContext.getExternalContext().isUserInRole("administrators")) { throw new NotAuthorizedException(operationContext.getUser(), operationContext.getOperationName()); } doExecute(operationContext, resultHandler); } protected abstract void doExecute(OperationContext operationContext, ResultHandler resultHandler) throws ResourceNotFoundException, OperationException; }