Search in sources :

Example 31 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class VersionTreePermissionTest method getVersionPermission.

private static TreePermission getVersionPermission(Root root, PermissionProvider pp, String path) {
    Tree t = root.getTree("/");
    TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY);
    for (String name : PathUtils.elements(path)) {
        t = t.getChild(name);
        tp = pp.getTreePermission(t, tp);
    }
    return tp;
}
Also used : Tree(org.apache.jackrabbit.oak.api.Tree) ImmutableTree(org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission)

Example 32 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class VersionTreePermissionTest method testVersionableChildRemoved2.

@Test
public void testVersionableChildRemoved2() throws Exception {
    root.getTree("/test/a/b").remove();
    root.commit();
    pp.refresh();
    Tree versionHistory = checkNotNull(vMgr.getVersionHistory(testTree));
    String frozenAPath = PathUtils.concat(versionHistory.getPath(), "1.0", JCR_FROZENNODE, "a");
    TreePermission tp = getVersionPermission(root, pp, frozenAPath);
    assertVersionPermission(tp, "/test/a", true);
    Tree frozenB = root.getTree(frozenAPath).getChild("b");
    tp = pp.getTreePermission(frozenB, tp);
    assertVersionPermission(tp, "/test/a/b", true);
    Tree frozenC = frozenB.getChild("c");
    tp = pp.getTreePermission(frozenC, tp);
    assertVersionPermission(tp, "/test/a/b/c", true);
}
Also used : Tree(org.apache.jackrabbit.oak.api.Tree) ImmutableTree(org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 33 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class RepoPolicyTreePermissionTest method testCanRead2.

@Test
public void testCanRead2() throws Exception {
    TreePermission tp = getTreePermission(noAccessSession, REPO_POLICY_PATH);
    assertFalse(tp.canRead());
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 34 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class RepoPolicyTreePermissionTest method testIsGranted2.

@Test
public void testIsGranted2() throws Exception {
    TreePermission tp = getTreePermission(noAccessSession, REPO_POLICY_PATH);
    assertFalse(tp.isGranted(Permissions.NAMESPACE_MANAGEMENT));
    assertFalse(tp.isGranted(Permissions.WORKSPACE_MANAGEMENT));
    assertFalse(tp.isGranted(Permissions.NAMESPACE_MANAGEMENT | Permissions.WORKSPACE_MANAGEMENT));
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 35 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class VersionTest method testTreePermissionVersionableUnsupportedPath.

@Test
public void testTreePermissionVersionableUnsupportedPath() throws Exception {
    Tree versionable = root.getTree(UNSUPPORTED_PATH);
    Tree vh = checkNotNull(versionManager.getVersionHistory(versionable));
    CugPermissionProvider pp = createCugPermissionProvider(ImmutableSet.of(SUPPORTED_PATH, SUPPORTED_PATH2));
    Tree t = root.getTree("/");
    TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY);
    for (String segm : PathUtils.elements(vh.getPath())) {
        t = t.getChild(segm);
        tp = pp.getTreePermission(t, tp);
        if (JCR_SYSTEM.equals(segm) || ReadOnlyVersionManager.isVersionStoreTree(t)) {
            assertTrue(t.getPath(), tp instanceof EmptyCugTreePermission);
        } else {
            assertSame(t.getPath(), TreePermission.NO_RECOURSE, tp);
        }
    }
}
Also used : Tree(org.apache.jackrabbit.oak.api.Tree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) Test(org.junit.Test)

Aggregations

TreePermission (org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission)109 Test (org.junit.Test)94 Tree (org.apache.jackrabbit.oak.api.Tree)53 AbstractSecurityTest (org.apache.jackrabbit.oak.AbstractSecurityTest)41 ImmutableTree (org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree)22 PermissionProvider (org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider)11 NodeState (org.apache.jackrabbit.oak.spi.state.NodeState)10 AggregatedPermissionProvider (org.apache.jackrabbit.oak.spi.security.authorization.permission.AggregatedPermissionProvider)8 PropertyState (org.apache.jackrabbit.oak.api.PropertyState)6 Nonnull (javax.annotation.Nonnull)4 AccessControlManager (javax.jcr.security.AccessControlManager)4 Root (org.apache.jackrabbit.oak.api.Root)4 JackrabbitAccessControlList (org.apache.jackrabbit.api.security.JackrabbitAccessControlList)3 TreeType (org.apache.jackrabbit.oak.plugins.tree.TreeType)3 NodeUtil (org.apache.jackrabbit.oak.util.NodeUtil)3 Field (java.lang.reflect.Field)2 AuthorizationConfiguration (org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 CheckForNull (javax.annotation.CheckForNull)1