From e643a846cd1d78ac3562d16e46ac9b70e9b2b4e3 Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Mon, 18 Dec 2017 09:07:13 +0000 Subject: [PATCH] SSDM-6019 : Project Authorization - modify @RolesAllowed annotations at non-entity related methods - fix openbis tests SVN: 39050 --- .../openbis/systemtest/CommonServerTest.java | 63 ++++++++++++++++--- .../DataStoreServiceRegistrationTest.java | 4 +- 2 files changed, 56 insertions(+), 11 deletions(-) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java index d5ce6d67189..17779ab96af 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java @@ -45,6 +45,7 @@ import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityPropertyTypeDAO; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.BasicEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId; @@ -2292,8 +2293,16 @@ public class CommonServerTest extends SystemTestCase if (user.isInstanceUserOrSpaceUserOrEnabledProjectUser()) { + int count = 0; + for (ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind entityKind : ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind + .values()) + { + IEntityPropertyTypeDAO entityPropertyTypeDAO = daoFactory.getEntityPropertyTypeDAO(entityKind); + count += entityPropertyTypeDAO.listEntityPropertyTypes().size(); + } + List<EntityTypePropertyType<?>> types = commonServer.listEntityTypePropertyTypes(session.getSessionToken()); - assertEquals(types.size(), 62); + assertEquals(types.size(), count); } else { try @@ -2872,8 +2881,8 @@ public class CommonServerTest extends SystemTestCase MetaprojectPE metaproject = createMetaproject(user.getUserId(), "PA_TEST"); createMetaprojectAssignment(metaproject, "200811050951882-1028", null, null); // /CISD/NEMO/EXP1 - createMetaprojectAssignment(metaproject, "201206190940555-1032", null, null); // /TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST createMetaprojectAssignment(metaproject, "200902091255058-1037", null, null); // /TEST-SPACE/NOE/EXP-TEST-2 + createMetaprojectAssignment(metaproject, "201206190940555-1032", null, null); // /TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST if (user.isDisabledProjectUser()) { @@ -2891,6 +2900,15 @@ public class CommonServerTest extends SystemTestCase commonServer.getMetaprojectAssignments(session.getSessionToken(), new MetaprojectIdentifierId(metaproject.getIdentifier())); List<Experiment> experiments = assignments.getExperiments(); + Collections.sort(experiments, new Comparator<Experiment>() + { + @Override + public int compare(Experiment o1, Experiment o2) + { + return o1.getPermId().compareTo(o2.getPermId()); + } + }); + if (user.isInstanceUser()) { assertEntities("[/CISD/NEMO/EXP1, /TEST-SPACE/NOE/EXP-TEST-2, /TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST]", experiments); @@ -2900,31 +2918,31 @@ public class CommonServerTest extends SystemTestCase assertEquals(experiments.get(0).getPermId(), "200811050951882-1028"); assertEquals(experiments.get(1).isStub(), false); - assertEquals(experiments.get(1).getIdentifier(), "/TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST"); + assertEquals(experiments.get(1).getIdentifier(), "/TEST-SPACE/NOE/EXP-TEST-2"); assertEquals(experiments.get(2).isStub(), false); - assertEquals(experiments.get(2).getIdentifier(), "/TEST-SPACE/NOE/EXP-TEST-2"); + assertEquals(experiments.get(2).getIdentifier(), "/TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST"); } else if (user.isTestProjectUser()) { assertEquals(experiments.get(0).isStub(), true); assertEquals(experiments.get(0).getPermId(), "200811050951882-1028"); - assertEquals(experiments.get(1).isStub(), false); - assertEquals(experiments.get(1).getIdentifier(), "/TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST"); + assertEquals(experiments.get(1).isStub(), true); + assertEquals(experiments.get(1).getPermId(), "200902091255058-1037"); - assertEquals(experiments.get(2).isStub(), true); - assertEquals(experiments.get(2).getPermId(), "200902091255058-1037"); + assertEquals(experiments.get(2).isStub(), false); + assertEquals(experiments.get(2).getIdentifier(), "/TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST"); } else { assertEquals(experiments.get(0).isStub(), true); assertEquals(experiments.get(0).getPermId(), "200811050951882-1028"); assertEquals(experiments.get(1).isStub(), true); - assertEquals(experiments.get(1).getPermId(), "201206190940555-1032"); + assertEquals(experiments.get(1).getPermId(), "200902091255058-1037"); assertEquals(experiments.get(2).isStub(), true); - assertEquals(experiments.get(2).getPermId(), "200902091255058-1037"); + assertEquals(experiments.get(2).getPermId(), "201206190940555-1032"); } } } @@ -3028,6 +3046,31 @@ public class CommonServerTest extends SystemTestCase } } + @Test(dataProviderClass = ProjectAuthorizationUser.class, dataProvider = ProjectAuthorizationUser.PROVIDER) + public void testGetEntityInformationHolderWithProjectAuthorization(ProjectAuthorizationUser user) + { + SessionContextDTO session = commonServer.tryAuthenticate(user.getUserId(), PASSWORD); + + EntityKind entityKind = EntityKind.EXPERIMENT; + String permId = "201206190940555-1032"; // /TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST + + if (user.isInstanceUserOrTestSpaceUserOrEnabledTestProjectUser()) + { + IEntityInformationHolderWithPermId entity = commonServer.getEntityInformationHolder(session.getSessionToken(), entityKind, permId); + assertEquals(entity.getCode(), "EXP-SPACE-TEST"); + } else + { + try + { + commonServer.getEntityInformationHolder(session.getSessionToken(), entityKind, permId); + fail(); + } catch (AuthorizationFailureException e) + { + // expected + } + } + } + private void assertAssignedPropertyTypes(String expected, EntityType entityType) { List<? extends EntityTypePropertyType<?>> propTypes = entityType.getAssignedPropertyTypes(); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DataStoreServiceRegistrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DataStoreServiceRegistrationTest.java index 4df44ffc772..0b9c2648680 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DataStoreServiceRegistrationTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/DataStoreServiceRegistrationTest.java @@ -144,6 +144,7 @@ public class DataStoreServiceRegistrationTest extends SystemTestCase List<DatastoreServiceDescription> services = commonServer .listDataStoreServices(systemSessionToken, DataStoreServiceKind.QUERIES); + Collections.sort(services); assertEquals("R1", services.get(0).getKey()); assertEquals("r1", services.get(0).getLabel()); assertEquals(DOWNLOAD_URL, services.get(0).getDownloadURL()); @@ -154,6 +155,7 @@ public class DataStoreServiceRegistrationTest extends SystemTestCase services = commonServer.listDataStoreServices(systemSessionToken, DataStoreServiceKind.PROCESSING); + Collections.sort(services); assertEquals("P1", services.get(0).getKey()); assertEquals("p1", services.get(0).getLabel()); assertEquals(DOWNLOAD_URL, services.get(0).getDownloadURL()); @@ -161,7 +163,7 @@ public class DataStoreServiceRegistrationTest extends SystemTestCase assertEquals(DATASTORE_CODE, services.get(0).getDatastoreCode()); assertEquals(expectedProcessingDataSetTypes, getDataSetTypeCodes(services.get(0)) .toString()); - assertEquals(1, services.size()); + assertEquals(2, services.size()); } private List<String> getDataSetTypeCodes(DatastoreServiceDescription description) -- GitLab