@@ -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