From de5fe9403dca75edb1773a66dc2c2395138dad6c Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Fri, 3 Feb 2017 14:10:36 +0000 Subject: [PATCH] SSDM-4686 : v3 canUpdate roles bug - translating AuthorizationFailure into UnauthorizedObject exception SVN: 37679 --- .../executor/entity/AbstractUpdateEntityExecutor.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java index 8946ddd0f2e..1e1ba8d2279 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java @@ -33,6 +33,7 @@ import org.springframework.dao.DataAccessException; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.id.IObjectId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.update.IUpdate; import ch.ethz.sis.openbis.generic.asapi.v3.exceptions.ObjectNotFoundException; +import ch.ethz.sis.openbis.generic.asapi.v3.exceptions.UnauthorizedObjectAccessException; import ch.ethz.sis.openbis.generic.server.asapi.v3.context.IProgress; import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.IOperationContext; import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.batch.Batch; @@ -42,6 +43,7 @@ import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.batch.MapBatch; import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.batch.MapBatchProcessor; import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.entity.progress.CheckAccessProgress; import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.entity.progress.CheckDataProgress; +import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentityHolder; @@ -119,7 +121,14 @@ public abstract class AbstractUpdateEntityExecutor<UPDATE extends IUpdate, PE ex @Override public void process(UPDATE update, PE entity) { - checkAccess(context, getId(update), entity); + ID id = getId(update); + try + { + checkAccess(context, id, entity); + } catch (AuthorizationFailureException ex) + { + throw new UnauthorizedObjectAccessException(id); + } } @Override -- GitLab