AccessControlValidator(@Nonnull NodeState parentAfter, @Nonnull PrivilegeManager privilegeManager, @Nonnull PrivilegeBitsProvider privilegeBitsProvider, @Nonnull RestrictionProvider restrictionProvider, @Nonnull TreeProvider treeProvider) { this.parentAfter = treeProvider.createReadOnlyTree(parentAfter); this.privilegeBitsProvider = privilegeBitsProvider; this.privilegeManager = privilegeManager; this.restrictionProvider = restrictionProvider; this.isRepoAccessControllable = new TypePredicate(parentAfter, MIX_REP_REPO_ACCESS_CONTROLLABLE); this.isAccessControllable = new TypePredicate(parentAfter, MIX_REP_ACCESS_CONTROLLABLE); }
@Override public Editor getRootEditor( NodeState before, NodeState after, NodeBuilder builder, CommitInfo info) { TypePredicate isACE = new TypePredicate(after, NT_REP_ACE); return new RestrictionEditor(builder, isACE); }
@Override public Editor getRootEditor( NodeState before, NodeState after, NodeBuilder builder, CommitInfo info) { TypePredicate isACE = new TypePredicate(after, NT_REP_ACE); return new RestrictionEditor(builder, isACE); }
public ReadWriteVersionManager(NodeBuilder versionStorageNode, NodeBuilder workspaceRoot) { this.versionStorageNode = checkNotNull(versionStorageNode); this.workspaceRoot = checkNotNull(workspaceRoot); this.isVersion = new TypePredicate(workspaceRoot.getNodeState(), NT_VERSION); }
@Override protected Validator getRootValidator(NodeState before, NodeState after, CommitInfo info) { this.isMixCug = new TypePredicate(after, MIX_REP_CUG_MIXIN); return new CugValidator("", after, false); }
@Override public EventFilter createFilter(NodeState before, NodeState after) { TypePredicate predicate = new TypePredicate( after.exists() ? after : before, ntNames); return new UniversalFilter(before, after, selector, predicate); } }
@Override public EventFilter createFilter(NodeState before, NodeState after) { TypePredicate predicate = new TypePredicate( after.exists() ? after : before, ntNames); return new UniversalFilter(before, after, selector, predicate); } }
public IdentifierTracker(NodeState root) { this.referenceable = new TypePredicate(root, MIX_REFERENCEABLE); this.parent = null; this.name = null; String uuid = root.getString(JCR_UUID); if (uuid != null && referenceable.apply(root)) { this.identifier = uuid; } else { this.identifier = "/"; } }
public IdentifierTracker(NodeState root) { this.referenceable = new TypePredicate(root, MIX_REFERENCEABLE); this.parent = null; this.name = null; String uuid = root.getString(JCR_UUID); if (uuid != null && referenceable.apply(root)) { this.identifier = uuid; } else { this.identifier = "/"; } }
@Nullable @Override protected Validator getRootValidator(NodeState before, NodeState after, CommitInfo info) { TypePredicate cachePredicate = new TypePredicate(after, NT_REP_CACHE); boolean isValidCommitInfo = CommitMarker.isValidCommitInfo(info); return new CacheValidator(treeProvider.createReadOnlyTree(before), treeProvider.createReadOnlyTree(after), cachePredicate, isValidCommitInfo); }
private VersionableEditor(Provider provider, NodeBuilder rootBuilder) { this.rootBuilder = rootBuilder; this.versionStorage = getVersionStorage(rootBuilder); this.vMgr = new ReadWriteVersionManager(versionStorage, rootBuilder); this.provider = provider; this.isVersionable = new TypePredicate(rootBuilder.getNodeState(), MIX_VERSIONABLE); this.isReferenceable = new TypePredicate(rootBuilder.getNodeState(), MIX_REFERENCEABLE); this.versionCopier = new VersionCopier(rootBuilder, getVersionStorage(provider.sourceRoot), versionStorage); this.path = "/"; }
private VersionableEditor(Provider provider, NodeBuilder rootBuilder) { this.rootBuilder = rootBuilder; this.versionStorage = getVersionStorage(rootBuilder); this.vMgr = new ReadWriteVersionManager(versionStorage, rootBuilder); this.provider = provider; this.isVersionable = new TypePredicate(rootBuilder.getNodeState(), MIX_VERSIONABLE); this.isReferenceable = new TypePredicate(rootBuilder.getNodeState(), MIX_REFERENCEABLE); this.versionCopier = new VersionCopier(rootBuilder, getVersionStorage(provider.sourceRoot), versionStorage); this.path = "/"; }
private void removeVersions() throws CommitFailedException { NodeState root = target.getRoot(); NodeState wrappedRoot = FilteringNodeState.wrap(PathUtils.ROOT_PATH, root, includePaths, excludePaths, FilteringNodeState.NONE, FilteringNodeState.NONE); List<String> versionablesToStrip = VersionHistoryUtil.getVersionableNodes(wrappedRoot, new TypePredicate(root, JcrConstants.MIX_VERSIONABLE), versionCopyConfiguration.getVersionsMinDate()); if (!versionablesToStrip.isEmpty()) { logger.info("Removing version histories for included paths"); NodeBuilder newRoot = VersionHistoryUtil.removeVersions(root, versionablesToStrip); target.merge(newRoot, EmptyHook.INSTANCE, CommitInfo.EMPTY); } }
private void removeVersions() throws CommitFailedException { NodeState root = target.getRoot(); NodeState wrappedRoot = FilteringNodeState.wrap(PathUtils.ROOT_PATH, root, includePaths, excludePaths, FilteringNodeState.NONE, FilteringNodeState.NONE); List<String> versionablesToStrip = VersionHistoryUtil.getVersionableNodes(wrappedRoot, new TypePredicate(root, JcrConstants.MIX_VERSIONABLE), versionCopyConfiguration.getVersionsMinDate()); if (!versionablesToStrip.isEmpty()) { LOG.info("Removing version histories for included paths"); NodeBuilder newRoot = VersionHistoryUtil.removeVersions(root, versionablesToStrip); target.merge(newRoot, EmptyHook.INSTANCE, CommitInfo.EMPTY); } }
private void removeVersions() throws CommitFailedException { NodeState root = target.getRoot(); NodeState wrappedRoot = FilteringNodeState.wrap(PathUtils.ROOT_PATH, root, includePaths, excludePaths, FilteringNodeState.NONE, FilteringNodeState.NONE); List<String> versionablesToStrip = VersionHistoryUtil.getVersionableNodes(wrappedRoot, new TypePredicate(root, JcrConstants.MIX_VERSIONABLE), versionCopyConfiguration.getVersionsMinDate()); if (!versionablesToStrip.isEmpty()) { logger.info("Removing version histories for included paths"); NodeBuilder newRoot = VersionHistoryUtil.removeVersions(root, versionablesToStrip); target.merge(newRoot, EmptyHook.INSTANCE, CommitInfo.EMPTY); } }
private static List<ChildTypeDef> parseNamedChildNodeDefs(NodeState root, NodeState parentType, TypePredicate parentTypePredicate) { List<ChildTypeDef> defs = new ArrayList<ChildTypeDef>(); NodeState namedChildNodeDefinitions = parentType.getChildNode(REP_NAMED_CHILD_NODE_DEFINITIONS); for (ChildNodeEntry childName : namedChildNodeDefinitions.getChildNodeEntries()) { for (String childType : filterChildren(childName.getNodeState(), NO_SNS_PROPERTY)) { TypePredicate childTypePredicate = new TypePredicate(root, childType); defs.add(new ChildTypeDef(parentTypePredicate, childName.getName(), childTypePredicate)); } } return defs; }
@Test public void singleNodeTypeMiss() { NodeState node = createNodeOfType(NT_BASE); TypePredicate p = new TypePredicate(node, new String[] {NT_FILE}); assertFalse(p.apply(node)); }
@Test public void multipleNodeTypesMatch() { NodeState node = createNodeOfType(NT_FILE); TypePredicate p = new TypePredicate(node, new String[] { NT_FOLDER, NT_RESOURCE, NT_FILE }); assertTrue(p.apply(node)); }
@Test public void multipleNodeTypesMiss() { NodeState node = createNodeOfType(NT_FILE); TypePredicate p = new TypePredicate(node, new String[] { NT_FOLDER, NT_RESOURCE, JCR_CONTENT }); assertFalse(p.apply(node)); }
@Test public void singleNodeTypeMatch() { NodeState node = createNodeOfType(NT_BASE); TypePredicate p = new TypePredicate(node, new String[] {NT_BASE}); assertTrue(p.apply(node)); }