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-06-08 09:43:10 +08:00
parent 2dcd4f8e78
commit 1946ca5954
+5 -1
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 {