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:06 UTC

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

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);