diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java index ddfaf4c12..7324c60cc 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java @@ -9,9 +9,13 @@ import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.external.resource.ApplicationConfigurationResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.ApplicationConfig; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import jakarta.persistence.Column; import jakarta.validation.Valid; @@ -25,14 +29,24 @@ import lombok.extern.slf4j.Slf4j; public class ApplicationConfigurationController implements ApplicationConfigurationResource { private final ApplicationConfigService applicationConfigService; + private final AuditPersistenceService auditPersistenceService; @Override @PreAuthorize("hasAuthority('" + WRITE_APP_CONFIG + "')") public ApplicationConfig createOrUpdateAppConfig(@Valid @RequestBody ApplicationConfig appConfig) { - return MagicConverter.convert(applicationConfigService.saveApplicationConfiguration(convert(appConfig)), + var result = MagicConverter.convert(applicationConfigService.saveApplicationConfiguration(convert(appConfig)), ApplicationConfig.class); + + auditPersistenceService.audit(AuditRequest.builder() + .userId(KeycloakSecurity.getUserId()) + .objectId("ApplicationConfig") + .category(AuditCategory.SETTINGS.name()) + .message("Application config has been changed.") + .build()); + + return result; } diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/CustomPermissionMappingController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/CustomPermissionMappingController.java index 7501e0732..eb7b5aa18 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/CustomPermissionMappingController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/CustomPermissionMappingController.java @@ -11,8 +11,12 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.service.CustomPermissionService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.CustomPermissionMappingResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.permission.CustomPermissionMappingModel; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import lombok.RequiredArgsConstructor; @@ -21,6 +25,7 @@ import lombok.RequiredArgsConstructor; public class CustomPermissionMappingController implements CustomPermissionMappingResource { private final CustomPermissionService customPermissionService; + private final AuditPersistenceService auditPersistenceService; @Override @@ -36,6 +41,14 @@ public class CustomPermissionMappingController implements CustomPermissionMappin public void saveCustomPermissionMappings(@PathVariable(TARGET_OBJECT_NAME) String targetObject, @RequestBody List customPermissionMappingModels) { customPermissionService.saveCustomPermissionMappings(targetObject, customPermissionMappingModels); + + auditPersistenceService.audit(AuditRequest.builder() + .userId(KeycloakSecurity.getUserId()) + .objectId(targetObject) + .category(AuditCategory.SETTINGS.name()) + .message("Custom permissions have been changed.") + .build()); + } diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierStatusController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierStatusController.java index d2a8efc4d..95291dde2 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierStatusController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierStatusController.java @@ -14,13 +14,17 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.utils.ColorUtils; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.external.resource.DossierStatusResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierStatusInfo; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -31,6 +35,7 @@ import lombok.extern.slf4j.Slf4j; public class DossierStatusController implements DossierStatusResource { private final DossierStatusPersistenceService dossierStatusPersistenceService; + private final AuditPersistenceService auditPersistenceService; @Override @@ -57,6 +62,15 @@ public class DossierStatusController implements DossierStatusResource { .rank(dossierStatusRequest.getRank()) .color(dossierStatusRequest.getColor()) .build()); + + auditPersistenceService.audit(AuditRequest.builder() + .userId(KeycloakSecurity.getUserId()) + .objectId(dossierStatusRequest.getDossierTemplateId()) + .category(AuditCategory.DOSSIER_TEMPLATE.name()) + .message("Dossier states has been updated.") + .build()); + + return MagicConverter.convert(response, DossierStatusInfo.class); }