From fec00a1f5d32b3877e97814afe42e02b68d82e20 Mon Sep 17 00:00:00 2001 From: Hafsa-Naeem Date: Thu, 12 Sep 2024 10:25:22 +0500 Subject: [PATCH 1/3] pkp/pkp-lib#10090 Ensure anonymity in discussions for double-blind review --- controllers/grid/queries/form/QueryForm.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/controllers/grid/queries/form/QueryForm.php b/controllers/grid/queries/form/QueryForm.php index 3f623f6db32..7e176b6f758 100644 --- a/controllers/grid/queries/form/QueryForm.php +++ b/controllers/grid/queries/form/QueryForm.php @@ -331,9 +331,7 @@ public function fetch($request, $template = null, $display = false, $actionArgs // Replaces StageAssignmentDAO::getBySubmissionAndRoleId $excludeUsers = StageAssignment::withSubmissionIds([$query->assocId]) ->withRoleIds([Role::ROLE_ID_AUTHOR]) - ->withUserId($user->getId()) - ->get() - ->pluck('userId') + ->pluck('user_id') ->all(); } } From 3fa4c3c7f469c54ef1339d2e0164fbb5b4f8fb75 Mon Sep 17 00:00:00 2001 From: Hafsa-Naeem Date: Mon, 23 Sep 2024 17:45:37 +0500 Subject: [PATCH 2/3] pkp/pkp-lib#10090 Avoid usage of column name outside of a query builder --- controllers/grid/queries/form/QueryForm.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/controllers/grid/queries/form/QueryForm.php b/controllers/grid/queries/form/QueryForm.php index 7e176b6f758..3f623f6db32 100644 --- a/controllers/grid/queries/form/QueryForm.php +++ b/controllers/grid/queries/form/QueryForm.php @@ -331,7 +331,9 @@ public function fetch($request, $template = null, $display = false, $actionArgs // Replaces StageAssignmentDAO::getBySubmissionAndRoleId $excludeUsers = StageAssignment::withSubmissionIds([$query->assocId]) ->withRoleIds([Role::ROLE_ID_AUTHOR]) - ->pluck('user_id') + ->withUserId($user->getId()) + ->get() + ->pluck('userId') ->all(); } } From b09c81b025f83d3d8df8835e10b55041576cea71 Mon Sep 17 00:00:00 2001 From: Hafsa-Naeem Date: Wed, 2 Oct 2024 08:15:15 +0500 Subject: [PATCH 3/3] pkp/pkp-lib#10090 fix conflicts and rebased --- classes/stageAssignment/StageAssignment.php | 11 +++++++++++ controllers/grid/queries/form/QueryForm.php | 11 ++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/classes/stageAssignment/StageAssignment.php b/classes/stageAssignment/StageAssignment.php index 04da0d97002..ab2c5d95322 100644 --- a/classes/stageAssignment/StageAssignment.php +++ b/classes/stageAssignment/StageAssignment.php @@ -145,4 +145,15 @@ public function scopeWithContextId(Builder $query, ?int $contextId): Builder ->where('submissions.context_id', $contextId); }); } + + + /** + * Accessor for the userId attribute. + * + * @return int The user_id as an integer. + */ + public function getUserIdAttribute(): int + { + return (int) $this->attributes['user_id']; + } } diff --git a/controllers/grid/queries/form/QueryForm.php b/controllers/grid/queries/form/QueryForm.php index 3f623f6db32..4746df9be4c 100644 --- a/controllers/grid/queries/form/QueryForm.php +++ b/controllers/grid/queries/form/QueryForm.php @@ -327,14 +327,11 @@ public function fetch($request, $template = null, $display = false, $actionArgs // if current user is an anonymous reviewer, filter out authors foreach ($reviewAssignments as $reviewAssignment) { if ($reviewAssignment->getReviewerId() == $user->getId()) { - if ($reviewAssignment->getReviewMethod() != ReviewAssignment::SUBMISSION_REVIEW_METHOD_OPEN) { - // Replaces StageAssignmentDAO::getBySubmissionAndRoleId - $excludeUsers = StageAssignment::withSubmissionIds([$query->assocId]) + if ($reviewAssignment->getReviewMethod() == ReviewAssignment::SUBMISSION_REVIEW_METHOD_DOUBLEANONYMOUS) { + $stageAssignments = StageAssignment::withSubmissionIds([$query->assocId]) ->withRoleIds([Role::ROLE_ID_AUTHOR]) - ->withUserId($user->getId()) - ->get() - ->pluck('userId') - ->all(); + ->get(); + $excludeUsers = $stageAssignments->pluck('userId')->all(); } } }