@NotNull @Override public RepositoryPermission getRepositoryPermission() { return BASE.getRepositoryPermission(); }
@NotNull @Override public RepositoryPermission getRepositoryPermission() { return BASE.getRepositoryPermission(); }
private void checkPermissions(@Nullable Tree tree, long permissions) throws AccessDeniedException { boolean isGranted; if (tree == null) { isGranted = getPermissionProvider().getRepositoryPermission().isGranted(permissions); } else { isGranted = getPermissionProvider().isGranted(tree, null, permissions); } if (!isGranted) { throw new AccessDeniedException("Access denied."); } }
private void checkPermissions(@Nullable Tree tree, long permissions) throws AccessDeniedException { boolean isGranted; if (tree == null) { isGranted = getPermissionProvider().getRepositoryPermission().isGranted(permissions); } else { isGranted = getPermissionProvider().isGranted(tree, null, permissions); } if (!isGranted) { throw new AccessDeniedException("Access denied."); } }
@Test public void testGetRepositoryPermission() { assertSame(RepositoryPermission.EMPTY, emptyProvider.getRepositoryPermission()); }
private void checkPermissions(@NotNull Tree parent, @NotNull PropertyState property, long defaultPermission) throws CommitFailedException { if (NodeStateUtils.isHidden(property.getName())) { // ignore any hidden properties (except for OAK_CHILD_ORDER which has // been covered in "propertyChanged" return; } long toTest = getPermission(parent, property, defaultPermission); if (toTest != Permissions.NO_PERMISSION) { boolean isGranted; if (Permissions.isRepositoryPermission(toTest)) { isGranted = permissionProvider.getRepositoryPermission().isGranted(toTest); } else { isGranted = parentPermission.isGranted(toTest, property); } if (!isGranted) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } } }
private void checkPermissions(@Nonnull Tree parent, @Nonnull PropertyState property, long defaultPermission) throws CommitFailedException { if (NodeStateUtils.isHidden(property.getName())) { // ignore any hidden properties (except for OAK_CHILD_ORDER which has // been covered in "propertyChanged" return; } long toTest = getPermission(parent, property, defaultPermission); if (toTest != Permissions.NO_PERMISSION) { boolean isGranted; if (Permissions.isRepositoryPermission(toTest)) { isGranted = permissionProvider.getRepositoryPermission().isGranted(toTest); } else { isGranted = parentPermission.isGranted(toTest, property); } if (!isGranted) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } } }
@Test public void testGetRepositoryPermission() { assertSame(RepositoryPermission.ALL, openProvider.getRepositoryPermission()); }
private void checkPermissions(@NotNull Tree parent, @NotNull PropertyState property, long defaultPermission) throws CommitFailedException { if (NodeStateUtils.isHidden(property.getName())) { // ignore any hidden properties (except for OAK_CHILD_ORDER which has // been covered in "propertyChanged" return; } long toTest = getPermission(parent, property, defaultPermission); if (toTest != Permissions.NO_PERMISSION) { boolean isGranted; if (Permissions.isRepositoryPermission(toTest)) { isGranted = permissionProvider.getRepositoryPermission().isGranted(toTest); } else { isGranted = parentPermission.isGranted(toTest, property); } if (!isGranted) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } } }
@Nullable Validator checkPermissions(@NotNull Tree tree, boolean isBefore, long defaultPermission) throws CommitFailedException { long toTest = getPermission(tree, defaultPermission); if (Permissions.isRepositoryPermission(toTest)) { if (!permissionProvider.getRepositoryPermission().isGranted(toTest)) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } return null; // no need for further validation down the subtree } else { NodeState ns = provider.getTreeProvider().asNodeState(tree); TreePermission tp = parentPermission.getChildPermission(tree.getName(), ns); if (!tp.isGranted(toTest)) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } if (noTraverse(toTest, defaultPermission)) { return null; } else { return (isBefore) ? nextValidator(tree, null, tp) : nextValidator(null, tree, tp); } } }
@Nullable Validator checkPermissions(@NotNull Tree tree, boolean isBefore, long defaultPermission) throws CommitFailedException { long toTest = getPermission(tree, defaultPermission); if (Permissions.isRepositoryPermission(toTest)) { if (!permissionProvider.getRepositoryPermission().isGranted(toTest)) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } return null; // no need for further validation down the subtree } else { NodeState ns = provider.getTreeProvider().asNodeState(tree); TreePermission tp = parentPermission.getChildPermission(tree.getName(), ns); if (!tp.isGranted(toTest)) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } if (noTraverse(toTest, defaultPermission)) { return null; } else { return (isBefore) ? nextValidator(tree, null, tp) : nextValidator(null, tree, tp); } } }
@CheckForNull Validator checkPermissions(@Nonnull Tree tree, boolean isBefore, long defaultPermission) throws CommitFailedException { long toTest = getPermission(tree, defaultPermission); if (Permissions.isRepositoryPermission(toTest)) { if (!permissionProvider.getRepositoryPermission().isGranted(toTest)) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } return null; // no need for further validation down the subtree } else { NodeState ns = getNodeState(tree); if (ns == null) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } TreePermission tp = parentPermission.getChildPermission(tree.getName(), ns); if (!tp.isGranted(toTest)) { throw new CommitFailedException(ACCESS, 0, "Access denied"); } if (noTraverse(toTest, defaultPermission)) { return null; } else { return (isBefore) ? nextValidator(tree, null, tp) : nextValidator(null, tree, tp); } } }
@Test public void testIsGrantedForReadPaths() throws Exception { ContentSession testSession = createTestSession(); try { PermissionProvider pp = createPermissionProvider(testSession) ; for (String path : READ_PATHS) { assertTrue(pp.isGranted(path, Permissions.getString(Permissions.READ))); assertTrue(pp.isGranted(path, Permissions.getString(Permissions.READ_NODE))); assertTrue(pp.isGranted(path + '/' + JcrConstants.JCR_PRIMARYTYPE, Permissions.getString(Permissions.READ_PROPERTY))); assertFalse(pp.isGranted(path, Permissions.getString(Permissions.READ_ACCESS_CONTROL))); } for (String path : READ_PATHS) { Tree tree = root.getTree(path); assertTrue(pp.isGranted(tree, null, Permissions.READ)); assertTrue(pp.isGranted(tree, null, Permissions.READ_NODE)); assertTrue(pp.isGranted(tree, tree.getProperty(JcrConstants.JCR_PRIMARYTYPE), Permissions.READ_PROPERTY)); assertFalse(pp.isGranted(tree, null, Permissions.READ_ACCESS_CONTROL)); } RepositoryPermission rp = pp.getRepositoryPermission(); assertFalse(rp.isGranted(Permissions.READ)); assertFalse(rp.isGranted(Permissions.READ_NODE)); assertFalse(rp.isGranted(Permissions.READ_PROPERTY)); assertFalse(rp.isGranted(Permissions.READ_ACCESS_CONTROL)); } finally { testSession.close(); } }