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

[sling-org-apache-sling-feature-cpconverter] branch issues/SLING-9961 created (now 1d82ebd)

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

pauls pushed a change to branch issues/SLING-9961
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git.


      at 1d82ebd  SLING-9961: remove addSystemUserPath

This branch includes the following new commits:

     new 1d82ebd  SLING-9961: remove addSystemUserPath

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-9961: remove addSystemUserPath

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1d82ebdbe34ebec091a5a21e62b44c3fdf77522c
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Wed Jan 13 14:00:40 2021 +0100

    SLING-9961: remove addSystemUserPath
---
 .../accesscontrol/DefaultAclManager.java           | 49 ++++------------------
 .../cpconverter/accesscontrol/AclManagerTest.java  |  6 +--
 .../handlers/RepPolicyEntryHandlerTest.java        |  6 +--
 .../handlers/SystemUsersEntryHandlerTest.java      |  2 +-
 4 files changed, 14 insertions(+), 49 deletions(-)

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..4aaa185 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
@@ -51,8 +51,6 @@ public final class DefaultAclManager implements AclManager {
 
     private static final String DEFAULT_TYPE = "sling:Folder";
 
-    private final Set<SystemUser> preProvidedSystemUsers = new LinkedHashSet<>();
-
     private final Set<RepoPath> preProvidedSystemPaths = new HashSet<>();
 
     private final Set<RepoPath> preProvidedPaths = new HashSet<>();
@@ -66,10 +64,7 @@ public final class DefaultAclManager implements AclManager {
     private volatile PrivilegeDefinitions privilegeDefinitions;
 
     public boolean addSystemUser(@NotNull SystemUser systemUser) {
-        if (preProvidedSystemUsers.add(systemUser)) {
-            return systemUsers.add(systemUser);
-        }
-        return false;
+        return systemUsers.add(systemUser);
     }
 
     public boolean addAcl(@NotNull String systemUser, @NotNull AccessControlEntry acl) {
@@ -105,34 +100,15 @@ public final class DefaultAclManager implements AclManager {
             // system users
 
             for (SystemUser systemUser : systemUsers) {
-                // TODO does it harm?!?
-                addSystemUserPath(formatter, systemUser.getIntermediatePath());
-
                 // make sure all users are created first
-
                 formatter.format("create service user %s with path %s%n", systemUser.getId(), systemUser.getIntermediatePath());
-
-                // clean the unneeded ACLs, see SLING-8561
-
-                List<AccessControlEntry> authorizations = acls.remove(systemUser.getId());
-
-                if (authorizations != null) {
-                    addStatements(systemUser, authorizations, packageAssemblers, formatter);
-                }
             }
 
-            // all the resting ACLs can now be set
-
-            for (Entry<String, List<AccessControlEntry>> currentAcls : acls.entrySet()) {
-                Optional<SystemUser> systemUser = getSystemUser(currentAcls.getKey());
-
-                if (systemUser.isPresent()) {
-                    List<AccessControlEntry> authorizations = currentAcls.getValue();
-                    if (authorizations != null) {
-                        addStatements(systemUser.get(), authorizations, packageAssemblers, formatter);
-                    }
-                }
-            }
+            // add the acls
+            acls.forEach((systemUserID, authorizations) ->
+                getSystemUser(systemUserID).ifPresent(systemUser ->
+                    addStatements(systemUser, authorizations, packageAssemblers, formatter)
+                ));
 
             String text = formatter.toString();
 
@@ -166,18 +142,7 @@ public final class DefaultAclManager implements AclManager {
     }
 
     private @NotNull Optional<SystemUser> getSystemUser(@NotNull String id) {
-        for (SystemUser systemUser : preProvidedSystemUsers) {
-            if (id.equals(systemUser.getId())) {
-                return Optional.of(systemUser);
-            }
-        }
-        return Optional.empty();
-    }
-
-    private void addSystemUserPath(@NotNull Formatter formatter, @NotNull RepoPath path) {
-        if (preProvidedSystemPaths.add(path)) {
-            formatter.format("create path (rep:AuthorizableFolder) %s%n", path);
-        }
+        return systemUsers.stream().filter(systemUser ->  systemUser.getId().equals(id)).findFirst();
     }
 
     @Override
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
index 710d0d7..77a25b2 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
@@ -88,7 +88,7 @@ public class AclManagerTest {
         assertNotNull(repoinitExtension);
 
         // acs-commons-on-deploy-scripts-service will be missed
-        String expected = "create path (rep:AuthorizableFolder) /home/users/system" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user acs-commons-package-replication-status-event-service with path /home/users/system" + System.lineSeparator() +
                 "create path (sling:Folder) /asd" + System.lineSeparator() +
                 "create path (sling:Folder) /asd/not" + System.lineSeparator() +
@@ -135,7 +135,7 @@ public class AclManagerTest {
         assertNotNull(repoinitExtension);
 
         // aacs-commons-ensure-oak-index-service will be missed
-        String expected = "create path (rep:AuthorizableFolder) /home/users/system" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user acs-commons-package-replication-status-event-service with path /home/users/system" + System.lineSeparator() +
                 "create path (sling:Folder) /asd" + System.lineSeparator() +
                 "create path (sling:Folder) /asd/not" + System.lineSeparator() +
@@ -189,7 +189,7 @@ public class AclManagerTest {
         Extension repoinitExtension = feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
 
-        String expected = "create path (rep:AuthorizableFolder) /home/users/system" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user sys-usr with path /home/users/system" + System.lineSeparator() +
                 "create path (sling:Folder) /content" + System.lineSeparator() +
                 "create path (sling:Folder) /content/cq:tags" + System.lineSeparator() +
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
index 07cf136..cbd1b0c 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
@@ -94,7 +94,7 @@ public final class RepPolicyEntryHandlerTest {
         assertEquals(ExtensionType.TEXT, repoinitExtension.getType());
 
         // commented ACLs are due SLING-8561
-        String expected = "create path (rep:AuthorizableFolder) /home/users/system" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user acs-commons-ensure-oak-index-service with path /home/users/system" + System.lineSeparator() +
                 // "create path (sling:Folder) /asd\n" +
                 // "create path (sling:Folder) /asd/public\n" +
@@ -141,7 +141,7 @@ public final class RepPolicyEntryHandlerTest {
         assertEquals(ExtensionType.TEXT, repoinitExtension.getType());
 
         // commented ACLs are due SLING-8561
-        String expected = "create path (rep:AuthorizableFolder) /home/users/system" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user acs-commons-package-replication-status-event-service with path /home/users/system" + System.lineSeparator() +
                 // "create path (sling:Folder) /asd\n" +
                 // "create path (sling:Folder) /asd/public\n" +
@@ -188,7 +188,7 @@ public final class RepPolicyEntryHandlerTest {
         assertNotNull(repoinitExtension);
         assertEquals(ExtensionType.TEXT, repoinitExtension.getType());
 
-        String expected = "create path (rep:AuthorizableFolder) /this/is/a/completely/different/path" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user acs-commons-package-replication-status-event-service with path /this/is/a/completely/different/path" + System.lineSeparator() +
                 "create path (sling:Folder) /home" + System.lineSeparator() +
                 "create path (sling:Folder) /home/users" + System.lineSeparator() +
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/SystemUsersEntryHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/SystemUsersEntryHandlerTest.java
index 604a1f9..3fe0523 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/SystemUsersEntryHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/SystemUsersEntryHandlerTest.java
@@ -69,7 +69,7 @@ public class SystemUsersEntryHandlerTest {
         assertEquals(ExtensionType.TEXT, repoinitExtension.getType());
         assertTrue(repoinitExtension.isRequired());
 
-        String expected = "create path (rep:AuthorizableFolder) /home/users/system/asd-share-commons" + System.lineSeparator() + // SLING-8586
+        String expected =
                 "create service user asd-share-commons-asd-index-definition-reader-service with path /home/users/system/asd-share-commons" + System.lineSeparator();
         String actual = repoinitExtension.getText();
         assertEquals(expected, actual);