diff --git a/public/mod/quiz/classes/notification_helper.php b/public/mod/quiz/classes/notification_helper.php index 07ef8a37172..bf1ae44200c 100644 --- a/public/mod/quiz/classes/notification_helper.php +++ b/public/mod/quiz/classes/notification_helper.php @@ -80,6 +80,7 @@ class notification_helper { context: \context_module::instance($quizobj->get_cm()->id), withcapability: 'mod/quiz:attempt', userfields: 'u.id, u.firstname, u.suspended, u.auth', + onlyactive: true, ); // Filter a list of users who meet the availability conditions. diff --git a/public/mod/quiz/tests/notification_helper_test.php b/public/mod/quiz/tests/notification_helper_test.php index 4b9082bd920..d1e932bdce0 100644 --- a/public/mod/quiz/tests/notification_helper_test.php +++ b/public/mod/quiz/tests/notification_helper_test.php @@ -92,12 +92,14 @@ final class notification_helper_test extends \advanced_testcase { $user4 = $generator->create_user(); $user5 = $generator->create_user(); $user6 = $generator->create_user(['suspended' => 1]); + $user7 = $generator->create_user(); $generator->enrol_user($user1->id, $course->id, 'student'); $generator->enrol_user($user2->id, $course->id, 'student'); $generator->enrol_user($user3->id, $course->id, 'student'); $generator->enrol_user($user4->id, $course->id, 'student'); $generator->enrol_user($user5->id, $course->id, 'teacher'); $generator->enrol_user($user6->id, $course->id, 'student'); + $generator->enrol_user($user7->id, $course->id, 'student', 'manual', 0, 0, ENROL_USER_SUSPENDED); /** @var \mod_quiz_generator $quizgenerator */ $quizgenerator = $generator->get_plugin_generator('mod_quiz'); @@ -155,6 +157,9 @@ final class notification_helper_test extends \advanced_testcase { // User6 should not be in the returned users because it is suspended. $this->assertArrayNotHasKey($user6->id, $users); + // User7 should not be in the returned users because it is suspended within the course. + $this->assertArrayNotHasKey($user7->id, $users); + // Let's add some availability conditions. $availability = [