diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java index 8d0fb577928e280843817ceafe7514fc9747b92d..cc044907126333d9eaa55480db7500242c75a40d 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java @@ -90,6 +90,37 @@ public class CreateDataSetTest extends AbstractDataSetTest assertDataSetsReindexed(state, permIds.get(0).getPermId()); } + @Test + public void testCreateDSWithAdminUserInAnotherSpace() + { + final DataSetPermId permId = new DataSetPermId("NO_SHALL_CREATE"); + + assertUserFailureException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + + PhysicalDataCreation physicalCreation = new PhysicalDataCreation(); + physicalCreation.setLocation("test/location/" + permId.getPermId()); + physicalCreation.setFileFormatTypeId(new FileFormatTypePermId("TIFF")); + physicalCreation.setLocatorTypeId(new RelativeLocationLocatorTypePermId()); + physicalCreation.setStorageFormatId(new ProprietaryStorageFormatPermId()); + + DataSetCreation creation = new DataSetCreation(); + creation.setCode(permId.getPermId()); + creation.setTypeId(new EntityTypePermId("UNKNOWN")); + creation.setExperimentId(new ExperimentIdentifier("/TEST-SPACE/TEST-PROJECT/EXP_SPACE_TEST")); + creation.setDataStoreId(new DataStorePermId("STANDARD")); + creation.setPhysicalData(physicalCreation); + creation.setCreationId(new CreationId(permId.getPermId())); + + v3api.createDataSets(sessionToken, Collections.singletonList(creation)); + } + }, "Data set creation can be only executed by a system user or a user with at least SPACE_ETL_SERVER role"); + } + @Test public void testCreateWithNonAutogeneratedCodeNull() { @@ -962,8 +993,6 @@ public class CreateDataSetTest extends AbstractDataSetTest } }, "Data set creation can be only executed by a system user or a user with at least SPACE_ETL_SERVER role"); } - - @Test public void testCreateWithUserEtlServer() diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateExperimentTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateExperimentTest.java index 1ecfe9c4b518c706703e658d2c01a37e5dd6df5d..e442e1e008d2942cfea227be83d15119b4842f3c 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateExperimentTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateExperimentTest.java @@ -22,6 +22,7 @@ import static org.testng.Assert.assertTrue; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.List; @@ -36,6 +37,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.id.IEntityTypeId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.Experiment; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.create.ExperimentCreation; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.fetchoptions.ExperimentFetchOptions; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.ExperimentIdentifier; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.ExperimentPermId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.IExperimentId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.IProjectId; @@ -48,7 +50,6 @@ import ch.ethz.sis.openbis.systemtest.asapi.v3.index.ReindexingState; import ch.systemsx.cisd.common.action.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewETPTAssignment; - import junit.framework.Assert; /** @@ -94,6 +95,28 @@ public class CreateExperimentTest extends AbstractExperimentTest }, "Code cannot be empty"); } + @Test + public void testCreateWithAdminUserInAnotherSpace() + { + final String code = "WILL-FAIL"; + final ExperimentIdentifier identifier = new ExperimentIdentifier("/TEST-SPACE/NOE/" + code); + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + + final ExperimentCreation experiment = new ExperimentCreation(); + experiment.setTypeId(new EntityTypePermId("SIRNA_HCS")); + experiment.setProjectId(new ProjectIdentifier("/TEST-SPACE/NOE")); + experiment.setCode(code); + + v3api.createExperiments(sessionToken, Collections.singletonList(experiment)); + } + }, identifier); + } + @Test public void testCreateWithCodeExisting() { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateProjectTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateProjectTest.java index bfd8df35022d3514c8ebfceb4602ebcc0035418c..904d1bee66dd8168bf47a52915d1bbc91f513309 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateProjectTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateProjectTest.java @@ -19,6 +19,7 @@ package ch.ethz.sis.openbis.systemtest.asapi.v3; import static org.testng.Assert.assertEquals; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -140,6 +141,26 @@ public class CreateProjectTest extends AbstractTest }, spaceId); } + @Test + public void testCreateProjectWithAdminUserInAnotherSpace() + { + + final ISpaceId spaceId = new SpacePermId("TEST-SPACE"); + final ProjectCreation project = new ProjectCreation(); + project.setCode("TEST_PROJECT_FAIL"); + project.setSpaceId(spaceId); + + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + v3api.createProjects(sessionToken, Collections.singletonList(project)); + } + }, spaceId); + } + @Test public void testCreateWithSpaceNonexistent() { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateSampleTest.java index ee9faa8a9cb50d26ce250853cda9314bfc87ccd5..d80c1b2f63d6feb118db0c46e231a000ffb23a4d 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateSampleTest.java @@ -53,7 +53,6 @@ import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.batch.Batch; import ch.ethz.sis.openbis.systemtest.asapi.v3.index.ReindexingState; import ch.systemsx.cisd.common.action.IDelegatedAction; import ch.systemsx.cisd.common.test.AssertionUtil; - import junit.framework.Assert; /** @@ -122,6 +121,30 @@ public class CreateSampleTest extends AbstractSampleTest AssertionUtil.assertCollectionSize(sampleWithAutogeneratedCode, 2); } + @Test + public void testCreateSampleWithAdminUserInAnotherSpace() + { + final String code = "TEST_TO_FAIL"; + final SampleIdentifier identifier = new SampleIdentifier("/TEST-SPACE/" + code); + + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + + SampleCreation creation = new SampleCreation(); + creation.setCode(code); + creation.setTypeId(new EntityTypePermId("CELL_PLATE")); + creation.setSpaceId(new SpacePermId("TEST-SPACE")); + creation.setCreationId(new CreationId("creation " + code)); + + v3api.createSamples(sessionToken, Collections.singletonList(creation)); + } + }, identifier); + } + @Test public void testCreateWithCodeExisting() { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteDataSetTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteDataSetTest.java index ffcb34fb3fd1bea78bef750d12b74ed4365fab12..548f9d15c59a8b8e36b439fd599a3ea4c4ba51f2 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteDataSetTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteDataSetTest.java @@ -119,7 +119,7 @@ public class DeleteDataSetTest extends AbstractDeletionTest } @Test - public void testDeleteDSWithPowerUserInAnotherSpace() + public void testDeleteDSWithAdminUserInAnotherSpace() { final DataSetPermId permId = new DataSetPermId("20120619092259000-22"); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteExperimentTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteExperimentTest.java index 2853224f1ec9502e10b965e4e43eb9ebacc14a85..d77f8af4ca68e89e02e0e3c14cb96028ff192b19 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteExperimentTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteExperimentTest.java @@ -165,7 +165,7 @@ public class DeleteExperimentTest extends AbstractDeletionTest } @Test - public void testExperimentWithPowerUserInAnotherSpace() + public void testExperimentWithAdminUserInAnotherSpace() { final ExperimentPermId permId = new ExperimentPermId("200902091255058-1037"); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteProjectTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteProjectTest.java index 7c4361b4c743333016aea58b2224fd35601c6094..443dad3580c2ab35bf5c1115841592de47ba0be9 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteProjectTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteProjectTest.java @@ -104,7 +104,7 @@ public class DeleteProjectTest extends AbstractDeletionTest } @Test - public void testDeleteProjectWithPowerUserInAnotherSpace() + public void testDeleteProjectWithAdminUserInAnotherSpace() { final ProjectPermId permId = new ProjectPermId("20120814110011738-105"); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteSampleTest.java index 427077d5b12b6ef2b413c59bf30999ca506a07f0..a552e91f27608559b576d7e2dde04d855c06c394 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/DeleteSampleTest.java @@ -57,7 +57,7 @@ public class DeleteSampleTest extends AbstractDeletionTest } @Test - public void testDeleteSampleWithPowerUserInAnotherSpace() + public void testDeleteSampleWithAdminUserInAnotherSpace() { final SamplePermId permId = new SamplePermId("200902091250077-1060"); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java index 11bb12ad8cc0d8bf65b26f5cbd658e0fa2f127dd..d742a26f9c545d9ba6b739d364fc4565da657131 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java @@ -106,6 +106,26 @@ public class UpdateDataSetTest extends AbstractSampleTest assertEquals(result.getProperties().get("COMMENT"), "Updated description"); } + @Test + public void testUpdateDSWithAdminUserInAnotherSpace() + { + final DataSetPermId permId = new DataSetPermId("20120619092259000-22"); + + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + + DataSetUpdate update = new DataSetUpdate(); + update.setDataSetId(permId); + + v3api.updateDataSets(sessionToken, Collections.singletonList(update)); + } + }, permId); + } + @Test public void testUpdateWithDataSetNonexistent() { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java index 8e32bbb16bd4183d302977af01addfd2f8b425bf..7e0cb3c68595b1ef24ccc994f7f9168cf802f8d6 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java @@ -20,6 +20,7 @@ import static org.testng.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -692,6 +693,26 @@ public class UpdateExperimentTest extends AbstractExperimentTest }, tagId); } + @Test + public void testUpdateWithAdminUserInAnotherSpace() + { + final ExperimentPermId permId = new ExperimentPermId("200902091255058-1037"); + + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + + final ExperimentUpdate update = new ExperimentUpdate(); + update.setExperimentId(permId); + + v3api.updateExperiments(sessionToken, Collections.singletonList(update)); + } + }, permId); + } + private ExperimentPermId createExperimentWithoutAttachments() { final String sessionToken = v3api.login(TEST_USER, PASSWORD); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateProjectTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateProjectTest.java index b5996314cf36296b340b452f68b0094367ca8a89..f266e3eecdca913109e2d916fad73c448f54d54d 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateProjectTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateProjectTest.java @@ -16,10 +16,11 @@ package ch.ethz.sis.openbis.systemtest.asapi.v3; -import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -85,6 +86,24 @@ public class UpdateProjectTest extends AbstractTest }, projectId); } + @Test + public void testUpdateProjectWithAdminUserInAnotherSpace() + { + final IProjectId projectId = new ProjectIdentifier("/TEST-SPACE/TEST-PROJECT"); + final ProjectUpdate update = new ProjectUpdate(); + update.setProjectId(projectId); + + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + v3api.updateProjects(sessionToken, Collections.singletonList(update)); + } + }, projectId); + } + @Test public void testUpdateWithProjectNonexistent() { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java index ace8542abf8e631aee2aef919be78fcb750e1421..af3540354de679c5e9b387c11662badc6fa8401c 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java @@ -22,6 +22,7 @@ import static org.testng.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -744,7 +745,8 @@ public class UpdateSampleTest extends AbstractSampleTest { v3api.updateSamples(sessionToken, Arrays.asList(update)); } - }, "/CISD/A01:CL1 (perm id: 200811050919915-8) cannot be it's own container", patternContains("verifying (1/1)", toDblQuotes("'identifier' : '/CISD/A01:CL1'"))); + }, "/CISD/A01:CL1 (perm id: 200811050919915-8) cannot be it's own container", + patternContains("verifying (1/1)", toDblQuotes("'identifier' : '/CISD/A01:CL1'"))); } @Test @@ -920,8 +922,8 @@ public class UpdateSampleTest extends AbstractSampleTest { v3api.updateSamples(sessionToken, Arrays.asList(update)); } - }, "/CISD/CL1:A01 (perm id: 200811050919915-9) cannot be it's own container", - patternContains("verifying (1/1)", toDblQuotes("'identifier' : '/CISD/CL1:A01'"))); + }, "/CISD/CL1:A01 (perm id: 200811050919915-9) cannot be it's own container", + patternContains("verifying (1/1)", toDblQuotes("'identifier' : '/CISD/CL1:A01'"))); } @Test @@ -1246,6 +1248,25 @@ public class UpdateSampleTest extends AbstractSampleTest patternContains("verifying (1/1)", toDblQuotes("'identifier' : '/CISD/3V-125'"))); } + @Test + public void testUpdateSampleWithAdminUserInAnotherSpace() + { + final SamplePermId permId = new SamplePermId("200902091250077-1060"); + + assertUnauthorizedObjectAccessException(new IDelegatedAction() + { + @Override + public void execute() + { + String sessionToken = v3api.login(TEST_ROLE_V3, PASSWORD); + + final SampleUpdate update = new SampleUpdate(); + update.setSampleId(permId); + v3api.updateSamples(sessionToken, Collections.singletonList(update)); + } + }, permId); + } + @Test public void testUpdateWithAttachmentsSetAddRemove() { diff --git a/openbis/sourceTest/sql/postgresql/156/051=role_assignments.tsv b/openbis/sourceTest/sql/postgresql/156/051=role_assignments.tsv index 2ff08b28cdf1a39f26748683598209d54fe95363..36836f23cca8ffe02f9f9b40b72b1c28664b2bc4 100644 --- a/openbis/sourceTest/sql/postgresql/156/051=role_assignments.tsv +++ b/openbis/sourceTest/sql/postgresql/156/051=role_assignments.tsv @@ -8,4 +8,4 @@ 8 POWER_USER 1 6 2 2008-11-05 09:18:11.471+01 \N 9 ADMIN 3 7 2 2008-11-05 09:18:11.471+01 \N 10 OBSERVER 3 8 2 2008-11-05 09:18:11.471+01 \N -11 POWER_USER 1 8 2 2008-11-05 09:18:11.471+01 \N +11 ADMIN 1 8 2 2008-11-05 09:18:11.471+01 \N