diff --git a/public/mod/feedback/classes/courseformat/overview.php b/public/mod/feedback/classes/courseformat/overview.php index de180b7f6c0..166469aa8c3 100644 --- a/public/mod/feedback/classes/courseformat/overview.php +++ b/public/mod/feedback/classes/courseformat/overview.php @@ -120,7 +120,7 @@ class overview extends \core_courseformat\activityoverviewbase { private function get_extra_submitted_overview(): ?overviewitem { global $USER; - if (!has_capability('mod/feedback:complete', $this->context)) { + if (!has_capability('mod/feedback:complete', $this->context, $USER, false)) { return null; } diff --git a/public/mod/feedback/tests/courseformat/overview_test.php b/public/mod/feedback/tests/courseformat/overview_test.php index 4be1121da20..a74814f2c7d 100644 --- a/public/mod/feedback/tests/courseformat/overview_test.php +++ b/public/mod/feedback/tests/courseformat/overview_test.php @@ -446,7 +446,7 @@ final class overview_test extends \advanced_testcase { * @param bool $hasresponses */ #[\PHPUnit\Framework\Attributes\DataProvider('provider_test_get_extra_submitted_overview')] - public function test_get_extra_submitted_overview(string $user, bool $expectnull, bool $hasresponses): void { + public function test_get_extra_submitted_overview(string $user, bool $expectnull, bool $hasresponses = false): void { $this->resetAfterTest(); $course = $this->getDataGenerator()->create_course(); $teacher = $this->getDataGenerator()->create_and_enrol($course, 'teacher'); @@ -471,8 +471,11 @@ final class overview_test extends \advanced_testcase { ]); } - $currentuser = ($user == 'teacher') ? $teacher : $student; - $this->setUser($currentuser); + if ($user == 'admin') { + $this->setAdminUser(); + } else { + $this->setUser(($user == 'teacher') ? $teacher : $student); + } $overview = overviewfactory::create($cm); $reflection = new \ReflectionClass($overview); @@ -497,25 +500,23 @@ final class overview_test extends \advanced_testcase { * @return \Generator */ public static function provider_test_get_extra_submitted_overview(): \Generator { - yield 'Teacher with responses' => [ + yield 'Teacher' => [ 'user' => 'teacher', 'expectnull' => true, - 'hasresponses' => true, ]; - yield 'Student with responses' => [ - 'user' => 'student', - 'expectnull' => false, - 'hasresponses' => true, - ]; - yield 'Teacher without responses' => [ - 'user' => 'teacher', + yield 'Admin' => [ + 'user' => 'admin', 'expectnull' => true, - 'hasresponses' => false, ]; yield 'Student without responses' => [ 'user' => 'student', 'expectnull' => false, 'hasresponses' => false, ]; + yield 'Student with responses' => [ + 'user' => 'student', + 'expectnull' => false, + 'hasresponses' => true, + ]; } }