SLING-9961: remove addSystemUserPath
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 @@
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 @@
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 @@
// 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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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);