Privilege[] privileges = privilegesFromNames(new String[] { Privilege.JCR_READ_ACCESS_CONTROL });
Privilege[] privileges = privilegesFromNames(new String[] { Privilege.JCR_READ_ACCESS_CONTROL });
public void testSetModifiedPolicy() throws RepositoryException, NotExecutableException { /* precondition: testuser must have READ-only permission on test-node and below */ checkReadOnly(path); /* grant 'testUser' rep:write, rep:readAccessControl and rep:modifyAccessControl privileges at 'path' */ Privilege[] privileges = privilegesFromNames(new String[] { PrivilegeRegistry.REP_WRITE, Privilege.JCR_READ_ACCESS_CONTROL, Privilege.JCR_MODIFY_ACCESS_CONTROL }); JackrabbitAccessControlList tmpl = givePrivileges(path, privileges, getRestrictions(superuser, path)); /* testuser must be allowed to set (modified) policy at target node. */ Session testSession = getTestSession(); AccessControlManager testAcMgr = getTestACManager(); AccessControlPolicy[] policies = testAcMgr.getPolicies(path); assertEquals(1, policies.length); assertTrue(policies[0] instanceof AccessControlList); AccessControlList acl = (AccessControlList) policies[0]; if (acl.addAccessControlEntry(testUser.getPrincipal(), new Privilege[] {testAcMgr.privilegeFromName(Privilege.JCR_LOCK_MANAGEMENT)})) { testAcMgr.setPolicy(path, acl); testSession.save(); } }
Privilege[] privileges = privilegesFromNames(new String[] { PrivilegeRegistry.REP_WRITE, Privilege.JCR_READ_ACCESS_CONTROL,
public void testAccessControlPrivileges() throws RepositoryException, NotExecutableException { /* precondition: testuser must have READ-only permission on test-node and below */ checkReadOnly(path); /* grant 'testUser' rep:write, rep:readAccessControl and rep:modifyAccessControl privileges at 'path' */ Privilege[] privileges = privilegesFromNames(new String[] { PrivilegeRegistry.REP_WRITE, Privilege.JCR_READ_ACCESS_CONTROL, Privilege.JCR_MODIFY_ACCESS_CONTROL }); JackrabbitAccessControlList tmpl = givePrivileges(path, privileges, getRestrictions(superuser, path)); Session testSession = getTestSession(); AccessControlManager testAcMgr = getTestACManager(); /* testuser must have - permission to view AC items - permission to modify AC items */ // the policy node however must be visible to the test-user assertTrue(testSession.itemExists(tmpl.getPath() + "/rep:policy")); testAcMgr.getPolicies(tmpl.getPath()); testAcMgr.removePolicy(tmpl.getPath(), tmpl); }