Skip to content

Commit 6723dc6

Browse files
committed
2024-10-22 - feedback - external reviewer - server-side
1 parent 41ac1aa commit 6723dc6

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

server/src/main/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestServicesImpl.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,8 @@ public FeedbackRequest getById(UUID id) {
330330
}
331331
final LocalDate sendDate = feedbackReq.get().getSendDate();
332332
final UUID requesteeId = feedbackReq.get().getRequesteeId();
333-
final UUID recipientId = feedbackReq.get().getRecipientId();
333+
final UUID recipientId;
334+
recipientId = feedbackReq.get().getRecipientId() != null ? feedbackReq.get().getRecipientId() : feedbackReq.get().getExternalRecipientId();
334335
if (!getIsPermitted(requesteeId, recipientId, sendDate)) {
335336
throw new PermissionException(NOT_AUTHORIZED_MSG);
336337
}
@@ -356,12 +357,14 @@ public List<FeedbackRequest> findByValues(UUID creatorId, UUID requesteeId, UUID
356357

357358
feedbackReqList = feedbackReqList.stream().filter((FeedbackRequest request) -> {
358359
boolean visible = false;
360+
final UUID recipientIdLocal;
359361
if (currentUserServices.isAdmin()) {
360362
visible = true;
361363
} else if (request != null) {
362364
if (currentUserId.equals(request.getCreatorId())) visible = true;
363365
if (isSupervisor(request.getRequesteeId(), currentUserId)) visible = true;
364-
if (currentUserId.equals(request.getRecipientId())) visible = true;
366+
recipientIdLocal = request.getRecipientId() != null ? request.getRecipientId() : request.getExternalRecipientId();
367+
if (currentUserId.equals(recipientIdLocal)) visible = true;
365368
}
366369
return visible;
367370
}).toList();
@@ -385,16 +388,16 @@ private boolean createIsPermitted(UUID requesteeId) {
385388
return isAdmin || currentUserId.equals(requesteePDL) || isRequesteesSupervisor || currentUserId.equals(requesteeId);
386389
}
387390

388-
private boolean getIsPermitted(UUID requesteeId, UUID recipientId, LocalDate sendDate) {
391+
private boolean getIsPermitted(UUID requesteeId, UUID recipientOrExternalRecipientId, LocalDate sendDate) {
389392
LocalDate today = LocalDate.now();
390393
final UUID currentUserId = currentUserServices.getCurrentUser().getId();
391394

392395
// The recipient can only access the feedback request after it has been sent
393-
if (sendDate.isAfter(today) && currentUserId.equals(recipientId)) {
396+
if (sendDate.isAfter(today) && currentUserId.equals(recipientOrExternalRecipientId)) {
394397
throw new PermissionException("You are not permitted to access this request before the send date.");
395398
}
396399

397-
return createIsPermitted(requesteeId) || currentUserId.equals(recipientId);
400+
return createIsPermitted(requesteeId) || currentUserId.equals(recipientOrExternalRecipientId);
398401
}
399402

400403
private boolean updateDueDateIsPermitted(FeedbackRequest feedbackRequest) {
@@ -427,6 +430,7 @@ private FeedbackRequest getFromDTO(FeedbackRequestUpdateDTO dto) {
427430
feedbackRequest.setStatus(dto.getStatus());
428431
feedbackRequest.setSubmitDate(dto.getSubmitDate());
429432
feedbackRequest.setRecipientId(dto.getRecipientId());
433+
feedbackRequest.setExternalRecipientId(dto.getExternalRecipientId());
430434

431435
return feedbackRequest;
432436
}

0 commit comments

Comments
 (0)