diff --git a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java index e8bd5b858006ed1baa9e5a0f91d5095660d51983..1e195ea354d2166fda6663fc5443a8f3d702787e 100644 --- a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java +++ b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java @@ -91,7 +91,9 @@ public class OzgCloudElsterTransferUserService { if (Objects.isNull(configMap)) { return false; } - return getUsersFromConfigMap(configMap).existsUser(userLogin); + OzgCloudElsterTransferConfigMapUserList users = getUsersFromConfigMap(configMap); + LOG.debug("userExists is '{}' in namespace '{}'", users.existsUser(userLogin), userLogin); + return users.existsUser(userLogin); } @@ -113,6 +115,10 @@ public class OzgCloudElsterTransferUserService { OzgCloudElsterTransferConfigMapUserList getUsersFromConfigMap(ConfigMap configMap) { String usersYaml = configMap.getData().get(Constants.USERS_KEY); + if (Objects.isNull(usersYaml)) { + LOG.debug("userYaml is empty"); + return new OzgCloudElsterTransferConfigMapUserList(new ArrayList<>()); + } Map<String, Object> load = new Yaml().load(usersYaml); List<Map<String, Object>> usersList = (List<Map<String, Object>>) load.get("users"); return new OzgCloudElsterTransferConfigMapUserList(usersList); @@ -123,25 +129,25 @@ public class OzgCloudElsterTransferUserService { } String constructYamlEntries(OzgCloudElsterTransferConfigMapUserList userList) { + LOG.info("constructYamlEntries"); List<Map<String, Object>> usersList = userList.getUsersList(); StringBuilder usersYaml = new StringBuilder(); usersYaml.append("fileFormat: 1\nusers:\n"); for (Map<String, Object> userEntry : usersList) { usersYaml.append(getYamlForUser(userEntry)); + usersYaml.append(System.lineSeparator()); } return usersYaml.toString(); } String getYamlForUser(Map<String, Object> userEntry) { - StringBuilder sb = new StringBuilder(); - sb.append(" - { login: \"").append(userEntry.get("login")) - .append("\", rolle: \"").append(userEntry.get("rolle")) - .append("\", credentials: { passwortHash: \"") - .append(((Map<String, String>) userEntry.get("credentials")).get("passwortHash")) - .append("\" }, gruppe: \"").append(userEntry.get("gruppe")).append("\" }\n"); - return sb.toString(); + MustacheFactory mf = new DefaultMustacheFactory(); + Mustache mustache = mf.compile("users.tmpl"); + StringWriter writer = new StringWriter(); + mustache.execute(writer, userEntry); + return writer.toString(); } String generatePassword() { diff --git a/src/main/resources/users.tmpl b/src/main/resources/users.tmpl index 1a8f29b6293d20fb49688c7b2f6e9b1e449f7492..7e4b5c497b25ae2c44c523d0ed2a954bb8b17575 100644 --- a/src/main/resources/users.tmpl +++ b/src/main/resources/users.tmpl @@ -1 +1 @@ -- { login: "{{login}}", rolle: "{{rolle}}", credentials: { passwortHash: "{{passwortHash}}" }, gruppe: "{{gruppe}}" } \ No newline at end of file + - { login: "{{login}}", rolle: "{{rolle}}", credentials: { passwortHash: "{{credentials.passwortHash}}" }, gruppe: "{{gruppe}}" } \ No newline at end of file