public GraphPermissions getGraphPermissions(String uri) { return this.graphManager.getPermissions(uri, currentTransaction); }
@Test public void testWriteRead_defaultGraph() throws FileNotFoundException { File file = new File(datasource + "semantics.trig"); FileHandle filehandle = new FileHandle(); filehandle.set(file); gmWriter.write(gmWriter.DEFAULT_GRAPH, filehandle.withMimetype(RDFMimeTypes.TRIG)); FileHandle handle = gmWriter.read(gmWriter.DEFAULT_GRAPH, new FileHandle()); GraphPermissions permissions = gmWriter.getPermissions(gmWriter.DEFAULT_GRAPH); System.out.println(permissions); assertEquals(Capability.UPDATE, permissions.get("rest-writer").iterator().next()); assertEquals(Capability.READ, permissions.get("rest-reader").iterator().next()); gmWriter.deletePermissions(gmWriter.DEFAULT_GRAPH); permissions = gmWriter.getPermissions(gmWriter.DEFAULT_GRAPH); System.out.println(permissions); assertEquals(Capability.UPDATE, permissions.get("rest-writer").iterator().next()); File readFile = handle.get(); String expectedContent = convertFileToString(readFile); System.out.println(gmWriter.listGraphUris().next().toString()); assertTrue("" + gmWriter.listGraphUris().next().toString(), gmWriter.listGraphUris().next().toString().equals("http://marklogic.com/semantics#default-graph")); assertTrue("Did not insert document or inserted empty doc", expectedContent.contains("http://www.example.org/exampleDocument#Monica")); }
@Test public void C_testGetPermissions() throws Exception { GraphManager readPrivilegedGmgr = readPrivilegedClient.newGraphManager(); GraphPermissions permissions = readPrivilegedGmgr.getPermissions(graphUri); assertEquals(6, permissions.size()); assertNotNull(permissions.get("read-privileged")); assertNotNull(permissions.get("write-privileged")); assertEquals(1, permissions.get("read-privileged").size()); assertEquals(1, permissions.get("write-privileged").size()); assertEquals(Capability.READ, permissions.get("read-privileged").iterator().next()); assertEquals(Capability.UPDATE, permissions.get("write-privileged").iterator().next()); }
@Test public void F_testDeletePermissions() throws Exception { gmgr.deletePermissions(graphUri); GraphPermissions permissions = gmgr.getPermissions(graphUri); assertEquals(4, permissions.size()); assertNull(permissions.get("read-privileged")); }
@Test public void D_testWritePermissions() throws Exception { GraphPermissions perms = gmgr.newGraphPermissions(); perms = perms.permission("read-privileged", Capability.EXECUTE); gmgr.writePermissions(graphUri, perms); GraphPermissions permissions = gmgr.getPermissions(graphUri); assertEquals(5, permissions.size()); assertNotNull(permissions.get("read-privileged")); assertEquals(1, permissions.get("read-privileged").size()); for ( Capability capability : permissions.get("read-privileged") ) { assertEquals(Capability.EXECUTE, capability); } }
GraphPermissions readBackPermissions = graphManagerPerm.getPermissions("OriginalGraph"); Set<Entry<String, Set<Capability>>> setPermissions = readBackPermissions.entrySet(); Iterator<Entry<String, Set<Capability>>> itr = setPermissions.iterator(); GraphPermissions graphPermission = sparqlGmgr.getPermissions("CopiedGraph");
gmTestPerm.write(uri, handle.withMimetype(RDFMimeTypes.RDFXML), perms, trx); System.out.println("Permissions after create , Shold not see Execute" + gmTestPerm.getPermissions(uri, trx)); perms = gmTestPerm.getPermissions(uri, trx); for (Capability capability : perms.get("test-perm")) { assertTrue("capability should be UPDATE, not [" + capability + "]", capability == Capability.UPDATE); perms = gmTestPerm.getPermissions(uri, trx); System.out.println("Permissions after setting execute , Should see Execute & Update" + gmTestPerm.getPermissions(uri, trx)); for (Capability capability : perms.get("test-perm")) { assertTrue("capability should be UPDATE && Execute, not [" + capability + "]", capability == Capability.UPDATE System.out.println("Tried to Write Here ::" + e);// System.out.println("Permissions after setting execute , Should see Execute & Update" + gmTestPerm.getPermissions(uri, trx)); perms = gmTestPerm.getPermissions(uri, trx); } catch (Exception e) { System.out .println("Permissions after setting execute , Should see Execute & Update" + gmTestPerm.getPermissions(uri, trx)); + gmTestPerm.getPermissions(uri, trx)); System.out.println("Capabilities after delete , SHold not see Execute" + gmTestPerm.getPermissions(uri, trx));
gmTestPerm.mergePermissions(uri, perms, trx); GraphPermissions perm = gmTestPerm.getPermissions(uri); System.out.println("OUTSIDE TRX , SHOULD NOT SEE test-perm EXECUTE" + perm); assertNull(perm.get("test-perm")); perms = gmTestPerm.getPermissions(uri, trx); assertTrue("Permission within trx should have Update capability", perms.get("test-perm").contains(Capability.UPDATE)); trx.rollback(); trx = null; perms = gmTestPerm.getPermissions(uri); assertNull(perm.get("test-perm")); } catch (Exception e) {
@Test public void E_testMergePermissions() throws Exception { GraphPermissions perms = gmgr.permission("read-privileged", Capability.READ); gmgr.mergePermissions(graphUri, perms); GraphPermissions permissions = gmgr.getPermissions(graphUri); assertEquals(5, permissions.size()); assertNotNull(permissions.get("read-privileged")); assertEquals(2, permissions.get("read-privileged").size()); for ( Capability capability : permissions.get("read-privileged") ) { if ( capability == null ) fail("capability should not be null"); if ( capability != Capability.READ && capability != Capability.EXECUTE ) { fail("capabilities should be read or execute, not [" + capability + "]"); } } }
waitForPropertyPropagate(); System.out.println("Permissions after create , Shold not see Execute" + gmTestPerm.getPermissions(uri)); perms = gmTestPerm.getPermissions(uri); for (Capability capability : perms.get("test-perm")) { assertTrue("capability should be UPDATE, not [" + capability + "]", capability == Capability.UPDATE); perms = gmTestPerm.getPermissions(uri); System.out.println("Permissions after setting execute , Should see Execute & Update" + gmTestPerm.getPermissions(uri)); for (Capability capability : perms.get("test-perm")) { assertTrue("capability for role test-perm should be UPDATE && Execute, not [" + capability + "]", capability == Capability.UPDATE perms = gmTestPerm.getPermissions(uri); assertNull(perms.get("test-perm")); assertNull(perms.get("test-perm2")); System.out.println("Tried to Read and validate triples, shold see this exception ::" + e); System.out.println("Permissions after setting execute , Should see Execute & Update & Read " + gmTestPerm.getPermissions(uri)); System.out.println("Capabilities after delete , SHold not see Execute" + gmTestPerm.getPermissions(uri));
@Test public void G_testSPARQLInsertPermissions() throws Exception { String localGraphUri = graphUri + ".SPARQLPermissions"; String sparql = "INSERT DATA { GRAPH <" + localGraphUri + "> { <s2> <p2> <o2> } }"; SPARQLQueryManager sparqlMgr = Common.client.newSPARQLQueryManager(); SPARQLQueryDefinition qdef = sparqlMgr.newQueryDefinition(sparql) .withUpdatePermission("write-privileged", Capability.READ) .withUpdatePermission("write-privileged", Capability.UPDATE); sparqlMgr.executeUpdate(qdef); GraphPermissions getPermissions = gmgr.getPermissions(localGraphUri); assertEquals(5, getPermissions.size()); assertNotNull(getPermissions.get("write-privileged")); assertEquals(2, getPermissions.get("write-privileged").size()); for ( Capability capability : getPermissions.get("write-privileged") ) { if ( capability == null ) fail("capability should not be null"); if ( capability != Capability.READ && capability != Capability.UPDATE ) { fail("capabilities should be read or update, not [" + capability + "]"); } } gmgr.delete(localGraphUri); } }