Skip to content

Commit

Permalink
MDL-40909 core_enrol: removed 'unenrol' add_to_log calls
Browse files Browse the repository at this point in the history
Before each of these calls a call to unenrol_user() is made, which
triggers the event 'user_enrolment_deleted'. Nothing more is needed.
  • Loading branch information
mdjnelson committed Jan 28, 2014
1 parent 50ac439 commit 6324517
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 4 deletions.
1 change: 0 additions & 1 deletion enrol/manual/manage.php
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@
if (!empty($userstounassign)) {
foreach($userstounassign as $removeuser) {
$enrol_manual->unenrol_user($instance, $removeuser->id);
add_to_log($course->id, 'course', 'unenrol', '../enrol/users.php?id='.$course->id, $course->id); //there should be userid somewhere!
}

$potentialuserselector->invalidate_selected_users();
Expand Down
2 changes: 1 addition & 1 deletion enrol/manual/unenrolself.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

if ($confirm and confirm_sesskey()) {
$plugin->unenrol_user($instance, $USER->id);
add_to_log($course->id, 'course', 'unenrol', '../enrol/users.php?id='.$course->id, $course->id); //TODO: there should be userid somewhere!

redirect(new moodle_url('/index.php'));
}

Expand Down
2 changes: 1 addition & 1 deletion enrol/paypal/unenrolself.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

if ($confirm and confirm_sesskey()) {
$plugin->unenrol_user($instance, $USER->id);
add_to_log($course->id, 'course', 'unenrol', '../enrol/users.php?id='.$course->id, $course->id); //there should be userid somewhere!

redirect(new moodle_url('/index.php'));
}

Expand Down
2 changes: 1 addition & 1 deletion enrol/self/unenrolself.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

if ($confirm and confirm_sesskey()) {
$plugin->unenrol_user($instance, $USER->id);
add_to_log($course->id, 'course', 'unenrol', '../enrol/users.php?id='.$course->id, $course->id); //TODO: there should be userid somewhere!

redirect(new moodle_url('/index.php'));
}

Expand Down
41 changes: 41 additions & 0 deletions enrol/tests/enrollib_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -316,4 +316,45 @@ public function test_user_enrolment_created_event() {
$expectedlegacyeventdata->courseid = $course1->id;
$this->assertEventLegacyData($expectedlegacyeventdata, $event);
}

/**
* Test user_enrolment_deleted event.
*/
public function test_user_enrolment_deleted_event() {
global $DB;

$this->resetAfterTest(true);

$manualplugin = enrol_get_plugin('manual');
$user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course();
$student = $DB->get_record('role', array('shortname' => 'student'));

$enrol = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => 'manual'), '*', MUST_EXIST);

// Enrol user.
$manualplugin->enrol_user($enrol, $user->id, $student->id);

// Get the user enrolment information, used to validate legacy event data.
$dbuserenrolled = $DB->get_record('user_enrolments', array('userid' => $user->id));

// Unenrol user and capture event.
$sink = $this->redirectEvents();
$manualplugin->unenrol_user($enrol, $user->id);
$events = $sink->get_events();
$sink->close();
$event = array_pop($events);

// Validate the event.
$this->assertInstanceOf('\core\event\user_enrolment_deleted', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context());
$this->assertEquals('user_unenrolled', $event->get_legacy_eventname());
$expectedlegacyeventdata = $dbuserenrolled;
$expectedlegacyeventdata->enrol = $manualplugin->get_name();
$expectedlegacyeventdata->courseid = $course->id;
$expectedlegacyeventdata->lastenrol = true;
$this->assertEventLegacyData($expectedlegacyeventdata, $event);
$expected = array($course->id, 'course', 'unenrol', '../enrol/users.php?id=' . $course->id, $course->id);
$this->assertEventLegacyLogData($expected, $event);
}
}
8 changes: 8 additions & 0 deletions lib/classes/event/user_enrolment_deleted.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,14 @@ protected function get_legacy_eventdata() {
return (object)$this->other['userenrolment'];
}

/**
* Return legacy data for add_to_log().
*
* @return array
*/
protected function get_legacy_logdata() {
return array($this->courseid, 'course', 'unenrol', '../enrol/users.php?id=' . $this->courseid, $this->courseid);
}

/**
* Custom validation.
Expand Down

0 comments on commit 6324517

Please sign in to comment.