diff --git a/mod/workshop/classes/external.php b/mod/workshop/classes/external.php index 3c37a454649..f3ce788dbf0 100644 --- a/mod/workshop/classes/external.php +++ b/mod/workshop/classes/external.php @@ -1042,8 +1042,11 @@ class mod_workshop_external extends external_api { return null; } - // Remove the feedback for the reviewer if the feedback phase is not valid or if we don't have enough permissions to see it. - if ($workshop->phase < workshop::PHASE_EVALUATION || !($isreviewer || $canviewallassessments)) { + // Remove the feedback for the reviewer if: + // I can't see it in the evaluation phase because I'm not a teacher or the reviewer AND + // I can't see it in the assessment phase because I'm not a teacher. + if (($workshop->phase < workshop::PHASE_EVALUATION || !($isreviewer || $canviewallassessments)) && + ($workshop->phase < workshop::PHASE_ASSESSMENT || !$canviewallassessments) ) { // Remove all the feedback information (all the optional fields). foreach ($properties as $attribute => $settings) { if (!empty($settings['optional'])) { diff --git a/mod/workshop/tests/external_test.php b/mod/workshop/tests/external_test.php index afb9a27afb6..1338a51e167 100644 --- a/mod/workshop/tests/external_test.php +++ b/mod/workshop/tests/external_test.php @@ -1451,6 +1451,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase { $result = mod_workshop_external::get_reviewer_assessments($this->workshop->id, $this->student->id); $result = external_api::clean_returnvalue(mod_workshop_external::get_reviewer_assessments_returns(), $result); $this->assertCount(2, $result['assessments']); + $this->assertArrayNotHasKey('feedbackreviewer', $result['assessments'][0]); } /**