# Save user settings and send out an email authentication message if needed
$u->saveSettings();
- if( $wgEmailAuthentication && User::isValidEmailAddr( $u->getEmail() ) )
- $u->sendConfirmationMail();
+ if( $wgEmailAuthentication && User::isValidEmailAddr( $u->getEmail() ) ) {
+ global $wgOut;
+ $error = $u->sendConfirmationMail();
+ if( WikiError::isError( $error ) ) {
+ $wgOut->addWikiText( wfMsg( 'confirmemail_sendfailed', $error->getMessage() ) );
+ } else {
+ $wgOut->addWikiText( wfMsg( 'confirmemail_oncreate' ) );
+ }
+ }
# If not logged in, assume the new account as the current one and set session cookies
# then show a "welcome" message or a "need cookies" message as needed
// people who have been logging in with a temporary
// password for some time.
//
+ // As a side-effect, we can authenticate the user's
+ // e-mail address if it's not already done, since
+ // the temporary password was sent via e-mail.
+ //
+ if( !$u->isEmailConfirmed() ) {
+ $u->confirmEmail();
+ }
+
// At this point we just return an appropriate code
// indicating that the UI should show a password
// reset form; bot interfaces etc will probably just
// fail cleanly here.
+ //
return self::RESET_PASS;
} else {
return '' == $this->mPassword ? self::EMPTY_PASS : self::WRONG_PASS;