RED-2661 - Removing a dossier member or deleting a user must not change the status of a file

- update after review
This commit is contained in:
devplant 2021-11-22 12:40:11 +02:00
parent 43c499414b
commit c985a474d6
4 changed files with 16 additions and 13 deletions

View File

@ -33,9 +33,9 @@ public class AnalysisFlagsCalculationService {
var file = fileStatusPersistenceService.getStatus(fileId);
var redactionLog = redactionLogService.getRedactionLog(dossierId, fileId, true);
var viewedPagesForCurrentReviewer = viewedPagesPersistenceService.findViewedPages(fileId, file.getAssignee());
var viewedPagesForCurrentAssignee = viewedPagesPersistenceService.findViewedPages(fileId, file.getAssignee());
Map<Integer, OffsetDateTime> viewedPages = viewedPagesForCurrentReviewer.stream().collect(Collectors.toMap(ViewedPageEntity::getPage, ViewedPageEntity::getViewedTime));
Map<Integer, OffsetDateTime> viewedPages = viewedPagesForCurrentAssignee.stream().collect(Collectors.toMap(ViewedPageEntity::getPage, ViewedPageEntity::getViewedTime));
boolean hasRedactions = false;
boolean hasHints = false;

View File

@ -62,7 +62,7 @@ public class FileService {
if (existingStatus.getAssignee() != null && !request.getUploader()
.equalsIgnoreCase(existingStatus.getAssignee())) {
throw new ConflictException("Only the reviewer can overwrite a file");
throw new ConflictException("Only the current assignee can overwrite a file");
}
}

View File

@ -194,24 +194,24 @@ public class FileStatusService {
}
public void setAssignee(String dossierId, String fileId, String currentReviewer) {
public void setAssignee(String dossierId, String fileId, String assignee) {
if (StringUtils.isNotEmpty(currentReviewer) && !dossierPersistenceService.getAndValidateDossier(dossierId)
if (StringUtils.isNotEmpty(assignee) && !dossierPersistenceService.getAndValidateDossier(dossierId)
.getMemberIds()
.contains(currentReviewer)) {
throw new UserNotFoundException("User=" + currentReviewer + " must be member or owner of dossier=" + dossierId);
.contains(assignee)) {
throw new UserNotFoundException("User=" + assignee + " must be member or owner of dossier=" + dossierId);
}
FileEntity fileStatus = fileStatusPersistenceService.getStatus(fileId);
String lastReviewer = fileStatus.getLastReviewer();
String lastApprover = fileStatus.getLastApprover();
if(StringUtils.isNotEmpty(currentReviewer) && WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) {
lastReviewer = currentReviewer;
if(StringUtils.isNotEmpty(assignee) && WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) {
lastReviewer = assignee;
}
if(StringUtils.isNotEmpty(currentReviewer) && WorkflowStatus.UNDER_APPROVAL.equals(fileStatus.getWorkflowStatus())) {
lastApprover = currentReviewer;
if(StringUtils.isNotEmpty(assignee) && WorkflowStatus.UNDER_APPROVAL.equals(fileStatus.getWorkflowStatus())) {
lastApprover = assignee;
}
fileStatusPersistenceService.setAssignee(fileId, currentReviewer, lastReviewer, lastApprover);
fileStatusPersistenceService.setAssignee(fileId, assignee, lastReviewer, lastApprover);
}

View File

@ -60,7 +60,7 @@ databaseChangeLog:
name: approval_date
type: TIMESTAMP WITHOUT TIME ZONE
- column:
name: current_reviewer
name: assignee
type: VARCHAR(255)
- column:
name: deleted
@ -119,6 +119,9 @@ databaseChangeLog:
- column:
name: last_reviewer
type: VARCHAR(255)
- column:
name: last_approver
type: VARCHAR(255)
- column:
name: last_updated
type: TIMESTAMP WITHOUT TIME ZONE