MDL-84327 mod_assign: Suspended account error
Change list_participants() to exclude both suspended users and users with auth='nologin' when show_only_active_users() is true. This prevents the failure of notification tasks when such users are enrolled in the course. Co-authored-by: Leon Stringer <[email protected]>
This commit is contained in:
co-authored by
Leon Stringer
parent
536c9d895a
commit
ef1e72e76b
@@ -2346,6 +2346,9 @@ class assign {
|
||||
}
|
||||
}
|
||||
|
||||
// Exclude suspended users from the list of participants.
|
||||
$additionalfilters .= " AND u.suspended = 0 AND u.auth <> 'nologin'";
|
||||
|
||||
$sql = "SELECT $fields
|
||||
FROM {user} u
|
||||
JOIN ($esql UNION $ssql) je ON je.id = u.id
|
||||
|
||||
@@ -167,6 +167,14 @@ final class notification_helper_test extends \advanced_testcase {
|
||||
$user1 = $generator->create_user();
|
||||
$generator->enrol_user($user1->id, $course->id, 'student');
|
||||
|
||||
// Suspended user, should not receive notification.
|
||||
$user2 = $generator->create_user(['suspended' => 1]);
|
||||
$generator->enrol_user($user2->id, $course->id, 'student');
|
||||
|
||||
// Nologin user, should not receive notification.
|
||||
$user3 = $generator->create_user(['auth' => 'nologin']);
|
||||
$generator->enrol_user($user3->id, $course->id, 'student');
|
||||
|
||||
/** @var \mod_assign_generator $assignmentgenerator */
|
||||
$assignmentgenerator = $generator->get_plugin_generator('mod_assign');
|
||||
|
||||
@@ -431,6 +439,14 @@ final class notification_helper_test extends \advanced_testcase {
|
||||
$course = $generator->create_course();
|
||||
$user1 = $generator->create_and_enrol($course, 'student');
|
||||
|
||||
// Suspended user, should not receive notification.
|
||||
$user2 = $generator->create_user(['suspended' => 1]);
|
||||
$generator->enrol_user($user2->id, $course->id, 'student');
|
||||
|
||||
// Nologin user, should not receive notification.
|
||||
$user3 = $generator->create_user(['auth' => 'nologin']);
|
||||
$generator->enrol_user($user3->id, $course->id, 'student');
|
||||
|
||||
/** @var \mod_assign_generator $assignmentgenerator */
|
||||
$assignmentgenerator = $generator->get_plugin_generator('mod_assign');
|
||||
|
||||
@@ -653,6 +669,14 @@ final class notification_helper_test extends \advanced_testcase {
|
||||
$user1 = $generator->create_user();
|
||||
$generator->enrol_user($user1->id, $course->id, 'student');
|
||||
|
||||
// Suspended user, should not receive notification.
|
||||
$user2 = $generator->create_user(['suspended' => 1]);
|
||||
$generator->enrol_user($user2->id, $course->id, 'student');
|
||||
|
||||
// Nologin user, should not receive notification.
|
||||
$user3 = $generator->create_user(['auth' => 'nologin']);
|
||||
$generator->enrol_user($user3->id, $course->id, 'student');
|
||||
|
||||
/** @var \mod_assign_generator $assignmentgenerator */
|
||||
$assignmentgenerator = $generator->get_plugin_generator('mod_assign');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user