From 81fbecc049803f646e6d9a9b06aead1e02d12383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0koda?= Date: Thu, 30 Jan 2014 16:22:52 +0800 Subject: [PATCH] MDL-41269 add separate ip column to standard log table --- admin/tool/log/store/standard/classes/log/store.php | 7 +++++-- admin/tool/log/store/standard/db/install.xml | 7 ++++--- lib/classes/event/base.php | 13 +++++++++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/admin/tool/log/store/standard/classes/log/store.php b/admin/tool/log/store/standard/classes/log/store.php index b10dbc4ff02..ac4786b9262 100644 --- a/admin/tool/log/store/standard/classes/log/store.php +++ b/admin/tool/log/store/standard/classes/log/store.php @@ -63,8 +63,10 @@ class store implements \tool_log\log\writer, \core\log\sql_reader { $data['other'] = serialize($data['other']); if (CLI_SCRIPT) { $data['origin'] = 'cli'; + $data['ip'] = null; } else { - $data['origin'] = getremoteaddr(); + $data['origin'] = 'web'; + $data['ip'] = getremoteaddr(); } $data['realuserid'] = \core\session\manager::is_loggedinas() ? $_SESSION['USER']->realuser : null; $dataobj[] = $data; @@ -80,7 +82,7 @@ class store implements \tool_log\log\writer, \core\log\sql_reader { $records = $DB->get_records_select('logstore_standard_log', $selectwhere, $params, $sort, '*', $limitfrom, $limitnum); foreach ($records as $data) { - $extra = array('origin' => $data->origin, 'realuserid' => $data->realuserid); + $extra = array('origin' => $data->origin, 'ip' => $data->ip, 'realuserid' => $data->realuserid); $data = (array)$data; $id = $data['id']; $data['other'] = unserialize($data['other']); @@ -88,6 +90,7 @@ class store implements \tool_log\log\writer, \core\log\sql_reader { $data['other'] = array(); } unset($data['origin']); + unset($data['ip']); unset($data['realuserid']); unset($data['id']); diff --git a/admin/tool/log/store/standard/db/install.xml b/admin/tool/log/store/standard/db/install.xml index dddadb382bd..0c75dbd6507 100644 --- a/admin/tool/log/store/standard/db/install.xml +++ b/admin/tool/log/store/standard/db/install.xml @@ -1,5 +1,5 @@ - @@ -23,7 +23,8 @@ - + + @@ -34,4 +35,4 @@ - + \ No newline at end of file diff --git a/lib/classes/event/base.php b/lib/classes/event/base.php index 4795ffa2cee..df6329ab56b 100644 --- a/lib/classes/event/base.php +++ b/lib/classes/event/base.php @@ -350,11 +350,12 @@ abstract class base implements \IteratorAggregate { /** * Create fake event from legacy log data. * - * @param stdClass $legacy + * @param \stdClass $legacy * @return base */ public static final function restore_legacy($legacy) { $classname = get_called_class(); + /** @var base $event */ $event = new $classname(); $event->restored = true; $event->triggered = true; @@ -417,7 +418,15 @@ abstract class base implements \IteratorAggregate { $event->data['relateduserid'] = ($legacy->userid ? $legacy->userid : null); $event->data['timecreated'] = $legacy->time; - $event->logextra = array('origin'=>$legacy->ip, 'realuserid'=>null); + $event->logextra = array(); + if ($legacy->ip) { + $event->logextra['origin'] = 'web'; + $event->logextra['ip'] = $legacy->ip; + } else { + $event->logextra['origin'] = 'cli'; + $event->logextra['ip'] = null; + } + $event->logextra['realuserid'] = null; $event->data['other'] = (array)$legacy;