You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2021/01/13 13:30:26 UTC

[sling-org-apache-sling-feature-cpconverter] branch SLING-9956 updated: SLING-9956 : RepPolicyEntryHandler ignores ACEs on repository level (don't issue create path statements for repository-level paths)

This is an automated email from the ASF dual-hosted git repository.

angela pushed a commit to branch SLING-9956
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git


The following commit(s) were added to refs/heads/SLING-9956 by this push:
     new 3f57011  SLING-9956 : RepPolicyEntryHandler ignores ACEs on repository level (don't issue create path statements for repository-level paths)
3f57011 is described below

commit 3f57011efb573867f9b0a72114c7f5c304c45b82
Author: angela <an...@adobe.com>
AuthorDate: Wed Jan 13 14:30:10 2021 +0100

    SLING-9956 : RepPolicyEntryHandler ignores ACEs on repository level (don't issue create path statements for repository-level paths)
---
 .../sling/feature/cpconverter/accesscontrol/DefaultAclManager.java  | 6 +++++-
 .../feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
index 12bb776..f8a6c83 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
@@ -206,7 +206,11 @@ public final class DefaultAclManager implements AclManager {
 
         Set<RepoPath> paths = new TreeSet<>();
         for (AccessControlEntry authorization : authorizations) {
-            addPath(authorization.getRepositoryPath(), paths);
+            RepoPath rp = authorization.getRepositoryPath();
+            // exclude special paths: user/group home nodes and subtrees therein, repository-level marker path
+            if (!(rp.isRepositoryPath())) {
+                addPath(authorization.getRepositoryPath(), paths);
+            }
         }
 
         for (RepoPath path : paths) {
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
index 7f53d64..f70c6f4 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
@@ -79,6 +79,8 @@ public class RepRepoPolicyEntryHandlerTest {
                 "end" + System.lineSeparator();
         String actual = repoinitExtension.getText();
         assertTrue(actual.endsWith(expectedEnd));
+        // no path must be create for repository level entries
+        assertFalse(actual, actual.contains("create path (sling:Folder) /"));
 
         RepoInitParser repoInitParser = new RepoInitParserService();
         List<Operation> operations = repoInitParser.parse(new StringReader(actual));