aboutsummaryrefslogtreecommitdiffstats
path: root/includes/auth
diff options
context:
space:
mode:
authorGergő Tisza <gtisza@wikimedia.org>2016-08-19 06:06:25 +0000
committerGergő Tisza <gtisza@wikimedia.org>2016-08-19 07:39:39 +0000
commit97ad2ba55e4a612a2178bb9abecabf1a488ccf57 (patch)
tree037c524eb7385582ad41ad5ed73fa10013f20177 /includes/auth
parent6b6154c30eca9a6f6b451119fb800db170393336 (diff)
downloadmediawikicore-97ad2ba55e4a612a2178bb9abecabf1a488ccf57.tar.gz
mediawikicore-97ad2ba55e4a612a2178bb9abecabf1a488ccf57.zip
Send registration welcome email post-commit
Follow-up to I8f1bd3e. Change-Id: I26e7a1857363d4e6627a0f583a8556d0fd8ae623
Diffstat (limited to 'includes/auth')
-rw-r--r--includes/auth/EmailNotificationSecondaryAuthenticationProvider.php19
1 files changed, 10 insertions, 9 deletions
diff --git a/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php b/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php
index d32640ea1d24..a82f018d480d 100644
--- a/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php
+++ b/includes/auth/EmailNotificationSecondaryAuthenticationProvider.php
@@ -50,15 +50,16 @@ 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' ) );
+ }
+ } );
}
return AuthenticationResponse::newPass();