RED-7934: Do not delete manual redactions at remove redaction if not updateDictionary #216

Merged
dominique.eiflaender1 merged 1 commits from RED-7934 into master 2023-11-16 14:04:17 +01:00
2 changed files with 11 additions and 9 deletions

View File

@ -117,7 +117,7 @@ public class ManualRedactionService {
log.info("add removeRedaction for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId());
removeRedactionPersistenceService.insert(fileId, removeRedactionRequest);
if (manualAddRedactionsContains(manualRedactions, removeRedactionRequest.getAnnotationId())) {
if (manualAddToDictionaryRedactionsContains(manualRedactions, removeRedactionRequest.getAnnotationId())) {
log.info("hard delete ManualRedactions for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId());
manualRedactionProviderService.hardDeleteManualRedactions(fileId, removeRedactionRequest.getAnnotationId());
continue;
@ -288,9 +288,9 @@ public class ManualRedactionService {
}
private boolean manualAddRedactionsContains(ManualRedactions manualRedactions, String annotationId) {
private boolean manualAddToDictionaryRedactionsContains(ManualRedactions manualRedactions, String annotationId) {
return manualRedactions.getEntriesToAdd().stream().anyMatch(m -> annotationId.equals(m.getAnnotationId()));
return manualRedactions.getEntriesToAdd().stream().anyMatch(m -> annotationId.equals(m.getAnnotationId()) && (m.isAddToDictionary() || m.isAddToDossierDictionary()));
}

View File

@ -1617,7 +1617,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
@Test
public void testRemoveManualRedactionEntityRemovesAllManualRedactions() {
public void testNonDictionaryRemoveManualRedactionEntityDoesNotRemoveAllManualRedactions() {
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
@ -1662,11 +1662,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
.positions(List.of(new Rectangle(new Point(10, 10), 100, 100, 1)))
.build()));
manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).build()));
assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().isEmpty());
assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getLegalBasisChanges().isEmpty());
assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getForceRedactions().isEmpty());
assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getRecategorizations().isEmpty());
assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getResizeRedactions().isEmpty());
// Only AddToDictionaries will remove all manual redactions.
assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().size());
assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getLegalBasisChanges().size());
assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getForceRedactions().size());
assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getRecategorizations().size());
assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getResizeRedactions().size());
assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getIdsToRemove().size());
}