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.
This commit is contained in:
Andrew Nicols 2018-11-16 13:58:54 +08:00
parent 01acb1ea90
commit 8cba8d1a58
2 changed files with 10 additions and 13 deletions

View file

@ -2088,7 +2088,11 @@ function get_user_preferences($name = null, $default = null, $user = null) {
} else if (isset($user->id)) { } else if (isset($user->id)) {
// Is a valid object. // Is a valid object.
} else if (is_numeric($user)) { } 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 { } else {
throw new coding_exception('Invalid $user parameter in get_user_preferences() call'); throw new coding_exception('Invalid $user parameter in get_user_preferences() call');
} }

View file

@ -64,18 +64,11 @@ class repository_flickr_privacy_testcase extends provider_testcase {
$this->assertFalse($writer->has_any_data()); $this->assertFalse($writer->has_any_data());
// Test exporting of Flickr repository user preferences *with* OAuth token/secret preference configured. // Test exporting of Flickr repository user preferences *with* OAuth token/secret preference configured.
$preference = (object) [ set_user_preferences([
'userid' => $user->id, 'repository_flickr_access_token' => 'dummy flickr oauth access token',
'name' => 'repository_flickr_access_token', 'repository_flickr_access_token_secret' => 'dummy flickr oauth access token secret',
'value' => 'dummy flickr oauth access token' ], $user->id);
];
$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);
provider::export_user_preferences($user->id); provider::export_user_preferences($user->id);
$writer = writer::with_context($contextuser); $writer = writer::with_context($contextuser);