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/ManualRedactionController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java index 668f3b580..bf43ff689 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java @@ -111,7 +111,7 @@ public class ManualRedactionController implements ManualRedactionResource { requests.add(addRedactionRequestBuilder.build()); } List responseList = new ArrayList<>(); - responseList = manualRedactionService.addAddRedaction(dossierId, fileId, requests); + responseList = manualRedactionService.addAddRedaction(dossierId, fileId, requests); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) .objectId(fileId) @@ -660,6 +660,7 @@ public class ManualRedactionController implements ManualRedactionResource { /* Approver Operations*/ + @PreAuthorize("hasAuthority('" + PROCESS_MANUAL_REDACTION_REQUEST + "')") public void declineRequestBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set annotationIds) { @@ -837,6 +838,7 @@ public class ManualRedactionController implements ManualRedactionResource { approveRequestBulk(dossierId, fileId, Set.of(annotationId)); } + @PreAuthorize("hasAuthority('" + PROCESS_MANUAL_REDACTION_REQUEST + "')") public void approveRequestBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set annotationIds) { @@ -897,7 +899,7 @@ public class ManualRedactionController implements ManualRedactionResource { requests.add(addRedactionRequestBuilder.build()); } - List responseList = manualRedactionService.addAddRedaction(dossierId, fileId, requests); + List responseList = manualRedactionService.addAddRedaction(dossierId, fileId, requests); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) .objectId(fileId) @@ -919,6 +921,7 @@ public class ManualRedactionController implements ManualRedactionResource { return removeRedactionBulk(dossierId, fileId, Set.of(removeRedactionRequest)).get(0); } + @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @@ -942,22 +945,17 @@ public class ManualRedactionController implements ManualRedactionResource { requests.add(removeRedactionRequestBuilder.build()); } - try { - List responseList = manualRedactionService.addRemoveRedaction(dossierId, fileId, requests); + List responseList = manualRedactionService.addRemoveRedaction(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Redaction was manually removed") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() + .userId(KeycloakSecurity.getUserId()) + .objectId(fileId) + .category(AuditCategory.DOCUMENT.name()) + .message("Redaction was manually removed") + .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) + .build())); - return responseList; - }catch (Exception e){ - e.printStackTrace();; - return null; - } + return responseList; } @@ -971,6 +969,7 @@ public class ManualRedactionController implements ManualRedactionResource { return forceRedactionBulk(dossierId, fileId, Set.of(forceRedactionRequest)).get(0); } + @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List forceRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @@ -1011,6 +1010,7 @@ public class ManualRedactionController implements ManualRedactionResource { return legalBasisChangeBulk(dossierId, fileId, Set.of(legalBasisChangeRequest)).get(0); } + @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List legalBasisChangeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @@ -1054,6 +1054,7 @@ public class ManualRedactionController implements ManualRedactionResource { return recategorizeImageBulk(dossierId, fileId, Set.of(imageRecategorizationRequest)).get(0); } + @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List recategorizeImageBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @@ -1097,6 +1098,7 @@ public class ManualRedactionController implements ManualRedactionResource { return resizeRedactionBulk(dossierId, fileId, Set.of(resizeRedactionRequest)).get(0); } + @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/ForwardTenantInterceptor.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/ForwardTenantInterceptor.java new file mode 100644 index 000000000..76be0fc39 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/ForwardTenantInterceptor.java @@ -0,0 +1,18 @@ +package com.iqser.red.service.persistence.management.v1.processor.multitenancy; + +import org.springframework.stereotype.Component; + +import feign.RequestInterceptor; +import feign.RequestTemplate; + +@Component +public class ForwardTenantInterceptor implements RequestInterceptor { + + public static final String TENANT_HEADER_NAME = "X-TENANT-ID"; + + @Override + public void apply(RequestTemplate template) { + // do something + template.header(TENANT_HEADER_NAME, "redaction"); + } +}