From 37420b71f34eaded3d6a2967d178ebc5bd17d30c Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Mon, 18 Dec 2017 15:51:32 +0000 Subject: [PATCH] SSDM-6019 : Project Authorization - modify @RolesAllowed annotations at non-entity related methods SVN: 39054 --- ...nPredicateSystemTestAssertionsDefault.java | 2 +- ...aSetCodeCollectionPredicateSystemTest.java | 12 --- .../DataSetCodePredicateSystemTest.java | 12 --- ...etTechIdCollectionPredicateSystemTest.java | 11 --- .../DataSetTechIdPredicateSystemTest.java | 12 --- ...nPredicateWithDataSetTechIdSystemTest.java | 16 +--- ...sPredicateWithDataSetTechIdSystemTest.java | 18 +---- ...ewDataSetsWithTypePredicateSystemTest.java | 12 --- .../NewExternalDataPredicateSystemTest.java | 13 ---- ...onTechIdCollectionPredicateSystemTest.java | 12 --- .../RevertDeletionPredicateSystemTest.java | 11 --- .../V3DeletionIdPredicateSystemTest.java | 11 --- ...cEntityDescriptionPredicateSystemTest.java | 60 +++++++++++++++ ...riptionPredicateWithDataSetSystemTest.java | 60 +++++++++++++++ ...tionPredicateWithExperimentSystemTest.java | 72 +++++++++++++++++ ...criptionPredicateWithSampleSystemTest.java | 77 +++++++++++++++++++ ...rimentIdPredicateWithPermIdSystemTest.java | 22 ------ .../ExperimentListPredicateSystemTest.java | 13 ++++ .../ExperimentPermIdPredicateSystemTest.java | 12 --- ...ntTechIdCollectionPredicateSystemTest.java | 12 --- .../NewExperimentPredicateSystemTest.java | 12 --- .../NewProjectPredicateSystemTest.java | 12 --- ...rojectIdPredicateWithPermIdSystemTest.java | 12 --- ...ifierExistingSpacePredicateSystemTest.java | 12 --- .../ProjectPermIdPredicateSystemTest.java | 12 --- ...rojectPermIdStringPredicateSystemTest.java | 12 --- ...ctTechIdCollectionPredicateSystemTest.java | 12 --- ...tUpdatesPredicateWithPermIdSystemTest.java | 12 --- ...CriteriaPredicateWithSampleSystemTest.java | 15 +--- ...eCriteriaPredicateWithSpaceSystemTest.java | 22 ------ ...ateWithExperimentIdentifierSystemTest.java | 22 ------ ...dicateWithProjectIdentifierSystemTest.java | 22 ------ ...ampleAugmentedCodePredicateSystemTest.java | 39 ++-------- ...IdPredicateWithSampleTechIdSystemTest.java | 22 ------ ...leTechIdCollectionPredicateSystemTest.java | 12 --- .../SampleTechIdPredicateSystemTest.java | 12 --- ...esPredicateWithSampleTechIdSystemTest.java | 22 ------ .../openbis/generic/server/CommonServer.java | 2 +- .../api/v1/GeneralInformationService.java | 4 +- .../openbis/systemtest/CommonServerTest.java | 29 ++++++- .../entity/EntityPredicateTestService.java | 43 +++++++++++ .../DataSetReferencePredicateSystemTest.java | 14 +--- ...ReadOnlyPredicateWithPermIdSystemTest.java | 22 ------ 43 files changed, 368 insertions(+), 500 deletions(-) create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateSystemTest.java create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithDataSetSystemTest.java create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithExperimentSystemTest.java create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithSampleSystemTest.java create mode 100644 openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/authorization/predicate/entity/EntityPredicateTestService.java diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/CommonPredicateSystemTestAssertionsDefault.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/CommonPredicateSystemTestAssertionsDefault.java index 9723cbc752d..926819bbe22 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/CommonPredicateSystemTestAssertionsDefault.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/CommonPredicateSystemTestAssertionsDefault.java @@ -63,7 +63,7 @@ public class CommonPredicateSystemTestAssertionsDefault<O> extends CommonPredica CommonAuthorizationSystemTest.assertAuthorizationFailureExceptionThatNoRoles(t); } else { - CommonAuthorizationSystemTest.assertAuthorizationFailureExceptionThatNotEnoughPrivileges(t); + CommonAuthorizationSystemTest.assertNoException(t); } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodeCollectionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodeCollectionPredicateSystemTest.java index c818a8038b9..a9d3dfc4b13 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodeCollectionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodeCollectionPredicateSystemTest.java @@ -92,18 +92,6 @@ public class DataSetCodeCollectionPredicateSystemTest extends CommonPredicateSys assertException(t, UserFailureException.class, "No data set codes specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodePredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodePredicateSystemTest.java index a0fa84667e6..39d000fe4b6 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodePredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetCodePredicateSystemTest.java @@ -74,18 +74,6 @@ public class DataSetCodePredicateSystemTest extends CommonPredicateSystemTest<St assertException(t, UserFailureException.class, "No data set code specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdCollectionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdCollectionPredicateSystemTest.java index c14226dc42e..f911300d4d8 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdCollectionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdCollectionPredicateSystemTest.java @@ -94,17 +94,6 @@ public class DataSetTechIdCollectionPredicateSystemTest extends CommonPredicateS } } - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdPredicateSystemTest.java index 14640377672..b8e3fd561fd 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetTechIdPredicateSystemTest.java @@ -75,18 +75,6 @@ public class DataSetTechIdPredicateSystemTest extends CommonPredicateSystemTest< assertException(t, UserFailureException.class, "No data set technical id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesCollectionPredicateWithDataSetTechIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesCollectionPredicateWithDataSetTechIdSystemTest.java index 2302c8b298b..814e3d1d8ac 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesCollectionPredicateWithDataSetTechIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesCollectionPredicateWithDataSetTechIdSystemTest.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.dataset; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.DataSetTechIdUtil; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestDataSetAssertions; @@ -55,20 +54,7 @@ public class DataSetUpdatesCollectionPredicateWithDataSetTechIdSystemTest extend @Override protected CommonPredicateSystemTestAssertions<DataSetUpdatesDTO> getAssertions() { - return new CommonPredicateSystemTestDataSetAssertions<DataSetUpdatesDTO>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; + return new CommonPredicateSystemTestDataSetAssertions<DataSetUpdatesDTO>(super.getAssertions()); } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesPredicateWithDataSetTechIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesPredicateWithDataSetTechIdSystemTest.java index f697f52fc61..5ff10fed68c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesPredicateWithDataSetTechIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/DataSetUpdatesPredicateWithDataSetTechIdSystemTest.java @@ -16,10 +16,9 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.dataset; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.DataSetTechIdUtil; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestDataSetAssertions; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestDataSetAssertions; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUpdatesDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; @@ -55,20 +54,7 @@ public class DataSetUpdatesPredicateWithDataSetTechIdSystemTest extends DataSetU @Override protected CommonPredicateSystemTestAssertions<DataSetUpdatesDTO> getAssertions() { - return new CommonPredicateSystemTestDataSetAssertions<DataSetUpdatesDTO>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; + return new CommonPredicateSystemTestDataSetAssertions<DataSetUpdatesDTO>(super.getAssertions()); } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewDataSetsWithTypePredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewDataSetsWithTypePredicateSystemTest.java index d1206eda1d5..b37251b6f9e 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewDataSetsWithTypePredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewDataSetsWithTypePredicateSystemTest.java @@ -97,18 +97,6 @@ public abstract class NewDataSetsWithTypePredicateSystemTest<O> extends CommonPr assertNoException(t); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewExternalDataPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewExternalDataPredicateSystemTest.java index d1620dde845..c5b6ad1ce40 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewExternalDataPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/dataset/NewExternalDataPredicateSystemTest.java @@ -56,19 +56,6 @@ public abstract class NewExternalDataPredicateSystemTest<O> extends CommonPredic assertNoException(t); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/DeletionTechIdCollectionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/DeletionTechIdCollectionPredicateSystemTest.java index bd90af61151..47cc6abc3d3 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/DeletionTechIdCollectionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/DeletionTechIdCollectionPredicateSystemTest.java @@ -94,18 +94,6 @@ public abstract class DeletionTechIdCollectionPredicateSystemTest extends Common assertException(t, UserFailureException.class, "No deletion technical id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/RevertDeletionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/RevertDeletionPredicateSystemTest.java index 584117de94b..56690c6e381 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/RevertDeletionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/RevertDeletionPredicateSystemTest.java @@ -98,17 +98,6 @@ public abstract class RevertDeletionPredicateSystemTest extends CommonPredicateS } } - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/V3DeletionIdPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/V3DeletionIdPredicateSystemTest.java index 08c7cd41649..b959af3f8df 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/V3DeletionIdPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/deletion/V3DeletionIdPredicateSystemTest.java @@ -95,17 +95,6 @@ public abstract class V3DeletionIdPredicateSystemTest extends CommonPredicateSys } } - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateSystemTest.java new file mode 100644 index 00000000000..f91b5407507 --- /dev/null +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateSystemTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2017 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.entity; + +import java.util.List; + +import ch.systemsx.cisd.common.exceptions.UserFailureException; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTest; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityDescription; +import ch.systemsx.cisd.openbis.systemtest.authorization.predicate.entity.EntityPredicateTestService; + +/** + * @author pkupczyk + */ +public abstract class BasicEntityDescriptionPredicateSystemTest extends CommonPredicateSystemTest<BasicEntityDescription> +{ + + @Override + protected void evaluateObjects(ProjectAuthorizationUser user, List<BasicEntityDescription> objects, Object param) + { + getBean(EntityPredicateTestService.class).testBasicEntityDescriptionPredicate(user.getSessionProvider(), objects.get(0)); + } + + @Override + protected CommonPredicateSystemTestAssertions<BasicEntityDescription> getAssertions() + { + return new CommonPredicateSystemTestAssertionsDelegate<BasicEntityDescription>(super.getAssertions()) + { + @Override + public void assertWithNullObject(ProjectAuthorizationUser user, Throwable t, Object param) + { + if (user.isDisabledProjectUser()) + { + assertAuthorizationFailureExceptionThatNoRoles(t); + } else + { + assertException(t, UserFailureException.class, "No basic entity description specified."); + } + } + }; + } + +} diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithDataSetSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithDataSetSystemTest.java new file mode 100644 index 00000000000..f111fbdf8fa --- /dev/null +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithDataSetSystemTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2017 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.entity; + +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.DataSetCodeUtil; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestDataSetAssertions; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityDescription; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; + +/** + * @author pkupczyk + */ +public class BasicEntityDescriptionPredicateWithDataSetSystemTest extends BasicEntityDescriptionPredicateSystemTest +{ + + @Override + public Object[] getParams() + { + return getDataSetKinds(); + } + + @Override + protected BasicEntityDescription createNonexistentObject(Object param) + { + String code = DataSetCodeUtil.createNonexistentObject(param); + return new BasicEntityDescription(EntityKind.DATA_SET, code); + } + + @Override + protected BasicEntityDescription createObject(SpacePE spacePE, ProjectPE projectPE, Object param) + { + DataPE dataSetPE = getDataSet(spacePE, projectPE, (DataSetKind) param); + return new BasicEntityDescription(EntityKind.DATA_SET, dataSetPE.getCode()); + } + + @Override + protected CommonPredicateSystemTestAssertions<BasicEntityDescription> getAssertions() + { + return new CommonPredicateSystemTestDataSetAssertions<BasicEntityDescription>(super.getAssertions()); + } + +} diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithExperimentSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithExperimentSystemTest.java new file mode 100644 index 00000000000..12a7b7a15ea --- /dev/null +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithExperimentSystemTest.java @@ -0,0 +1,72 @@ +/* + * Copyright 2017 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.entity; + +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.ExperimentIdentifierUtil; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityDescription; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; + +/** + * @author pkupczyk + */ +public class BasicEntityDescriptionPredicateWithExperimentSystemTest extends BasicEntityDescriptionPredicateSystemTest +{ + + @Override + protected BasicEntityDescription createNonexistentObject(Object param) + { + ExperimentIdentifier identifier = ExperimentIdentifierUtil.createNonexistentObject(param); + return new BasicEntityDescription(EntityKind.EXPERIMENT, identifier.toString()); + } + + @Override + protected BasicEntityDescription createObject(SpacePE spacePE, ProjectPE projectPE, Object param) + { + ExperimentPE experimentPE = getExperiment(spacePE, projectPE); + return new BasicEntityDescription(EntityKind.EXPERIMENT, experimentPE.getIdentifier()); + } + + @Override + protected CommonPredicateSystemTestAssertions<BasicEntityDescription> getAssertions() + { + return new CommonPredicateSystemTestAssertionsDelegate<BasicEntityDescription>(super.getAssertions()) + { + @Override + public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) + { + if (user.isDisabledProjectUser()) + { + assertAuthorizationFailureExceptionThatNoRoles(t); + } else if (user.isInstanceUser()) + { + assertNoException(t); + } else + { + assertAuthorizationFailureExceptionThatNotEnoughPrivileges(t); + } + } + }; + } + +} diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithSampleSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithSampleSystemTest.java new file mode 100644 index 00000000000..180b7ea9695 --- /dev/null +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/entity/BasicEntityDescriptionPredicateWithSampleSystemTest.java @@ -0,0 +1,77 @@ +/* + * Copyright 2017 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.entity; + +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.SampleIdentifierUtil; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestSampleAssertions; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityDescription; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; + +/** + * @author pkupczyk + */ +public class BasicEntityDescriptionPredicateWithSampleSystemTest extends BasicEntityDescriptionPredicateSystemTest +{ + + @Override + public Object[] getParams() + { + return getSampleKinds(SampleKind.SHARED_READ); + } + + @Override + protected BasicEntityDescription createNonexistentObject(Object param) + { + SampleIdentifier identifier = SampleIdentifierUtil.createNonexistentObject(param); + return new BasicEntityDescription(EntityKind.SAMPLE, identifier.toString()); + } + + @Override + protected BasicEntityDescription createObject(SpacePE spacePE, ProjectPE projectPE, Object param) + { + SampleIdentifier identifier = SampleIdentifierUtil.createObject(this, spacePE, projectPE, param); + return new BasicEntityDescription(EntityKind.SAMPLE, identifier.toString()); + } + + @Override + protected CommonPredicateSystemTestAssertions<BasicEntityDescription> getAssertions() + { + return new CommonPredicateSystemTestSampleAssertions<BasicEntityDescription>(super.getAssertions()) + { + @Override + public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) + { + if (user.isDisabledProjectUser()) + { + assertAuthorizationFailureExceptionThatNoRoles(t); + } else if (user.isInstanceUser() || SampleKind.SHARED_READ.equals(param)) + { + assertNoException(t); + } else + { + assertAuthorizationFailureExceptionThatNotEnoughPrivileges(t); + } + } + }; + } + +} diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentIdPredicateWithPermIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentIdPredicateWithPermIdSystemTest.java index 765e175be20..08fa832272c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentIdPredicateWithPermIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentIdPredicateWithPermIdSystemTest.java @@ -16,9 +16,6 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.experiment; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.experiment.ExperimentPermIdId; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; @@ -43,23 +40,4 @@ public class ExperimentIdPredicateWithPermIdSystemTest extends ExperimentIdPredi return new ExperimentPermIdId(experimentPE.getPermId()); } - @Override - protected CommonPredicateSystemTestAssertions<ExperimentPermIdId> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<ExperimentPermIdId>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentListPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentListPredicateSystemTest.java index cac493d9539..52f5b71aa94 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentListPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentListPredicateSystemTest.java @@ -106,6 +106,19 @@ public class ExperimentListPredicateSystemTest extends CommonPredicateSystemTest assertException(t, UserFailureException.class, "No experiment specified."); } } + + @Override + public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) + { + if (user.isDisabledProjectUser()) + { + assertAuthorizationFailureExceptionThatNoRoles(t); + } else + { + assertAuthorizationFailureExceptionThatNotEnoughPrivileges(t); + } + } + }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentPermIdPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentPermIdPredicateSystemTest.java index 48c25ddc30a..f5f736bdefb 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentPermIdPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentPermIdPredicateSystemTest.java @@ -70,18 +70,6 @@ public class ExperimentPermIdPredicateSystemTest extends CommonPredicateSystemTe assertException(t, UserFailureException.class, "No experiment perm id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentTechIdCollectionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentTechIdCollectionPredicateSystemTest.java index 5acd8e07ea8..e6cbd15e179 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentTechIdCollectionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/ExperimentTechIdCollectionPredicateSystemTest.java @@ -88,18 +88,6 @@ public class ExperimentTechIdCollectionPredicateSystemTest extends CommonPredica assertException(t, UserFailureException.class, "No EXPERIMENT technical id collection specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/NewExperimentPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/NewExperimentPredicateSystemTest.java index 604b94ab7ae..f28ac501f66 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/NewExperimentPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/experiment/NewExperimentPredicateSystemTest.java @@ -68,18 +68,6 @@ public class NewExperimentPredicateSystemTest extends CommonPredicateSystemTest< assertException(t, UserFailureException.class, "No new experiment specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/NewProjectPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/NewProjectPredicateSystemTest.java index 39bedd3dc20..43c45aff113 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/NewProjectPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/NewProjectPredicateSystemTest.java @@ -68,18 +68,6 @@ public class NewProjectPredicateSystemTest extends CommonPredicateSystemTest<New assertException(t, UserFailureException.class, "No new project specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdPredicateWithPermIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdPredicateWithPermIdSystemTest.java index 50e360313c7..ee242b446d1 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdPredicateWithPermIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdPredicateWithPermIdSystemTest.java @@ -68,18 +68,6 @@ public class ProjectIdPredicateWithPermIdSystemTest extends CommonPredicateSyste assertException(t, UserFailureException.class, "No project id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdentifierExistingSpacePredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdentifierExistingSpacePredicateSystemTest.java index afbd04c0a95..65e397ac27f 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdentifierExistingSpacePredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectIdentifierExistingSpacePredicateSystemTest.java @@ -68,18 +68,6 @@ public class ProjectIdentifierExistingSpacePredicateSystemTest extends CommonPre assertException(t, UserFailureException.class, "No project specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdPredicateSystemTest.java index 99b70128db7..d691ab16b3f 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdPredicateSystemTest.java @@ -68,18 +68,6 @@ public class ProjectPermIdPredicateSystemTest extends CommonPredicateSystemTest< assertException(t, UserFailureException.class, "No project perm id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdStringPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdStringPredicateSystemTest.java index 3cf21bb59de..4bde9d121a1 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdStringPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectPermIdStringPredicateSystemTest.java @@ -67,18 +67,6 @@ public class ProjectPermIdStringPredicateSystemTest extends CommonPredicateSyste assertException(t, UserFailureException.class, "No project perm id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectTechIdCollectionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectTechIdCollectionPredicateSystemTest.java index c8b7a592e6f..551dbb849a4 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectTechIdCollectionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectTechIdCollectionPredicateSystemTest.java @@ -86,18 +86,6 @@ public class ProjectTechIdCollectionPredicateSystemTest extends CommonPredicateS assertException(t, UserFailureException.class, "No PROJECT technical id collection specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectUpdatesPredicateWithPermIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectUpdatesPredicateWithPermIdSystemTest.java index 7fc6ff4ff6b..6eae9601490 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectUpdatesPredicateWithPermIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/project/ProjectUpdatesPredicateWithPermIdSystemTest.java @@ -72,18 +72,6 @@ public class ProjectUpdatesPredicateWithPermIdSystemTest extends CommonPredicate assertException(t, UserFailureException.class, "No project updates specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSampleSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSampleSystemTest.java index afa1a5178f4..af78946284d 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSampleSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSampleSystemTest.java @@ -64,20 +64,7 @@ public abstract class ListSampleCriteriaPredicateWithSampleSystemTest extends Li @Override protected CommonPredicateSystemTestAssertions<ListSampleCriteria> getAssertions() { - return new CommonPredicateSystemTestSampleAssertions<ListSampleCriteria>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; + return new CommonPredicateSystemTestSampleAssertions<ListSampleCriteria>(super.getAssertions()); } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSpaceSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSpaceSystemTest.java index e1de513cc35..677481db05d 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSpaceSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/ListSampleCriteriaPredicateWithSpaceSystemTest.java @@ -16,9 +16,6 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.sample; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; @@ -47,23 +44,4 @@ public class ListSampleCriteriaPredicateWithSpaceSystemTest extends ListSampleCr return criteria; } - @Override - protected CommonPredicateSystemTestAssertions<ListSampleCriteria> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<ListSampleCriteria>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithExperimentIdentifierSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithExperimentIdentifierSystemTest.java index f527aacf73c..6376c5f3fff 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithExperimentIdentifierSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithExperimentIdentifierSystemTest.java @@ -16,9 +16,6 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.sample; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; @@ -48,23 +45,4 @@ public class NewSamplePredicateWithExperimentIdentifierSystemTest extends NewSam return newSample; } - @Override - protected CommonPredicateSystemTestAssertions<NewSample> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<NewSample>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithProjectIdentifierSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithProjectIdentifierSystemTest.java index a9e86898c64..fda6f6fc479 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithProjectIdentifierSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/NewSamplePredicateWithProjectIdentifierSystemTest.java @@ -16,9 +16,6 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.sample; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; @@ -45,23 +42,4 @@ public class NewSamplePredicateWithProjectIdentifierSystemTest extends NewSample return newSample; } - @Override - protected CommonPredicateSystemTestAssertions<NewSample> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<NewSample>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleAugmentedCodePredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleAugmentedCodePredicateSystemTest.java index 28a94df1ec7..6bcb5c02c9e 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleAugmentedCodePredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleAugmentedCodePredicateSystemTest.java @@ -20,12 +20,13 @@ import java.util.List; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.SampleIdentifierUtil; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTest; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestSampleAssertions; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; -import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; import ch.systemsx.cisd.openbis.systemtest.authorization.predicate.sample.SamplePredicateTestService; /** @@ -43,43 +44,15 @@ public class SampleAugmentedCodePredicateSystemTest extends CommonPredicateSyste @Override protected String createNonexistentObject(Object param) { - switch ((SampleKind) param) - { - case SHARED_READ: - return "/IDONTEXIST"; - case SPACE: - return "/IDONTEXIST/IDONTEXIST"; - case SPACE_CONTAINED: - return "/IDONTEXIST/IDONTEXIST:IDONTEXIST"; - case PROJECT: - return "/IDONTEXIST/IDONTEXIST/IDONTEXIST"; - case EXPERIMENT: - return "/IDONTEXIST/IDONTEXIST"; - default: - throw new RuntimeException(); - } + SampleIdentifier identifier = SampleIdentifierUtil.createNonexistentObject(param); + return identifier.toString(); } @Override protected String createObject(SpacePE spacePE, ProjectPE projectPE, Object param) { - SamplePE samplePE = getSample(spacePE, projectPE, (SampleKind) param); - - switch ((SampleKind) param) - { - case SHARED_READ: - return "/" + samplePE.getCode(); - case SPACE: - return "/" + spacePE.getCode() + "/" + samplePE.getCode(); - case SPACE_CONTAINED: - return "/" + spacePE.getCode() + "/" + samplePE.getContainer().getCode() + ":" + samplePE.getCode(); - case PROJECT: - return "/" + spacePE.getCode() + "/" + projectPE.getCode() + "/" + samplePE.getCode(); - case EXPERIMENT: - return "/" + spacePE.getCode() + "/" + samplePE.getCode(); - default: - throw new RuntimeException(); - } + SampleIdentifier identifier = SampleIdentifierUtil.createObject(this, spacePE, projectPE, param); + return identifier.toString(); } @Override diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleIdPredicateWithSampleTechIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleIdPredicateWithSampleTechIdSystemTest.java index 91b3f706721..63647a2adf7 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleIdPredicateWithSampleTechIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleIdPredicateWithSampleTechIdSystemTest.java @@ -16,10 +16,7 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.sample; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.SampleTechIdUtil; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.sample.ISampleId; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.sample.SampleTechIdId; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -46,23 +43,4 @@ public class SampleIdPredicateWithSampleTechIdSystemTest extends SampleIdPredica return new SampleTechIdId(techId.getId()); } - @Override - protected CommonPredicateSystemTestAssertions<ISampleId> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<ISampleId>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdCollectionPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdCollectionPredicateSystemTest.java index 60ddf7dfebb..9cb3723dd19 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdCollectionPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdCollectionPredicateSystemTest.java @@ -93,18 +93,6 @@ public class SampleTechIdCollectionPredicateSystemTest extends CommonPredicateSy assertException(t, UserFailureException.class, "No sample technical ids specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdPredicateSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdPredicateSystemTest.java index 2225ff49f6d..08e177462b8 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdPredicateSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleTechIdPredicateSystemTest.java @@ -75,18 +75,6 @@ public class SampleTechIdPredicateSystemTest extends CommonPredicateSystemTest<T assertException(t, UserFailureException.class, "No sample technical id specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleUpdatesPredicateWithSampleTechIdSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleUpdatesPredicateWithSampleTechIdSystemTest.java index 82b3b99e841..378893a0f22 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleUpdatesPredicateWithSampleTechIdSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/authorization/predicate/sample/SampleUpdatesPredicateWithSampleTechIdSystemTest.java @@ -16,10 +16,7 @@ package ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.sample; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.SampleTechIdUtil; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO; @@ -45,23 +42,4 @@ public class SampleUpdatesPredicateWithSampleTechIdSystemTest extends SampleUpda return new SampleUpdatesDTO(techId, null, null, null, null, 0, null, null, null); } - @Override - protected CommonPredicateSystemTestAssertions<SampleUpdatesDTO> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<SampleUpdatesDTO>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 97db5241bc1..aa3b83f67fa 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -3585,7 +3585,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt } @Override - @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) + @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER) public IEntityInformationHolderWithPermId getEntityInformationHolder(String sessionToken, @AuthorizationGuard(guardClass = BasicEntityDescriptionPredicate.class) BasicEntityDescription info) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java index 41680409840..fbddb097e39 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java @@ -975,7 +975,7 @@ public class GeneralInformationService extends AbstractServer<IGeneralInformatio @Override @Transactional(readOnly = true) - @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) + @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER) // There is no @ReturnValueFilter because commonServer.searchForDataSetsWithSequences() does already the filtering. public List<SearchDomainSearchResult> searchOnSearchDomain(String sessionToken, String preferredSearchDomainOrNull, String searchString, Map<String, String> optionalParametersOrNull) @@ -994,7 +994,7 @@ public class GeneralInformationService extends AbstractServer<IGeneralInformatio @Override @Transactional(readOnly = true) - @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) + @RolesAllowed(RoleWithHierarchy.PROJECT_OBSERVER) public List<SearchDomain> listAvailableSearchDomains(String sessionToken) { checkSession(sessionToken); 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 17779ab96af..c4f20e504ea 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java @@ -55,6 +55,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AttachmentWithContent; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AuthorizationGroup; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityDescription; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetRelatedEntities; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetRelationshipRole; @@ -3047,7 +3048,7 @@ public class CommonServerTest extends SystemTestCase } @Test(dataProviderClass = ProjectAuthorizationUser.class, dataProvider = ProjectAuthorizationUser.PROVIDER) - public void testGetEntityInformationHolderWithProjectAuthorization(ProjectAuthorizationUser user) + public void testGetEntityInformationHolderByPermIdWithProjectAuthorization(ProjectAuthorizationUser user) { SessionContextDTO session = commonServer.tryAuthenticate(user.getUserId(), PASSWORD); @@ -3071,6 +3072,32 @@ public class CommonServerTest extends SystemTestCase } } + @Test(dataProviderClass = ProjectAuthorizationUser.class, dataProvider = ProjectAuthorizationUser.PROVIDER) + public void testGetEntityInformationHolderByDescriptionWithProjectAuthorization(ProjectAuthorizationUser user) + { + SessionContextDTO session = commonServer.tryAuthenticate(user.getUserId(), PASSWORD); + + BasicEntityDescription description = new BasicEntityDescription(); + description.setEntityIdentifier("/TEST-SPACE/TEST-PROJECT/EXP-SPACE-TEST"); + description.setEntityKind(EntityKind.EXPERIMENT); + + if (user.isInstanceUserOrTestSpaceUserOrEnabledTestProjectUser()) + { + IEntityInformationHolderWithPermId entity = commonServer.getEntityInformationHolder(session.getSessionToken(), description); + assertEquals(entity.getCode(), "EXP-SPACE-TEST"); + } else + { + try + { + commonServer.getEntityInformationHolder(session.getSessionToken(), description); + 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/authorization/predicate/entity/EntityPredicateTestService.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/authorization/predicate/entity/EntityPredicateTestService.java new file mode 100644 index 00000000000..382401d1761 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/authorization/predicate/entity/EntityPredicateTestService.java @@ -0,0 +1,43 @@ +/* + * Copyright 2017 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.systemtest.authorization.predicate.entity; + +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.AuthorizationGuard; +import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.RolesAllowed; +import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.BasicEntityDescriptionPredicate; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityDescription; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy; +import ch.systemsx.cisd.openbis.generic.shared.dto.IAuthSessionProvider; + +/** + * @author pkupczyk + */ +@Component +public class EntityPredicateTestService +{ + + @Transactional + @RolesAllowed(value = { RoleWithHierarchy.PROJECT_OBSERVER }) + public void testBasicEntityDescriptionPredicate(IAuthSessionProvider sessionProvider, + @AuthorizationGuard(guardClass = BasicEntityDescriptionPredicate.class) BasicEntityDescription description) + { + } + +} diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/dataset/DataSetReferencePredicateSystemTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/dataset/DataSetReferencePredicateSystemTest.java index 72ecc5b6f1e..29696c5ba7d 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/dataset/DataSetReferencePredicateSystemTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/dataset/DataSetReferencePredicateSystemTest.java @@ -21,8 +21,8 @@ import java.util.List; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.common.DataSetCodeUtil; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestDataSetAssertions; import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; +import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestDataSetAssertions; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetReference; @@ -76,18 +76,6 @@ public class DataSetReferencePredicateSystemTest extends CommonPredicateScreenin assertException(t, UserFailureException.class, "No data set reference specified."); } } - - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } }; } diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/sample/ScreeningPlateListReadOnlyPredicateWithPermIdSystemTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/sample/ScreeningPlateListReadOnlyPredicateWithPermIdSystemTest.java index c6406989f02..0a18272c7b0 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/sample/ScreeningPlateListReadOnlyPredicateWithPermIdSystemTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/authorization/predicate/sample/ScreeningPlateListReadOnlyPredicateWithPermIdSystemTest.java @@ -16,9 +16,6 @@ package ch.systemsx.cisd.openbis.screening.systemtests.authorization.predicate.sample; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.ProjectAuthorizationUser; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertions; -import ch.systemsx.cisd.openbis.datastoreserver.systemtests.authorization.predicate.CommonPredicateSystemTestAssertionsDelegate; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateIdentifier; @@ -41,23 +38,4 @@ public class ScreeningPlateListReadOnlyPredicateWithPermIdSystemTest extends Scr return PlateIdentifierUtil.createObjectWithPermId(this, spacePE, projectPE, param); } - @Override - protected CommonPredicateSystemTestAssertions<PlateIdentifier> getAssertions() - { - return new CommonPredicateSystemTestAssertionsDelegate<PlateIdentifier>(super.getAssertions()) - { - @Override - public void assertWithNonexistentObject(ProjectAuthorizationUser user, Throwable t, Object param) - { - if (user.isDisabledProjectUser()) - { - assertAuthorizationFailureExceptionThatNoRoles(t); - } else - { - assertNoException(t); - } - } - }; - } - } -- GitLab