From 6c31032a5c2a6753e46152c2bbebbab77b21de4d Mon Sep 17 00:00:00 2001 From: yves Date: Tue, 4 Feb 2025 18:51:06 -0400 Subject: [PATCH] pkp/pkp-lib#10486 fix context retrieval using the conditional that validates whether the context of the request is the same as the context of the submission. --- classes/services/PKPSubmissionService.inc.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/classes/services/PKPSubmissionService.inc.php b/classes/services/PKPSubmissionService.inc.php index 2008629771c..40c7db22225 100644 --- a/classes/services/PKPSubmissionService.inc.php +++ b/classes/services/PKPSubmissionService.inc.php @@ -317,6 +317,10 @@ public function getPropertyReviewAssignments($submission) { $request = \Application::get()->getRequest(); $currentUser = $request->getUser(); + $context = $request->getContext(); + if (!$context || $context->getId() != $submission->getData('contextId')) { + $context = Services::get('context')->get($submission->getData('contextId')); + } $context = Services::get('context')->get($submission->getData('contextId')); $dateFormatShort = $context->getLocalizedDateFormatShort(); $due = is_null($reviewAssignment->getDateDue()) ? null : strftime($dateFormatShort, strtotime($reviewAssignment->getDateDue())); @@ -396,7 +400,10 @@ public function getPropertyStages($submission, $stageIds = null) { } $currentUser = \Application::get()->getRequest()->getUser(); - $context = Services::get('context')->get($submission->getData('contextId')); + $context = \Application::get()->getRequest()->getContext(); + if (!$context || $context->getId() != $submission->getData('contextId')) { + $context = Services::get('context')->get($submission->getData('contextId')); + } $contextId = $context ? $context->getId() : CONTEXT_ID_NONE; $stages = array(); @@ -550,7 +557,11 @@ public function getWorkflowUrlByUserRoles($submission, $userId = null) { return false; } - $submissionContext = Services::get('context')->get($submission->getData('contextId')); + $submissionContext = $request->getContext(); + + if (!$submissionContext || $submissionContext->getId() != $submission->getData('contextId')) { + $submissionContext = Services::get('context')->get($submission->getData('contextId')); + } $dispatcher = $request->getDispatcher();