From 8cba8d1a586c7f69cad1239309ebbd3b20f6a681 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Fri, 16 Nov 2018 13:58:54 +0800 Subject: [PATCH 1/1] MDL-64049 core: Cache prefs for current user We were already caching these preferences when a user object is provided to get_user_preferences, or when $USER is provided. This changee swaps get_user_preferences to use the global USER object when the USER->id matches the userid supplied to the function. --- lib/moodlelib.php | 6 +++++- repository/flickr/tests/privacy_test.php | 17 +++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 6d758b21b72..18e7a74cef5 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -2088,7 +2088,11 @@ function get_user_preferences($name = null, $default = null, $user = null) { } else if (isset($user->id)) { // Is a valid object. } else if (is_numeric($user)) { - $user = (object)array('id' => (int)$user); + if ($USER->id == $user) { + $user = $USER; + } else { + $user = (object)array('id' => (int)$user); + } } else { throw new coding_exception('Invalid $user parameter in get_user_preferences() call'); } diff --git a/repository/flickr/tests/privacy_test.php b/repository/flickr/tests/privacy_test.php index 1d9613beef4..c86476be86b 100644 --- a/repository/flickr/tests/privacy_test.php +++ b/repository/flickr/tests/privacy_test.php @@ -64,18 +64,11 @@ class repository_flickr_privacy_testcase extends provider_testcase { $this->assertFalse($writer->has_any_data()); // Test exporting of Flickr repository user preferences *with* OAuth token/secret preference configured. - $preference = (object) [ - 'userid' => $user->id, - 'name' => 'repository_flickr_access_token', - 'value' => 'dummy flickr oauth access token' - ]; - $DB->insert_record('user_preferences', $preference); - $preference = (object) [ - 'userid' => $user->id, - 'name' => 'repository_flickr_access_token_secret', - 'value' => 'dummy flickr oauth access token secret' - ]; - $DB->insert_record('user_preferences', $preference); + set_user_preferences([ + 'repository_flickr_access_token' => 'dummy flickr oauth access token', + 'repository_flickr_access_token_secret' => 'dummy flickr oauth access token secret', + ], $user->id); + provider::export_user_preferences($user->id); $writer = writer::with_context($contextuser); -- 2.43.0