From 1f20d8dfeda7bd110ba94420a8f9f3b759fb9dda Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Wed, 2 Jun 2021 10:55:40 +0100 Subject: [PATCH] MDL-71835 report_log: correct query returning user fullname from DB. --- report/log/classes/table_log.php | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/report/log/classes/table_log.php b/report/log/classes/table_log.php index ec67c4de7ee..53c836072c0 100644 --- a/report/log/classes/table_log.php +++ b/report/log/classes/table_log.php @@ -108,31 +108,30 @@ class report_log_table_log extends table_sql { * @return string|false */ protected function get_user_fullname($userid) { - global $DB; - if (empty($userid)) { return false; } - if (!empty($this->userfullnames[$userid])) { - return $this->userfullnames[$userid]; + // Check if we already have this users' fullname. + $userfullname = $this->userfullnames[$userid] ?? null; + if (!empty($userfullname)) { + return $userfullname; } // We already looked for the user and it does not exist. - if ($this->userfullnames[$userid] === false) { + if ($userfullname === false) { return false; } // If we reach that point new users logs have been generated since the last users db query. - list($usql, $uparams) = $DB->get_in_or_equal($userid); $userfieldsapi = \core_user\fields::for_name(); - $sql = "SELECT id," . $userfieldsapi->get_sql('', false, '', '', false)->selects . - " FROM {user} WHERE id " . $usql; - if (!$user = $DB->get_records_sql($sql, $uparams)) { - return false; + $fields = $userfieldsapi->get_sql('', false, '', '', false)->selects; + if ($user = \core_user::get_user($userid, $fields)) { + $this->userfullnames[$userid] = fullname($user, has_capability('moodle/site:viewfullnames', $this->get_context())); + } else { + $this->userfullnames[$userid] = false; } - $this->userfullnames[$userid] = fullname($user, has_capability('moodle/site:viewfullnames', $this->get_context())); return $this->userfullnames[$userid]; }