mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
MDL-41413 Events: replaced role_assigned event handler with observer
This commit is contained in:
parent
ed204cb514
commit
f58915f0bb
3 changed files with 33 additions and 36 deletions
|
@ -99,4 +99,33 @@ class enrol_meta_observer extends enrol_meta_handler {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggered via role_assigned event.
|
||||||
|
*
|
||||||
|
* @param \core\event\role_assigned $event
|
||||||
|
* @return bool true on success.
|
||||||
|
*/
|
||||||
|
public static function role_assigned(\core\event\role_assigned $event) {
|
||||||
|
if (!enrol_is_enabled('meta')) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,13 +27,6 @@ defined('MOODLE_INTERNAL') || die();
|
||||||
|
|
||||||
/* List of handlers */
|
/* List of handlers */
|
||||||
$handlers = array (
|
$handlers = array (
|
||||||
'role_assigned' => array (
|
|
||||||
'handlerfile' => '/enrol/meta/locallib.php',
|
|
||||||
'handlerfunction' => array('enrol_meta_handler', 'role_assigned'),
|
|
||||||
'schedule' => 'instant',
|
|
||||||
'internal' => 1,
|
|
||||||
),
|
|
||||||
|
|
||||||
'role_unassigned' => array (
|
'role_unassigned' => array (
|
||||||
'handlerfile' => '/enrol/meta/locallib.php',
|
'handlerfile' => '/enrol/meta/locallib.php',
|
||||||
'handlerfunction' => array('enrol_meta_handler', 'role_unassigned'),
|
'handlerfunction' => array('enrol_meta_handler', 'role_unassigned'),
|
||||||
|
@ -64,4 +57,8 @@ $observers = array(
|
||||||
'eventname' => '\core\event\user_enrolment_updated',
|
'eventname' => '\core\event\user_enrolment_updated',
|
||||||
'callback' => 'enrol_meta_observer::user_enrolment_updated',
|
'callback' => 'enrol_meta_observer::user_enrolment_updated',
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'eventname' => '\core\event\role_assigned',
|
||||||
|
'callback' => 'enrol_meta_observer::role_assigned',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -234,35 +234,6 @@ class enrol_meta_handler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Triggered via role assigned event.
|
|
||||||
* @static
|
|
||||||
* @param stdClass $ra
|
|
||||||
* @return bool success
|
|
||||||
*/
|
|
||||||
public static function role_assigned($ra) {
|
|
||||||
if (!enrol_is_enabled('meta')) {
|
|
||||||
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 role unassigned event.
|
* Triggered via role unassigned event.
|
||||||
* @static
|
* @static
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue