@NotNull @Override public TreePermission getTreePermission(@NotNull Tree tree, @NotNull TreePermission parentPermission) { return BASE.getTreePermission(tree, parentPermission); }
@NotNull @Override public TreePermission getTreePermission(@NotNull Tree tree, @NotNull TreePermission parentPermission) { return BASE.getTreePermission(tree, parentPermission); }
PermissionValidator(@NotNull NodeState rootBefore, @NotNull NodeState rootAfter, @NotNull PermissionProvider permissionProvider, @NotNull PermissionValidatorProvider provider) { this.parentBefore = provider.createReadOnlyTree(rootBefore); this.parentAfter = provider.createReadOnlyTree(rootAfter); this.parentPermission = permissionProvider.getTreePermission(parentBefore, TreePermission.EMPTY); this.permissionProvider = permissionProvider; this.provider = provider; this.isReferenceable = new TypePredicate(rootAfter, MIX_REFERENCEABLE); this.isCreated = new TypePredicate(rootAfter, MIX_CREATED); permission = Permissions.getPermission(PermissionUtil.getPath(parentBefore, parentAfter), Permissions.NO_PERMISSION); }
static TreePermission getTreePermission(@NotNull Root root, @NotNull String path, @NotNull PermissionProvider pp) { Tree t = root.getTree("/"); TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY); for (String segm : PathUtils.elements(path)) { t = t.getChild(segm); tp = pp.getTreePermission(t, tp); } return tp; } }
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; }
@Test public void testGetTreePermission() { assertSame(TreePermission.ALL, openProvider.getTreePermission(tree, TreePermission.EMPTY)); }
private Validator visibleValidator(@NotNull Tree source, @NotNull Tree dest) { // TODO improve: avoid calculating the 'before' permissions in case the current parent permissions already point to the correct tree. Tree immutableTree = moveCtx.rootBefore.getTree("/"); TreePermission tp = getPermissionProvider().getTreePermission(immutableTree, TreePermission.EMPTY); for (String n : PathUtils.elements(source.getPath())) { immutableTree = immutableTree.getChild(n); tp = tp.getChildPermission(n, getTreeProvider().asNodeState(immutableTree)); } Validator validator = createValidator(source, dest, tp, this); return new VisibleValidator(validator, true, false); }
private Validator visibleValidator(@NotNull Tree source, @NotNull Tree dest) { // TODO improve: avoid calculating the 'before' permissions in case the current parent permissions already point to the correct tree. Tree immutableTree = moveCtx.rootBefore.getTree("/"); TreePermission tp = getPermissionProvider().getTreePermission(immutableTree, TreePermission.EMPTY); for (String n : PathUtils.elements(source.getPath())) { immutableTree = immutableTree.getChild(n); tp = tp.getChildPermission(n, getTreeProvider().asNodeState(immutableTree)); } Validator validator = createValidator(source, dest, tp, this); return new VisibleValidator(validator, true, false); }
@NotNull private TreePermission getTreePermission(@NotNull ContentSession cs, @NotNull String path) throws Exception { Root r = cs.getLatestRoot(); PermissionProvider pp = config.getPermissionProvider(r, cs.getWorkspaceName(), cs.getAuthInfo().getPrincipals()); Tree t = r.getTree(PathUtils.ROOT_PATH); TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY); for (String name : PathUtils.elements(path)) { t = t.getChild(name); tp = pp.getTreePermission(t, tp); } return tp; }
@Test public void testGetTreePermissionInstanceOR() throws Exception { PermissionProvider pp = createPermissionProviderOR(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertCompositeTreePermission(tp); parentPermission = tp; } }
@Test public void testGetTreePermission() { PermissionProvider pp = createPermissionProvider(); Tree t = root.getTree(PermissionConstants.PERMISSIONS_STORE_PATH); assertSame(TreePermission.EMPTY, pp.getTreePermission(t, TreePermission.EMPTY)); }
@Test public void testGetTreePermissionInstance() throws Exception { PermissionProvider pp = createPermissionProvider(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertCompositeTreePermission(tp); parentPermission = tp; } }
@Override @Test public void testGetTreePermissionInstance() throws Exception { PermissionProvider pp = createPermissionProviderOR(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { Tree t = readOnlyRoot.getTree(path); TreePermission tp = pp.getTreePermission(t, parentPermission); assertCompositeTreePermission(t.isRoot(), tp); parentPermission = tp; } }
@Override @Test public void testGetTreePermissionInstance() throws Exception { PermissionProvider pp = createPermissionProvider(EveryonePrincipal.getInstance()); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertTrue(tp instanceof LimitedTreePermission); parentPermission = tp; } }
@Override @Test public void testTreePermissionCanReadPropertiesOR() throws Exception { PermissionProvider pp = createPermissionProviderOR(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertTrue(tp.canReadProperties()); parentPermission = tp; } }
@Test public void testTreePermissionCanReadPropertiesOR() throws Exception { PermissionProvider pp = createPermissionProviderOR(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertFalse(tp.canReadProperties()); parentPermission = tp; } }
@Override @Test public void testGetTreePermissionInstanceOR() throws Exception { PermissionProvider pp = createPermissionProvider(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { Tree t = readOnlyRoot.getTree(path); TreePermission tp = pp.getTreePermission(t, parentPermission); assertCompositeTreePermission(t.isRoot(), tp); parentPermission = tp; } }
@Override @Test public void testGetTreePermissionInstanceOR() throws Exception { PermissionProvider pp = createPermissionProviderOR(EveryonePrincipal.getInstance()); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertTrue(tp instanceof LimitedTreePermission); parentPermission = tp; } }
@Test public void testTreePermissionCanReadProperties() throws Exception { PermissionProvider pp = createPermissionProvider(); TreePermission parentPermission = TreePermission.EMPTY; for (String path : TP_PATHS) { TreePermission tp = pp.getTreePermission(readOnlyRoot.getTree(path), parentPermission); assertFalse(tp.canReadProperties()); parentPermission = tp; } }
private TreePermission getTreePermission(String path) throws Exception { ContentSession testSession = createTestSession(); PermissionProvider pp = config.getPermissionProvider(testSession.getLatestRoot(), testSession.getWorkspaceName(), testSession.getAuthInfo().getPrincipals()); return pp.getTreePermission(root.getTree(path), TreePermission.EMPTY); }