}
$pwhash = $this->getPassword( $row->user_newpassword );
- if ( !$pwhash->equals( $req->password ) ) {
+ if ( !$pwhash->verify( $req->password ) ) {
return $this->failResponse( $req );
}
if ( $sendMail ) {
// Send email after DB commit
- $dbw->onTransactionIdle(
+ $dbw->onTransactionCommitOrIdle(
function () use ( $req ) {
/** @var TemporaryPasswordAuthenticationRequest $req */
$this->sendPasswordResetEmail( $req );
$req = AuthenticationRequest::getRequestByClass(
$reqs, TemporaryPasswordAuthenticationRequest::class
);
- if ( $req ) {
- if ( $req->username !== null && $req->password !== null ) {
- // Nothing we can do yet, because the user isn't in the DB yet
- if ( $req->username !== $user->getName() ) {
- $req = clone $req;
- $req->username = $user->getName();
- }
-
- if ( $req->mailpassword ) {
- // prevent EmailNotificationSecondaryAuthenticationProvider from sending another mail
- $this->manager->setAuthenticationSessionData( 'no-email', true );
- }
+ if ( $req && $req->username !== null && $req->password !== null ) {
+ // Nothing we can do yet, because the user isn't in the DB yet
+ if ( $req->username !== $user->getName() ) {
+ $req = clone $req;
+ $req->username = $user->getName();
+ }
- $ret = AuthenticationResponse::newPass( $req->username );
- $ret->createRequest = $req;
- return $ret;
+ if ( $req->mailpassword ) {
+ // prevent EmailNotificationSecondaryAuthenticationProvider from sending another mail
+ $this->manager->setAuthenticationSessionData( 'no-email', true );
}
+
+ $ret = AuthenticationResponse::newPass( $req->username );
+ $ret->createRequest = $req;
+ return $ret;
}
return AuthenticationResponse::newAbstain();
}
if ( $mailpassword ) {
// Send email after DB commit
- wfGetDB( DB_MASTER )->onTransactionIdle(
+ wfGetDB( DB_MASTER )->onTransactionCommitOrIdle(
function () use ( $user, $creator, $req ) {
$this->sendNewAccountEmail( $user, $creator, $req->password );
},