MDL-76842 auth_lti: don't update the user unless data has changed

When receiving data from the LTI launch, or service call, only update
the user record when we know something has changed. This prevents the
creation of many \core\event\user_updated events.
This commit is contained in:
Jake Dallimore 2023-05-10 09:41:38 +08:00
parent 3208e7f182
commit d9fbe7c866
No known key found for this signature in database

View File

@ -380,7 +380,11 @@ class auth_plugin_lti extends \auth_plugin_base {
'lastname' => $userdata['family_name'] ?? $iss,
'email' => $email
];
user_update_user($update);
$userfieldstocompare = array_intersect_key((array) $user, $update);
if (!empty(array_diff($update, $userfieldstocompare))) {
user_update_user($update); // Only update if there's a change.
}
if (!empty($userdata['picture'])) {
try {