public void testRevokeEffect() throws RepositoryException, NotExecutableException { JackrabbitAccessControlList pt = createEmptyTemplate(getTestPath()); Privilege[] privileges = privilegesFromName(Privilege.JCR_READ); pt.addEntry(testPrincipal, privileges, true, emptyRestrictions); // same entry but with revers 'isAllow' flag assertTrue(pt.addEntry(testPrincipal, privileges, false, emptyRestrictions)); // net-effect: only a single deny-read entry assertEquals(1, pt.size()); assertSamePrivileges(privileges, pt.getAccessControlEntries()[0].getPrivileges()); }
assertSamePrivileges(privileges, pt.getAccessControlEntries()[0].getPrivileges()); assertSamePrivileges(privileges, pt.getAccessControlEntries()[0].getPrivileges()); assertSamePrivileges(privilegesFromName(Privilege.JCR_ADD_CHILD_NODES), pt.getAccessControlEntries()[0].getPrivileges()); assertSamePrivileges(privilegesFromName(Privilege.JCR_READ), pt.getAccessControlEntries()[1].getPrivileges()); assertSamePrivileges(privilegesFromName(Privilege.JCR_ADD_CHILD_NODES), pt.getAccessControlEntries()[0].getPrivileges());
public void testUpdateEntry() throws RepositoryException, NotExecutableException { JackrabbitAccessControlList pt = createEmptyTemplate(getTestPath()); Privilege[] readPriv = privilegesFromName(Privilege.JCR_READ); Privilege[] writePriv = privilegesFromName(Privilege.JCR_WRITE); Principal principal2 = principalMgr.getEveryone(); pt.addEntry(testPrincipal, readPriv, true, emptyRestrictions); pt.addEntry(principal2, readPriv, true, emptyRestrictions); pt.addEntry(testPrincipal, writePriv, false, emptyRestrictions); // adding an entry that should update the existing allow-entry for everyone. pt.addEntry(principal2, writePriv, true, emptyRestrictions); AccessControlEntry[] entries = pt.getAccessControlEntries(); assertEquals(3, entries.length); JackrabbitAccessControlEntry princ2AllowEntry = (JackrabbitAccessControlEntry) entries[1]; assertEquals(principal2, princ2AllowEntry.getPrincipal()); assertTrue(princ2AllowEntry.isAllow()); assertSamePrivileges(new Privilege[] {readPriv[0], writePriv[0]}, princ2AllowEntry.getPrivileges()); }
public void testUpdateComplementaryEntry() throws RepositoryException, NotExecutableException { JackrabbitAccessControlList pt = createEmptyTemplate(getTestPath()); Privilege[] readPriv = privilegesFromName(Privilege.JCR_READ); Privilege[] writePriv = privilegesFromName(Privilege.JCR_WRITE); Principal principal2 = principalMgr.getEveryone(); pt.addEntry(testPrincipal, readPriv, true, emptyRestrictions); pt.addEntry(principal2, readPriv, true, emptyRestrictions); pt.addEntry(testPrincipal, writePriv, false, emptyRestrictions); pt.addEntry(principal2, writePriv, true, emptyRestrictions); // entry complementary to the first entry // -> must remove the allow-READ entry and update the deny-WRITE entry. pt.addEntry(testPrincipal, readPriv, false, emptyRestrictions); AccessControlEntry[] entries = pt.getAccessControlEntries(); assertEquals(2, entries.length); JackrabbitAccessControlEntry first = (JackrabbitAccessControlEntry) entries[0]; assertEquals(principal2, first.getPrincipal()); JackrabbitAccessControlEntry second = (JackrabbitAccessControlEntry) entries[1]; assertEquals(testPrincipal, second.getPrincipal()); assertFalse(second.isAllow()); assertSamePrivileges(new Privilege[] {readPriv[0], writePriv[0]}, second.getPrivileges()); }