Skip to content

Commit 6c11944

Browse files
committed
I dug into it again, and the issue is much simpler than I previously though.
- LDAP has an email address with capital letters - NC store this address in lower case - When the user logs in, we compare the [stored email with the new lower case email](https://github.com/nextcloud/server/blob/master/lib/private/AllConfig.php#L259-L261) before storing it. Here, both email will be the same, so we won't store the new email address with upper case letters. Which is what we want. - We then [compare emails as they are before triggering an event](https://github.com/nextcloud/server/blob/master/lib/private/User/User.php#L202-L204), they won't match, so the user will receive an email signaling an email change every time he logs in. The fix is to compare the old email with the new lower case email before sending the event. Signed-off-by: Louis Chemineau <[email protected]>
1 parent 5104ee9 commit 6c11944

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

lib/private/User/User.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ public function setSystemEMailAddress(string $mailAddress): void {
199199
$this->setPrimaryEMailAddress('');
200200
}
201201

202-
if ($oldMailAddress !== $mailAddress) {
202+
if ($oldMailAddress !== strtolower($mailAddress)) {
203203
$this->triggerChange('eMailAddress', $mailAddress, $oldMailAddress);
204204
}
205205
}

0 commit comments

Comments
 (0)