1<?php 2// This file is part of Moodle - http://moodle.org/ 3// 4// Moodle is free software: you can redistribute it and/or modify 5// it under the terms of the GNU General Public License as published by 6// the Free Software Foundation, either version 3 of the License, or 7// (at your option) any later version. 8// 9// Moodle is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13// 14// You should have received a copy of the GNU General Public License 15// along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17/** 18 * Role updated event. 19 * 20 * @package core 21 * @copyright 2019 Simey Lameze <simey@moodle.com> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25namespace core\event; 26 27defined('MOODLE_INTERNAL') || die(); 28 29/** 30 * Role updated event class. 31 * 32 * @package core 33 * @since Moodle 3.8 34 * @copyright 2019 Simey Lameze <simey@moodle.com> 35 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 36 */ 37class role_updated extends base { 38 /** 39 * Initialise event parameters. 40 */ 41 protected function init() { 42 $this->data['objecttable'] = 'role'; 43 $this->data['crud'] = 'u'; 44 $this->data['edulevel'] = self::LEVEL_OTHER; 45 } 46 47 /** 48 * Returns localised event name. 49 * 50 * @return string 51 */ 52 public static function get_name() { 53 return get_string('eventroleupdated', 'role'); 54 } 55 56 /** 57 * Returns non-localised event description with id's for admin use only. 58 * 59 * @return string 60 */ 61 public function get_description() { 62 return "The user with id '$this->userid' updated the role with id '$this->objectid'."; 63 } 64 65 /** 66 * Returns relevant URL. 67 * 68 * @return \moodle_url 69 */ 70 public function get_url() { 71 return new \moodle_url('/admin/roles/define.php', ['action' => 'edit', 'roleid' => $this->objectid]); 72 } 73 74 /** 75 * Returns array of parameters to be passed to legacy add_to_log() function. 76 * 77 * @return array 78 */ 79 protected function get_legacy_logdata() { 80 return [SITEID, 'role', 'update', 'admin/roles/manage.php?action=edit&roleid=' . $this->objectid, 81 $this->other['shortname'], '']; 82 } 83 84 /** 85 * Custom validation. 86 * 87 * @throws \coding_exception 88 * @return void 89 */ 90 protected function validate_data() { 91 parent::validate_data(); 92 93 if (!isset($this->other['shortname'])) { 94 throw new \coding_exception('The \'shortname\' value must be set in other.'); 95 } 96 } 97} 98