use of uk.gov.gchq.gaffer.access.predicate.AccessPredicate in project Gaffer by gchq.
the class FederatedAddGraphHandlerTest method shouldAddGraphWithCustomReadAccessPredicate.
@Test
public void shouldAddGraphWithCustomReadAccessPredicate() throws Exception {
store.initialise(FEDERATEDSTORE_GRAPH_ID, null, federatedStoreProperties);
final Schema expectedSchema = new Schema.Builder().build();
assertEquals(0, store.getGraphs(testUser, null, ignore).size());
final AccessPredicate allowBlankUserAndTestUserReadAccess = new AccessPredicate(new AdaptedPredicate(new CallMethod("getUserId"), new Or<>(new IsEqual(testUser.getUserId()), new IsEqual(blankUser.getUserId()))));
new FederatedAddGraphHandler().doOperation(new AddGraph.Builder().graphId(EXPECTED_GRAPH_ID).schema(expectedSchema).storeProperties(PROPERTIES).readAccessPredicate(allowBlankUserAndTestUserReadAccess).build(), new Context(testUser), store);
assertEquals(1, store.getGraphs(blankUser, null, ignore).size());
assertEquals(1, store.getGraphs(testUser, null, ignore).size());
}
use of uk.gov.gchq.gaffer.access.predicate.AccessPredicate in project Gaffer by gchq.
the class AddNamedViewHandlerTest method shouldAddNamedViewCorrectly.
@Test
public void shouldAddNamedViewCorrectly() throws OperationException, CacheOperationFailedException {
handler.doOperation(addNamedView, context, store);
final NamedViewDetail result = namedViewCache.getNamedView(testNamedViewName);
assertTrue(cacheContains(testNamedViewName));
assertEquals(addNamedView.getName(), result.getName());
assertEquals(new String(addNamedView.getView().toCompactJson()), result.getView());
assertEquals(context.getUser().getUserId(), result.getCreatorId());
assertEquals(new UnrestrictedAccessPredicate(), result.getOrDefaultReadAccessPredicate());
final AccessPredicate expectedWriteAccessPredicate = new NamedViewWriteAccessPredicate(context.getUser(), Arrays.asList(writeAccessRoles));
assertEquals(expectedWriteAccessPredicate, result.getOrDefaultWriteAccessPredicate());
}
use of uk.gov.gchq.gaffer.access.predicate.AccessPredicate in project Gaffer by gchq.
the class AddNamedViewHandlerTest method shouldAddNamedViewContainingCustomAccessPredicatesCorrectly.
@Test
public void shouldAddNamedViewContainingCustomAccessPredicatesCorrectly() throws OperationException, CacheOperationFailedException {
final AccessPredicate readAccessPredicate = new AccessPredicate(new CustomUserPredicate());
final AccessPredicate writeAccessPredicate = new AccessPredicate(new CustomUserPredicate());
addNamedView.setReadAccessPredicate(readAccessPredicate);
addNamedView.setWriteAccessRoles(null);
addNamedView.setWriteAccessPredicate(writeAccessPredicate);
handler.doOperation(addNamedView, context, store);
final NamedViewDetail result = namedViewCache.getNamedView(testNamedViewName);
assertTrue(cacheContains(testNamedViewName));
assertEquals(addNamedView.getName(), result.getName());
assertEquals(new String(addNamedView.getView().toCompactJson()), result.getView());
assertEquals(context.getUser().getUserId(), result.getCreatorId());
assertEquals(readAccessPredicate, result.getOrDefaultReadAccessPredicate());
assertEquals(writeAccessPredicate, result.getOrDefaultWriteAccessPredicate());
}
use of uk.gov.gchq.gaffer.access.predicate.AccessPredicate in project Gaffer by gchq.
the class NamedViewDetailTest method shouldTestAccessUsingCustomAccessPredicatesWhenConfigured.
@Test
public void shouldTestAccessUsingCustomAccessPredicatesWhenConfigured() {
// Given
final User testUser = new User.Builder().userId("testUserId").build();
final User differentUser = new User.Builder().userId("differentUserId").opAuth("different").build();
final String adminAuth = "adminAuth";
final AccessPredicate readAccessPredicate = new AccessPredicate(new AdaptedPredicate(new CallMethod("getUserId"), new IsEqual("testUserId")));
final AccessPredicate writeAccessPredicate = new AccessPredicate(new AdaptedPredicate(new CallMethod("getOpAuths"), new CollectionContains("different")));
// When
final NamedViewDetail namedViewDetail = createNamedViewDetailBuilder().readAccessPredicate(readAccessPredicate).writeAccessPredicate(writeAccessPredicate).build();
// Then
assertTrue(namedViewDetail.hasReadAccess(testUser, adminAuth));
assertFalse(namedViewDetail.hasReadAccess(differentUser, adminAuth));
assertFalse(namedViewDetail.hasWriteAccess(testUser, adminAuth));
assertTrue(namedViewDetail.hasWriteAccess(differentUser, adminAuth));
}
use of uk.gov.gchq.gaffer.access.predicate.AccessPredicate in project Gaffer by gchq.
the class FederatedGraphWriteAccessPredicateTest method canBeJsonSerialisedAndDeserialised.
@Test
public void canBeJsonSerialisedAndDeserialised() throws Exception {
final AccessPredicate predicate = createAccessPredicate(TEST_USER.getUserId());
final byte[] bytes = JSONSerialiser.serialise(predicate);
assertEquals("{" + "\"class\":\"uk.gov.gchq.gaffer.federatedstore.access.predicate.FederatedGraphWriteAccessPredicate\"," + "\"userPredicate\":{\"class\":\"uk.gov.gchq.gaffer.federatedstore.access.predicate.user.FederatedGraphWriteUserPredicate\",\"creatingUserId\":\"TestUser\"}" + "}", new String(bytes, CommonConstants.UTF_8));
assertEquals(predicate, JSONSerialiser.deserialise(bytes, FederatedGraphWriteAccessPredicate.class));
}
Aggregations