From b474bec396e9eee1d00ecb8fddcb1184648a7232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= Date: Sat, 29 Jun 2013 21:06:31 +0200 Subject: [PATCH] MDL-39846 sample conversion of role assignment events --- lib/accesslib.php | 18 ++++++++-- lib/classes/event/role_assigned.php | 50 +++++++++++++++++++++++++++ lib/classes/event/role_unassigned.php | 50 +++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 lib/classes/event/role_assigned.php create mode 100644 lib/classes/event/role_unassigned.php diff --git a/lib/accesslib.php b/lib/accesslib.php index ed501689f5d..480b78885c1 100644 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -1685,7 +1685,11 @@ function role_assign($roleid, $userid, $contextid, $component = '', $itemid = 0, reload_all_capabilities(); } - events_trigger('role_assigned', $ra); + $event = \core\event\role_assigned::create( + array('context'=>$context, 'objectid'=>$ra->roleid, 'relateduserid'=>$ra->userid, + 'extra'=>array('id'=>$ra->id, 'component'=>$ra->component, 'itemid'=>$ra->itemid))); + $event->add_cached_record('role_assignments', $ra); + $event->trigger(); return $ra->id; } @@ -1769,8 +1773,12 @@ function role_unassign_all(array $params, $subcontexts = false, $includemanual = if (!empty($USER->id) && $USER->id == $ra->userid) { reload_all_capabilities(); } + $event = \core\event\role_unassigned::create( + array('context'=>$context, 'objectid'=>$ra->roleid, 'relateduserid'=>$ra->userid, + 'extra'=>array('id'=>$ra->id, 'component'=>$ra->component, 'itemid'=>$ra->itemid))); + $event->add_cached_record('role_assignments', $ra); + $event->trigger(); } - events_trigger('role_unassigned', $ra); } unset($ras); @@ -1796,7 +1804,11 @@ function role_unassign_all(array $params, $subcontexts = false, $includemanual = if (!empty($USER->id) && $USER->id == $ra->userid) { reload_all_capabilities(); } - events_trigger('role_unassigned', $ra); + $event = \core\event\role_unassigned::create( + array('context'=>$context, 'objectid'=>$ra->roleid, 'relateduserid'=>$ra->userid, + 'extra'=>array('id'=>$ra->id, 'component'=>$ra->component, 'itemid'=>$ra->itemid))); + $event->add_cached_record('role_assignments', $ra); + $event->trigger(); } } } diff --git a/lib/classes/event/role_assigned.php b/lib/classes/event/role_assigned.php new file mode 100644 index 00000000000..0ec6c4129c6 --- /dev/null +++ b/lib/classes/event/role_assigned.php @@ -0,0 +1,50 @@ +. + +namespace core\event; + +/** + * Role assigned event. + * + * @package core + * @copyright 2013 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +class role_assigned extends base { + protected function init() { + $this->data['crud'] = 'c'; + $this->data['level'] = 1; // TODO + } + + /** + * Does this event replace legacy event? + * + * @return null|string legacy event name + */ + public function get_legacy_eventname() { + return 'role_assigned'; + } + + /** + * Legacy event data if get_legacy_eventname() is not empty. + * + * @return mixed + */ + public function get_legacy_eventdata() { + return $this->get_cached_record('role_assignments', $this->data['extra']['id']); + } +} diff --git a/lib/classes/event/role_unassigned.php b/lib/classes/event/role_unassigned.php new file mode 100644 index 00000000000..d573a75f04d --- /dev/null +++ b/lib/classes/event/role_unassigned.php @@ -0,0 +1,50 @@ +. + +namespace core\event; + +/** + * Role unassigned event. + * + * @package core + * @copyright 2013 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +class role_unassigned extends base { + protected function init() { + $this->data['crud'] = 'd'; + $this->data['level'] = 1; // TODO + } + + /** + * Does this event replace legacy event? + * + * @return null|string legacy event name + */ + public function get_legacy_eventname() { + return 'role_unassigned'; + } + + /** + * Legacy event data if get_legacy_eventname() is not empty. + * + * @return mixed + */ + public function get_legacy_eventdata() { + return $this->get_cached_record('role_assignments', $this->data['extra']['id']); + } +}