MDL-29964 fix order of events triggered by enrolment

This commit is contained in:
Petr Skoda
2011-10-28 14:57:42 +02:00
parent 38e9a1cc79
commit 0c2701fd6d
+9 -8
View File
@@ -1133,14 +1133,6 @@ abstract class enrol_plugin {
$inserted = true;
}
if ($roleid) {
if ($this->roles_protected()) {
role_assign($roleid, $userid, $context->id, 'enrol_'.$name, $instance->id);
} else {
role_assign($roleid, $userid, $context->id);
}
}
if ($inserted) {
// add extra info and trigger event
$ue->courseid = $courseid;
@@ -1152,6 +1144,15 @@ abstract class enrol_plugin {
events_trigger('user_enrol_modified', $ue);
}
if ($roleid) {
// this must be done after the enrolment event so that the role_assigned event is trigerred aftwerwards
if ($this->roles_protected()) {
role_assign($roleid, $userid, $context->id, 'enrol_'.$name, $instance->id);
} else {
role_assign($roleid, $userid, $context->id);
}
}
// reset primitive require_login() caching
if ($userid == $USER->id) {
if (isset($USER->enrol['enrolled'][$courseid])) {