From c3fa4d47a4a880e54f64859749a3ac971f97c782 Mon Sep 17 00:00:00 2001 From: iliax Date: Wed, 10 Apr 2024 15:31:33 +0400 Subject: [PATCH 1/3] ISSUE-80: Fixing ActionDTO parsing from config --- .../ui/controller/ApplicationConfigController.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java b/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java index b72c46cc2..1d649826f 100644 --- a/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java +++ b/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java @@ -5,6 +5,7 @@ import io.kafbat.ui.api.ApplicationConfigApi; import io.kafbat.ui.config.ClustersProperties; +import io.kafbat.ui.model.ActionDTO; import io.kafbat.ui.model.ApplicationConfigDTO; import io.kafbat.ui.model.ApplicationConfigPropertiesDTO; import io.kafbat.ui.model.ApplicationConfigValidationDTO; @@ -18,6 +19,7 @@ import io.kafbat.ui.util.ApplicationRestarter; import io.kafbat.ui.util.DynamicConfigOperations; import java.util.Map; +import java.util.Optional; import javax.annotation.Nullable; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -46,6 +48,12 @@ interface PropertiesMapper { DynamicConfigOperations.PropertiesStructure fromDto(ApplicationConfigPropertiesDTO dto); ApplicationConfigPropertiesDTO toDto(DynamicConfigOperations.PropertiesStructure propertiesStructure); + + default ActionDTO stringToActionDTO(String str) { + return Optional.ofNullable(str) + .map(s -> Enum.valueOf(ActionDTO.class, s.toUpperCase())) + .orElseThrow(); + } } private final DynamicConfigOperations dynamicConfigOperations; @@ -75,7 +83,7 @@ public Mono> getCurrentConfig(ServerWebExch @Override public Mono> restartWithConfig(Mono restartRequestDto, ServerWebExchange exchange) { - var context = AccessContext.builder() + var context = AccessContext.builder() .applicationConfigActions(EDIT) .operationName("restartWithConfig") .build(); From 22f9bcc9f966acf044ef80ee77dad5c96cb98569 Mon Sep 17 00:00:00 2001 From: iliax Date: Wed, 10 Apr 2024 15:45:36 +0400 Subject: [PATCH 2/3] checkstyle fix --- .../io/kafbat/ui/controller/ApplicationConfigController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java b/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java index 1d649826f..5d5d4ed98 100644 --- a/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java +++ b/api/src/main/java/io/kafbat/ui/controller/ApplicationConfigController.java @@ -49,7 +49,7 @@ interface PropertiesMapper { ApplicationConfigPropertiesDTO toDto(DynamicConfigOperations.PropertiesStructure propertiesStructure); - default ActionDTO stringToActionDTO(String str) { + default ActionDTO stringToActionDto(String str) { return Optional.ofNullable(str) .map(s -> Enum.valueOf(ActionDTO.class, s.toUpperCase())) .orElseThrow(); From cf97a0ea9a98599240fac7c38d8fd6614abd2b8b Mon Sep 17 00:00:00 2001 From: iliax Date: Sun, 26 May 2024 20:42:00 +0400 Subject: [PATCH 3/3] ALL enum added to ActionDTO --- api/src/main/java/io/kafbat/ui/model/rbac/Permission.java | 3 ++- contract/src/main/resources/swagger/kafbat-ui-api.yaml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/io/kafbat/ui/model/rbac/Permission.java b/api/src/main/java/io/kafbat/ui/model/rbac/Permission.java index 42b043ae8..dfce00637 100644 --- a/api/src/main/java/io/kafbat/ui/model/rbac/Permission.java +++ b/api/src/main/java/io/kafbat/ui/model/rbac/Permission.java @@ -3,6 +3,7 @@ import static org.apache.commons.collections.CollectionUtils.isNotEmpty; import com.google.common.base.Preconditions; +import io.kafbat.ui.model.ActionDTO; import io.kafbat.ui.model.rbac.permission.PermissibleAction; import java.util.List; import java.util.regex.Pattern; @@ -50,7 +51,7 @@ public void transform() { if (value != null) { this.compiledValuePattern = Pattern.compile(value); } - if (actions.stream().anyMatch("ALL"::equalsIgnoreCase)) { + if (actions.stream().anyMatch(ActionDTO.ALL.name()::equalsIgnoreCase)) { this.parsedActions = resource.allActions(); } else { this.parsedActions = resource.parseActionsWithDependantsUnnest(actions); diff --git a/contract/src/main/resources/swagger/kafbat-ui-api.yaml b/contract/src/main/resources/swagger/kafbat-ui-api.yaml index 8feb20c15..95fc91e90 100644 --- a/contract/src/main/resources/swagger/kafbat-ui-api.yaml +++ b/contract/src/main/resources/swagger/kafbat-ui-api.yaml @@ -3820,6 +3820,7 @@ components: Action: type: string enum: + - ALL - VIEW - EDIT - CREATE