MDL-41413 Events: replaced role_unassigned event handler with observer

This commit is contained in:
Rajesh Taneja
2013-09-03 14:54:58 +08:00
parent f58915f0bb
commit 8525a8f0d5
3 changed files with 34 additions and 37 deletions
+30
View File
@@ -128,4 +128,34 @@ class enrol_meta_observer extends enrol_meta_handler {
return true;
}
/**
* Triggered via role_unassigned event.
*
* @param \core\event\role_unassigned $event
* @return bool true on success
*/
public static function role_unassigned(\core\event\role_unassigned $event) {
if (!enrol_is_enabled('meta')) {
// All roles are removed via cron automatically.
return true;
}
// Prevent circular dependencies - we can not sync meta roles recursively.
if ($event->other['component'] === 'enrol_meta') {
return true;
}
// Only course level roles are interesting.
if (!$parentcontext = context::instance_by_id($event->contextid, IGNORE_MISSING)) {
return true;
}
if ($parentcontext->contextlevel != CONTEXT_COURSE) {
return true;
}
self::sync_course_instances($parentcontext->instanceid, $event->relateduserid);
return true;
}
}
+4 -7
View File
@@ -27,13 +27,6 @@ defined('MOODLE_INTERNAL') || die();
/* List of handlers */
$handlers = array (
'role_unassigned' => array (
'handlerfile' => '/enrol/meta/locallib.php',
'handlerfunction' => array('enrol_meta_handler', 'role_unassigned'),
'schedule' => 'instant',
'internal' => 1,
),
'course_deleted' => array (
'handlerfile' => '/enrol/meta/locallib.php',
'handlerfunction' => array('enrol_meta_handler', 'course_deleted'),
@@ -61,4 +54,8 @@ $observers = array(
'eventname' => '\core\event\role_assigned',
'callback' => 'enrol_meta_observer::role_assigned',
),
array(
'eventname' => '\core\event\role_unassigned',
'callback' => 'enrol_meta_observer::role_unassigned',
),
);
-30
View File
@@ -234,36 +234,6 @@ class enrol_meta_handler {
}
}
/**
* Triggered via role unassigned event.
* @static
* @param stdClass $ra
* @return bool success
*/
public static function role_unassigned($ra) {
if (!enrol_is_enabled('meta')) {
// all roles are removed via cron automatically
return true;
}
// prevent circular dependencies - we can not sync meta roles recursively
if ($ra->component === 'enrol_meta') {
return true;
}
// only course level roles are interesting
if (!$parentcontext = context::instance_by_id($ra->contextid, IGNORE_MISSING)) {
return true;
}
if ($parentcontext->contextlevel != CONTEXT_COURSE) {
return true;
}
self::sync_course_instances($parentcontext->instanceid, $ra->userid);
return true;
}
/**
* Triggered via course_deleted event.
* @static