X-Git-Url: https://git.cyclocoop.org/admin/?a=blobdiff_plain;f=includes%2Fauth%2FEmailNotificationSecondaryAuthenticationProvider.php;h=a4855318b5ac89aacbb1d8dcc284c9d75bc30270;hb=d1e136dc4f1f4c59898cb25cb8239d6f7dd9bb36;hp=d32640ea1d24ef3d90fba0a696a5257310198681;hpb=d24af42ffff087a0824f6e9abefa33cab3e4e835;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php b/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php index d32640ea1d..a4855318b5 100644 --- a/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php +++ b/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php @@ -50,15 +50,19 @@ class EmailNotificationSecondaryAuthenticationProvider && $user->getEmail() && !$this->manager->getAuthenticationSessionData( 'no-email' ) ) { - $status = $user->sendConfirmationMail(); - $user->saveSettings(); - if ( $status->isGood() ) { - // TODO show 'confirmemail_oncreate' success message - } else { - // TODO show 'confirmemail_sendfailed' error message - $this->logger->warning( 'Could not send confirmation email: ' . - $status->getWikiText( false, false, 'en' ) ); - } + // TODO show 'confirmemail_oncreate'/'confirmemail_sendfailed' message + wfGetDB( DB_MASTER )->onTransactionIdle( + function () use ( $user ) { + $user = $user->getInstanceForUpdate(); + $status = $user->sendConfirmationMail(); + $user->saveSettings(); + if ( !$status->isGood() ) { + $this->logger->warning( 'Could not send confirmation email: ' . + $status->getWikiText( false, false, 'en' ) ); + } + }, + __METHOD__ + ); } return AuthenticationResponse::newPass();