use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.
the class EmptyCugTreePermissionTest method testJcrSystemPermissions.
@Test
public void testJcrSystemPermissions() throws Exception {
NodeState system = rootState.getChildNode(JcrConstants.JCR_SYSTEM);
TreePermission systemTp = tp.getChildPermission(JcrConstants.JCR_SYSTEM, system);
assertCugPermission(systemTp, false);
assertCugPermission(pp.getTreePermission(root.getTree("/jcr:system"), tp), false);
NodeState versionStore = system.getChildNode(VersionConstants.JCR_VERSIONSTORAGE);
TreePermission versionStoreTp = systemTp.getChildPermission(VersionConstants.JCR_VERSIONSTORAGE, versionStore);
assertCugPermission(versionStoreTp, false);
assertCugPermission(pp.getTreePermission(root.getTree(VersionConstants.VERSION_STORE_PATH), systemTp), false);
NodeState nodeTypes = system.getChildNode(NodeTypeConstants.JCR_NODE_TYPES);
TreePermission nodeTypesTp = systemTp.getChildPermission(NodeTypeConstants.JCR_NODE_TYPES, nodeTypes);
assertSame(TreePermission.NO_RECOURSE, nodeTypesTp);
}
use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.
the class HiddenTest method testCombinedSetup.
@Test
public void testCombinedSetup() throws Exception {
AccessControlManager acMgr = getAccessControlManager(root);
try {
AccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, "/");
acl.addAccessControlEntry(EveryonePrincipal.getInstance(), AccessControlUtils.privilegesFromNames(acMgr, PrivilegeConstants.JCR_READ));
acMgr.setPolicy("/", acl);
root.commit();
PermissionProvider combined = getConfig(AuthorizationConfiguration.class).getPermissionProvider(readOnlyRoot, root.getContentSession().getWorkspaceName(), ImmutableSet.<Principal>of(EveryonePrincipal.getInstance()));
assertFalse(combined.hasPrivileges(hiddenTree, PrivilegeConstants.JCR_READ));
assertTrue(combined.getPrivileges(hiddenTree).isEmpty());
assertTrue(combined.isGranted(hiddenTree, null, Permissions.ALL));
assertTrue(combined.isGranted(hiddenTree.getPath(), Permissions.getString(Permissions.ALL)));
Tree t = readOnlyRoot.getTree("/");
TreePermission tp = combined.getTreePermission(t, TreePermission.EMPTY);
for (String name : PathUtils.elements(hiddenTree.getPath())) {
t = t.getChild(name);
tp = combined.getTreePermission(t, tp);
}
assertTrue(tp.isGranted(Permissions.ALL));
} finally {
AccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, "/");
acl.addAccessControlEntry(EveryonePrincipal.getInstance(), AccessControlUtils.privilegesFromNames(acMgr, PrivilegeConstants.JCR_READ));
acMgr.removePolicy("/", acl);
root.commit();
}
}
use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.
the class HiddenTest method testTreePermission.
@Test
public void testTreePermission() {
Tree t = readOnlyRoot.getTree("/");
TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY);
for (String name : PathUtils.elements(hiddenTree.getPath())) {
assertCugPermission(tp, true);
t = t.getChild(name);
tp = pp.getTreePermission(t, tp);
}
assertSame(TreePermission.NO_RECOURSE, tp);
assertEquals(Permissions.NO_PERMISSION, pp.supportedPermissions(tp, null, Permissions.READ));
}
use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.
the class VersionTest method testTreePermissionAtVersionableAboveSupported.
@Test
public void testTreePermissionAtVersionableAboveSupported() throws Exception {
Tree vh = checkNotNull(versionManager.getVersionHistory(root.getTree(SUPPORTED_PATH)));
CugPermissionProvider pp = createCugPermissionProvider(ImmutableSet.of(SUPPORTED_PATH + "/a"));
TreePermission tp = getTreePermission(root, vh.getPath(), pp);
assertTrue(tp instanceof EmptyCugTreePermission);
}
use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.
the class VersionTest method testVersionableWithCugParent.
@Test
public void testVersionableWithCugParent() throws Exception {
addVersionContent("/content/aa/bb/cc");
Tree cc = root.getTree("/content/aa/bb/cc");
assertFalse(CugUtil.hasCug(cc));
Tree vh = checkNotNull(versionManager.getVersionHistory(cc));
Tree t = root.getTree("/");
CugPermissionProvider pp = createCugPermissionProvider(ImmutableSet.of(SUPPORTED_PATH, SUPPORTED_PATH2), getTestGroupPrincipal());
TreePermission tp = getTreePermission(root, vh.getPath(), pp);
assertTrue(tp instanceof CugTreePermission);
assertTrue(((CugTreePermission) tp).isInCug());
assertTrue(((CugTreePermission) tp).isAllow());
}
Aggregations