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 b097d38fb3
commit 0ccf800f01
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 {