From 34a6bd45a4fb69e6debd898873a578be5a5998ac Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Fri, 8 Mar 2013 11:19:17 +1300 Subject: [PATCH 1/2] MDL-38019 Log filter enable/disable --- lib/filterlib.php | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/filterlib.php b/lib/filterlib.php index a01de832c01..efc16de3b70 100644 --- a/lib/filterlib.php +++ b/lib/filterlib.php @@ -530,7 +530,7 @@ function filter_get_all_installed() { * @param int $move 1 means up, 0 means the same, -1 means down */ function filter_set_global_state($filtername, $state, $move = 0) { - global $DB; + global $DB, $USER; // Check requested state is valid. if (!in_array($state, array(TEXTFILTER_ON, TEXTFILTER_OFF, TEXTFILTER_DISABLED))) { @@ -566,22 +566,38 @@ function filter_set_global_state($filtername, $state, $move = 0) { $on[$f->filter] = $f; } } + // log change + $log = new stdClass(); + $log->userid = during_initial_install() ? 0 :$USER->id; // 0 as user id during install + $log->timemodified = time(); + $log->name = 'filter_active'; // Update the state or add new record. if (isset($on[$filtername])) { $filter = $on[$filtername]; if ($filter->active != $state) { + $log->oldvalue = $filter->active; + $log->value = $state; + $log->plugin = $filtername; + $DB->insert_record('config_log', $log); + $filter->active = $state; $DB->update_record('filter_active', $filter); if ($filter->active == TEXTFILTER_DISABLED) { unset($on[$filtername]); $off = array($filter->filter => $filter) + $off; } + } } else if (isset($off[$filtername])) { $filter = $off[$filtername]; if ($filter->active != $state) { + $log->oldvalue = $filter->active; + $log->value = $state; + $log->plugin = $filtername; + $DB->insert_record('config_log', $log); + $filter->active = $state; $DB->update_record('filter_active', $filter); if ($filter->active != TEXTFILTER_DISABLED) { @@ -591,6 +607,11 @@ function filter_set_global_state($filtername, $state, $move = 0) { } } else { + $log->oldvalue = ''; + $log->value = $state; + $log->plugin = $filtername; + $DB->insert_record('config_log', $log); + $filter = new stdClass(); $filter->filter = $filtername; $filter->contextid = $syscontext->id; From b8b50d04feb98b8758abe8589740b2f273982d9a Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Fri, 12 Apr 2013 10:58:59 +0800 Subject: [PATCH 2/2] MDL-38019 added add_to_config_log() to lib/datalib.php --- lib/adminlib.php | 10 +--------- lib/datalib.php | 29 +++++++++++++++++++++++++++++ lib/filterlib.php | 22 ++++------------------ 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/lib/adminlib.php b/lib/adminlib.php index af6bab71f73..5884bdd2bcb 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -1627,15 +1627,7 @@ abstract class admin_setting { rebuild_course_cache(0, true); } - // log change - $log = new stdClass(); - $log->userid = during_initial_install() ? 0 :$USER->id; // 0 as user id during install - $log->timemodified = time(); - $log->plugin = $this->plugin; - $log->name = $name; - $log->value = $value; - $log->oldvalue = $oldvalue; - $DB->insert_record('config_log', $log); + add_to_config_log($name, $oldvalue, $value, $this->plugin); return true; // BC only } diff --git a/lib/datalib.php b/lib/datalib.php index 7db9ebac5e5..a4de3aa283e 100644 --- a/lib/datalib.php +++ b/lib/datalib.php @@ -1514,6 +1514,35 @@ function coursemodule_visible_for_user($cm, $userid=0) { /// LOG FUNCTIONS ///////////////////////////////////////////////////// +/** + * Add an entry to the config log table. + * + * These are "action" focussed rather than web server hits, + * and provide a way to easily reconstruct changes to Moodle configuration. + * + * @package core + * @category log + * @global moodle_database $DB + * @global stdClass $USER + * @param string $name The name of the configuration change action + For example 'filter_active' when activating or deactivating a filter + * @param string $oldvalue The config setting's previous value + * @param string $value The config setting's new value + * @param string $plugin Plugin name, for example a filter name when changing filter configuration + * @return void + */ +function add_to_config_log($name, $oldvalue, $value, $plugin) { + global $USER, $DB; + + $log = new stdClass(); + $log->userid = during_initial_install() ? 0 :$USER->id; // 0 as user id during install + $log->timemodified = time(); + $log->name = $name; + $log->oldvalue = $oldvalue; + $log->value = $value; + $log->plugin = $plugin; + $DB->insert_record('config_log', $log); +} /** * Add an entry to the log table. diff --git a/lib/filterlib.php b/lib/filterlib.php index efc16de3b70..e58fd59b047 100644 --- a/lib/filterlib.php +++ b/lib/filterlib.php @@ -530,7 +530,7 @@ function filter_get_all_installed() { * @param int $move 1 means up, 0 means the same, -1 means down */ function filter_set_global_state($filtername, $state, $move = 0) { - global $DB, $USER; + global $DB; // Check requested state is valid. if (!in_array($state, array(TEXTFILTER_ON, TEXTFILTER_OFF, TEXTFILTER_DISABLED))) { @@ -566,20 +566,12 @@ function filter_set_global_state($filtername, $state, $move = 0) { $on[$f->filter] = $f; } } - // log change - $log = new stdClass(); - $log->userid = during_initial_install() ? 0 :$USER->id; // 0 as user id during install - $log->timemodified = time(); - $log->name = 'filter_active'; // Update the state or add new record. if (isset($on[$filtername])) { $filter = $on[$filtername]; if ($filter->active != $state) { - $log->oldvalue = $filter->active; - $log->value = $state; - $log->plugin = $filtername; - $DB->insert_record('config_log', $log); + add_to_config_log('filter_active', $filter->active, $state, $filtername); $filter->active = $state; $DB->update_record('filter_active', $filter); @@ -593,10 +585,7 @@ function filter_set_global_state($filtername, $state, $move = 0) { } else if (isset($off[$filtername])) { $filter = $off[$filtername]; if ($filter->active != $state) { - $log->oldvalue = $filter->active; - $log->value = $state; - $log->plugin = $filtername; - $DB->insert_record('config_log', $log); + add_to_config_log('filter_active', $filter->active, $state, $filtername); $filter->active = $state; $DB->update_record('filter_active', $filter); @@ -607,10 +596,7 @@ function filter_set_global_state($filtername, $state, $move = 0) { } } else { - $log->oldvalue = ''; - $log->value = $state; - $log->plugin = $filtername; - $DB->insert_record('config_log', $log); + add_to_config_log('filter_active', '', $state, $filtername); $filter = new stdClass(); $filter->filter = $filtername;