Skip to content
Snippets Groups Projects
Commit 194a4546 authored by felmer's avatar felmer
Browse files

SSDM-6192: allow home space for users even though they have no access rights

parent 9faa70b3
No related branches found
No related tags found
No related merge requests found
...@@ -29,8 +29,6 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.id.SpacePermId; ...@@ -29,8 +29,6 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.id.SpacePermId;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.IOperationContext; import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.IOperationContext;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.entity.AbstractUpdateEntityToOneRelationExecutor; import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.entity.AbstractUpdateEntityToOneRelationExecutor;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.space.IMapSpaceByIdExecutor; import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.space.IMapSpaceByIdExecutor;
import ch.systemsx.cisd.common.exceptions.UserFailureException;
import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SimpleSpaceValidator;
import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
...@@ -81,11 +79,6 @@ public class UpdateHomeSpaceExecutor ...@@ -81,11 +79,6 @@ public class UpdateHomeSpaceExecutor
@Override @Override
protected void check(IOperationContext context, PersonPE user, ISpaceId relatedId, SpacePE newHomeSpace) protected void check(IOperationContext context, PersonPE user, ISpaceId relatedId, SpacePE newHomeSpace)
{ {
if (new SimpleSpaceValidator().doValidation(user, newHomeSpace) == false)
{
throw new UserFailureException("Can not set " + newHomeSpace.getCode() + " as home space for user '"
+ user.getUserId() + "' because the user has no access rights.");
}
PersonPE sessionUser = context.getSession().tryGetPerson(); PersonPE sessionUser = context.getSession().tryGetPerson();
if (sessionUser.equals(user)) if (sessionUser.equals(user))
{ {
......
...@@ -24,6 +24,7 @@ import org.testng.annotations.DataProvider; ...@@ -24,6 +24,7 @@ import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.Person; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.Person;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.create.PersonCreation;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.fetchoptions.PersonFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.fetchoptions.PersonFetchOptions;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.id.IPersonId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.id.IPersonId;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.id.Me; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.id.Me;
...@@ -44,21 +45,24 @@ public class UpdatePersonTest extends AbstractTest ...@@ -44,21 +45,24 @@ public class UpdatePersonTest extends AbstractTest
{ {
// Given // Given
String sessionToken = v3api.login(TEST_USER, PASSWORD); String sessionToken = v3api.login(TEST_USER, PASSWORD);
PersonCreation personCreation = new PersonCreation();
personCreation.setUserId("user-" + System.currentTimeMillis());
PersonPermId personPermId = v3api.createPersons(sessionToken, Arrays.asList(personCreation)).get(0);
PersonUpdate personUpdate = new PersonUpdate(); PersonUpdate personUpdate = new PersonUpdate();
PersonPermId personId = new PersonPermId("homeless"); personUpdate.setUserId(personPermId);
personUpdate.setUserId(personId);
personUpdate.setSpaceId(new SpacePermId("TEST-SPACE")); personUpdate.setSpaceId(new SpacePermId("TEST-SPACE"));
// When
v3api.updatePersons(sessionToken, Arrays.asList(personUpdate));
assertUserFailureException(new IDelegatedAction() // Then
{ PersonFetchOptions fetchOptions = new PersonFetchOptions();
@Override fetchOptions.withSpace();
public void execute() fetchOptions.withRoleAssignments();
{ Person person = v3api.getPersons(sessionToken, Arrays.asList(personPermId), fetchOptions).get(personPermId);
// When assertEquals(person.getRoleAssignments().size(), 0);
v3api.updatePersons(sessionToken, Arrays.asList(personUpdate)); assertEquals(person.getPermId().getPermId(), personPermId.getPermId());
} assertEquals(person.getSpace().getCode(), "TEST-SPACE");
// Then
}, "Can not set TEST-SPACE as home space for user 'homeless' because the user has no access rights.");
} }
@Test @Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment