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)) {
// 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');
}

View file

@ -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);