Search in sources :

Example 86 with TreePermission

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

the class PermissionProviderImplTest method testAdministatorConfig.

@Test
public void testAdministatorConfig() throws Exception {
    adminstrators.addMember(getTestUser());
    root.commit();
    ContentSession testSession = createTestSession();
    try {
        Root r = testSession.getLatestRoot();
        Root immutableRoot = RootFactory.createReadOnlyRoot(r);
        PermissionProvider pp = createPermissionProvider(testSession);
        assertTrue(r.getTree("/").exists());
        TreePermission tp = pp.getTreePermission(immutableRoot.getTree("/"), TreePermission.EMPTY);
        assertSame(TreePermission.ALL, tp);
        for (String path : READ_PATHS) {
            Tree tree = r.getTree(path);
            assertTrue(tree.exists());
            assertSame(TreePermission.ALL, pp.getTreePermission(tree, TreePermission.EMPTY));
        }
    } finally {
        testSession.close();
    }
}
Also used : Root(org.apache.jackrabbit.oak.api.Root) PermissionProvider(org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider) ContentSession(org.apache.jackrabbit.oak.api.ContentSession) Tree(org.apache.jackrabbit.oak.api.Tree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 87 with TreePermission

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

the class RepoPolicyTreePermissionTest method testCanRead.

@Test
public void testCanRead() throws Exception {
    TreePermission tp = getTreePermission(accessSession, REPO_POLICY_PATH);
    assertTrue(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 88 with TreePermission

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

the class VersionTreePermissionTest method assertVersionPermission.

private void assertVersionPermission(@Nonnull TreePermission tp, @Nonnull String expectedPath, boolean canRead) throws Exception {
    assertTrue(tp instanceof VersionTreePermission);
    assertEquals(canRead, tp.canRead());
    assertEquals(canRead, tp.canRead(PropertyStates.createProperty("any", "Value")));
    assertEquals(canRead, tp.isGranted(Permissions.READ));
    assertEquals(canRead, tp.isGranted(Permissions.READ, PropertyStates.createProperty("any", "Value")));
    assertEquals(canRead, tp.canReadProperties());
    assertFalse(tp.canReadAll());
    VersionTreePermission vtp = (VersionTreePermission) tp;
    TreePermission delegatee = (TreePermission) vpField.get(vtp);
    Tree delegateeTree = (Tree) tpImplTree.get(delegatee);
    assertEquals(expectedPath, delegateeTree.getPath());
}
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 89 with TreePermission

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

the class RepoPolicyTreePermissionTest method testIsGrantedProperty.

@Test
public void testIsGrantedProperty() throws Exception {
    PropertyState ps = PropertyStates.createProperty("name", "value");
    TreePermission tp = getTreePermission(accessSession, REPO_POLICY_PATH);
    assertTrue(tp.isGranted(Permissions.NAMESPACE_MANAGEMENT, ps));
    assertFalse(tp.isGranted(Permissions.WORKSPACE_MANAGEMENT, ps));
    assertFalse(tp.isGranted(Permissions.NAMESPACE_MANAGEMENT | Permissions.WORKSPACE_MANAGEMENT, ps));
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) PropertyState(org.apache.jackrabbit.oak.api.PropertyState) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 90 with TreePermission

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

the class RepoPolicyTreePermissionTest method testCanReadAll2.

@Test
public void testCanReadAll2() throws Exception {
    TreePermission tp = getTreePermission(noAccessSession, REPO_POLICY_PATH);
    assertFalse(tp.canReadAll());
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) 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