moodle/lib/classes/event/mnet_access_control_updated.php
Andrew Nicols 51d85c7c6c MDL-46214 event: Support deprecation of events
This patch adds two new functions to the event base to allow deprecation of
the individual events, without entirely removing them from the UI.

This is different to our normal deprecation procedure because all events
must support display of historical data. It must also be possible to view
the event information in the event monitor.
2016-08-15 09:17:02 +08:00

131 lines
3.8 KiB
PHP

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Mnet access control updated event.
*
* @package core
* @since Moodle 2.7
* @copyright 2013 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core\event;
defined('MOODLE_INTERNAL') || die();
/**
* Mnet access control updated event class.
*
* @property-read array $other {
* Extra information about event.
*
* - string username: the username of the user.
* - string hostname: the name of the host the user came from.
* - string accessctrl: the access control value.
* }
*
* @package core
* @since Moodle 2.7
* @copyright 2013 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mnet_access_control_updated extends base {
/**
* Init method.
*/
protected function init() {
$this->data['objecttable'] = 'mnet_sso_access_control';
$this->data['crud'] = 'u';
$this->data['edulevel'] = self::LEVEL_OTHER;
}
/**
* Returns localised general event name.
*
* @return string
*/
public static function get_name() {
return get_string('eventaccesscontrolupdated', 'mnet');
}
/**
* Returns relevant URL.
*
* @return \moodle_url
*/
public function get_url() {
return new \moodle_url('/admin/mnet/access_control.php');
}
/**
* Returns description of what happened.
*
* @return string
*/
public function get_description() {
return "The user with id '$this->userid' updated access control for the user with username '{$this->other['username']}' " .
"belonging to mnet host '{$this->other['hostname']}'.";
}
/**
* Return legacy data for add_to_log().
*
* @return array
*/
protected function get_legacy_logdata() {
return array(SITEID, 'admin/mnet', 'update', 'admin/mnet/access_control.php', 'SSO ACL: ' . $this->other['accessctrl'] .
' user \'' . $this->other['username'] . '\' from ' . $this->other['hostname']);
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data() {
parent::validate_data();
if (!isset($this->other['username'])) {
throw new \coding_exception('The \'username\' value must be set in other.');
}
if (!isset($this->other['hostname'])) {
throw new \coding_exception('The \'hostname\' value must be set in other.');
}
if (!isset($this->other['accessctrl'])) {
throw new \coding_exception('The \'accessctrl\' value must be set in other.');
}
}
public static function get_objectid_mapping() {
// Mnet info is not backed up, so no need to map on restore.
return array('db' => 'mnet_sso_access_control', 'restore' => base::NOT_MAPPED);
}
public static function get_other_mapping() {
// Nothing to map.
return false;
}
public static function is_deprecated() {
return true;
}
}