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 <[email protected]>
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));

Reply via email to