diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java index 1cb0ce2a4aae3e209342129a7fe7735ca40c11c5..a5e4a1d745137a3b64b8e1793f146110d00dccdf 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java @@ -37,9 +37,14 @@ public class SampleTechIdCollectionPredicate extends DelegatedPredicate<List<SampleOwnerIdentifier>, List<TechId>> { + public SampleTechIdCollectionPredicate(boolean isReadAccess) + { + super(new SampleOwnerIdentifierCollectionPredicate(isReadAccess)); + } + public SampleTechIdCollectionPredicate() { - super(new SampleOwnerIdentifierCollectionPredicate(true)); + this(true); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java index 3c51be158d2f7fc5c97819a86cd154077b050103..ddfc654ce3a8010d1d6812d53ce1ef640a0c8b49 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java @@ -19,9 +19,9 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate; import java.util.ArrayList; import java.util.List; +import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.openbis.common.conversation.context.ServiceConversationsThreadContext; import ch.systemsx.cisd.openbis.common.conversation.progress.IServiceConversationProgressListener; -import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider; import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier; import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ShouldFlattenCollections; @@ -49,9 +49,10 @@ public class SampleUpdatesCollectionPredicate extends AbstractPredicate<List<Sam public SampleUpdatesCollectionPredicate() { - sampleTechIdCollectionPredicate = new SampleTechIdCollectionPredicate(); + this.sampleTechIdCollectionPredicate = new SampleTechIdCollectionPredicate(false); this.spacePredicate = new SpaceIdentifierPredicate(); - sampleOwnerIdentifierCollectionPredicate = new SampleOwnerIdentifierCollectionPredicate(); + this.sampleOwnerIdentifierCollectionPredicate = + new SampleOwnerIdentifierCollectionPredicate(false); } @Override diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java index 2cadacebdc0c160ecaf75715b37a1ce619dd06f2..c760e53e00f6332edbc3e24ea830d2b4f0ae2aaa 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java @@ -23,7 +23,6 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.openbis.generic.server.authorization.AuthorizationTestCase; import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier; -import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.SampleOwnerIdentifierPredicate; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleOwnerIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; @@ -84,7 +83,7 @@ public class SampleOwnerIdentifierPredicateTest extends AuthorizationTestCase } @Test - public void testNotAllowedDatabaseInstance() + public void testGenericAllowedDatabaseInstance() { SampleOwnerIdentifierPredicate predicate = new SampleOwnerIdentifierPredicate(); PersonPE person = createPerson(); @@ -95,14 +94,12 @@ public class SampleOwnerIdentifierPredicateTest extends AuthorizationTestCase Status status = predicate.evaluate(person, roles, identifier); - assertEquals(true, status.isError()); - assertEquals("User 'megapixel' does not have enough privileges to read " - + "from database instance 'DB2'.", status.tryGetErrorMessage()); + assertEquals(Status.OK, status); context.assertIsSatisfied(); } @Test - public void testAllowedGroup() + public void testAllowedSpace() { SampleOwnerIdentifierPredicate predicate = new SampleOwnerIdentifierPredicate(); PersonPE person = createPerson(); @@ -119,7 +116,7 @@ public class SampleOwnerIdentifierPredicateTest extends AuthorizationTestCase } @Test - public void testNotAllowedGroup() + public void testNotAllowedSpace() { SampleOwnerIdentifierPredicate predicate = new SampleOwnerIdentifierPredicate(); PersonPE person = createPerson(); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java index d401f4bfd35a3702179a5d5bb167ef0892ddbad4..d5e51444c3064b4d2e4305ab9b1959568c309be9 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java @@ -99,8 +99,8 @@ public class SampleUpdatesCollectionPredicateTest extends AuthorizationTestCase predicate.evaluate(createPerson(), createRoles(false), Arrays.asList(sampleWithId, sampleWithIdAndExperiment, sampleWithIdAndIdentifer)); - assertEquals("ERROR: \"User 'megapixel' does not have enough privileges to read " - + "from database instance 'DB2'.\"", result.toString()); + assertEquals("ERROR: \"User 'megapixel' does not have enough privileges to modify " + + "database instance 'DB2'.\"", result.toString()); context.assertIsSatisfied(); }