Merge branch 'RED-6821-9210' into 'master'
RED-6821: Dossier templates only soft-deleted, cannot create new template with same name && RED-9210: RED_USER and RED_MANAGER can bulk-delete dossier-templates - should return 403 Closes RED-6821 See merge request redactmanager/persistence-service!509
This commit is contained in:
commit
c2d02b3faa
@ -136,7 +136,7 @@ public class DossierTemplateController implements DossierTemplateResource {
|
||||
|
||||
|
||||
@Override
|
||||
@PreAuthorize("hasAuthority('" + READ_DOSSIER_TEMPLATES + "')")
|
||||
@PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')")
|
||||
public void deleteDossierTemplates(@RequestBody List<String> dossierTemplateIds) {
|
||||
|
||||
String userId = KeycloakSecurity.getUserId();
|
||||
|
||||
@ -211,9 +211,11 @@ public class DossierTemplatePersistenceService {
|
||||
if (hasNonDeletedDossiers) {
|
||||
throw new BadRequestException("Cannot delete dossier template with active dossiers!");
|
||||
} else {
|
||||
|
||||
dossierTemplate.setModifiedBy(deletingUserId);
|
||||
dossierTemplate.setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
dossierTemplate.setSoftDeleteTime(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
dossierTemplate.setName(dossierTemplate.getName() + "_" + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
}
|
||||
}, () -> {
|
||||
throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId));
|
||||
|
||||
@ -188,6 +188,31 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDossierTemplateNameChangedOnDelete() {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
var allTemplates = dossierTemplateClient.getAllDossierTemplates();
|
||||
assertThat(allTemplates.size()).isEqualTo(1);
|
||||
assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate);
|
||||
assertThat(dossierTemplate.isApplyDictionaryUpdatesToAllDossiersByDefault()).isFalse();
|
||||
|
||||
var testDossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
|
||||
dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId()));
|
||||
|
||||
dossierTemplateClient.deleteDossierTemplate(dossierTemplate.getId());
|
||||
assertThat(dossierTemplateClient.getAllDossierTemplates().isEmpty()).isTrue();
|
||||
|
||||
dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
var loadedTemplate = dossierTemplateClient.getDossierTemplate(dossierTemplate.getId());
|
||||
|
||||
assertThat(loadedTemplate).isEqualTo(dossierTemplate);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDossierTemplateUniqueNameConflict() {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user