MDL-75802 user: Exclude current user from bulk unenrol operation

This commit is contained in:
Paola Maneggia 2022-09-20 11:52:30 +02:00 committed by Paola Maneggia
parent cccc00954d
commit aac6bfdf7a
2 changed files with 25 additions and 0 deletions

View File

@ -230,6 +230,12 @@ if ($formaction == 'bulkchange.php') {
};
$filteredusers = array_filter($users, $matchesplugin);
// If the bulk operation is deleting enrolments, we exclude in any case the current user as it was probably a mistake.
if ($operationname === 'deleteselectedusers' && (!in_array($USER->id, $removed))) {
\core\notification::warning(get_string('userremovedfromselectiona', 'enrol', fullname($USER)));
unset($filteredusers[$USER->id]);
}
if (empty($filteredusers)) {
redirect($returnurl, get_string('noselectedusers', 'bulkusers'));
}

View File

@ -48,6 +48,25 @@ Feature: Bulk enrolments
And I should not see "Teacher 1"
And I should see "3 unenrolled users"
@javascript
Scenario: Bulk delete enrolments when user is themselves enrolled
When I log in as "teacher1"
And I am on "Course 1" course homepage
And I navigate to course participants
And I click on "Select all" "checkbox"
And I set the field "With selected users..." to "Delete selected user enrolments"
Then I should see "User \"Teacher 1\" was removed from the selection."
And the following should exist in the "Delete selected user enrolments" table:
| Student 1 | student1@example.com |
| Student 2 | student2@example.com |
And I press "Unenrol users"
Then I should see "2 unenrolled users"
And I should see "User \"Teacher 1\" was removed from the selection."
And the following should exist in the "Enrolled users" table:
| Teacher 1 | teacher1@example.com |
And I should not see "Student 1"
And I should not see "Student 2"
@javascript
Scenario: Bulk edit enrolment for deleted user
When I log in as "admin"