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:
parent
43c499414b
commit
c985a474d6
@ -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;
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user