Commit 55d084a2 authored by Ilya Tregubov's avatar Ilya Tregubov Committed by Robert Lyon
Browse files

Bug #1694342: clean password from event_log takes long time

behatnotneeded

Change-Id: I26a13d2ef060078abd14bb21a61db147112a4100
parent acdddde9
...@@ -4976,7 +4976,13 @@ function xmldb_core_upgrade($oldversion=0) { ...@@ -4976,7 +4976,13 @@ function xmldb_core_upgrade($oldversion=0) {
} }
if ($oldversion < 2017052300) { if ($oldversion < 2017052300) {
if ($records = get_records_sql_array("SELECT event, data, time FROM {event_log} WHERE event = ?", array('createuser'))) { // These are the records with passwords in the data.
if ($records = get_records_sql_array("SELECT event, data, time
FROM {event_log}
WHERE event = ?
AND POSITION(',\"password\":\"\",' IN data) = 0
", array('createuser'))
) {
log_debug('Remove sensitive data from event_log'); log_debug('Remove sensitive data from event_log');
$count = 0; $count = 0;
$limit = 1000; $limit = 1000;
...@@ -4998,6 +5004,18 @@ function xmldb_core_upgrade($oldversion=0) { ...@@ -4998,6 +5004,18 @@ function xmldb_core_upgrade($oldversion=0) {
} }
} }
} }
// These are the records with empty passwords in the data.
// No need for them to reset the password.
$wheresql = " WHERE event = ?
AND POSITION(',\"password\":\"\",' IN data) > 0";
$sql_count = "SELECT COUNT(*)
FROM {event_log}" . $wheresql;
if ($count = get_field_sql($sql_count, array('createuser'))) {
$sql = "UPDATE {event_log}
SET data = REPLACE(data, ',\"password\":\"\"', '')" . $wheresql;
execute_sql($sql, array('createuser'));
log_debug("$count records also cleaned up");
}
} }
if ($oldversion < 2017052900) { if ($oldversion < 2017052900) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment