From a5664db4ca6bb73bb796ffe95f842876f336cd6e Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 29 Nov 2017 13:38:37 +0000 Subject: [PATCH] SSDM-5721: allow unspecified person id in PersonUpdate in case of session user SVN: 38989 --- .../v3/executor/person/UpdatePersonExecutor.java | 12 ++++++++++++ .../systemtest/asapi/v3/UpdatePersonTest.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/person/UpdatePersonExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/person/UpdatePersonExecutor.java index 2751d02dc8a..d7d592221ba 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/person/UpdatePersonExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/person/UpdatePersonExecutor.java @@ -34,6 +34,7 @@ import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.IOperationContext; import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.entity.AbstractUpdateEntityExecutor; import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.CommonUtils; import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.batch.MapBatch; +import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.business.bo.DataAccessExceptionTranslator; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IRoleAssignmentDAO; @@ -75,6 +76,17 @@ public class UpdatePersonExecutor @Override protected void checkData(IOperationContext context, PersonUpdate update) { + if (update.getPersonId() == null) + { + PersonPE person = context.getSession().tryGetPerson(); + if (person != null) + { + update.setPersonId(new PersonPermId(person.getUserId())); + } else + { + throw new UserFailureException("Person to be updated not specified."); + } + } } @Override diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdatePersonTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdatePersonTest.java index bddaf75fc03..5c340221bef 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdatePersonTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdatePersonTest.java @@ -108,7 +108,7 @@ public class UpdatePersonTest extends AbstractTest String sessionToken = v3api.login(TEST_GROUP_OBSERVER, PASSWORD); PersonUpdate personUpdate = new PersonUpdate(); PersonPermId personId = new PersonPermId(TEST_GROUP_OBSERVER); - personUpdate.setPersonId(personId); +// personUpdate.setPersonId(personId); personUpdate.setHomeSpaceId(new SpacePermId("TESTGROUP")); // When -- GitLab