diff --git a/includes/specials/SpecialUserlogin.php b/includes/specials/SpecialUserlogin.php index 764ff40..940a4b0 100644 --- a/includes/specials/SpecialUserlogin.php +++ b/includes/specials/SpecialUserlogin.php @@ -532,6 +532,7 @@ class LoginForm extends SpecialPage { } $isAutoCreated = false; + $externallyAuthenticated = false; if ( 0 == $u->getID() ) { $status = $this->attemptAutoCreate( $u ); if ( $status !== self::SUCCESS ) { @@ -547,6 +548,7 @@ class LoginForm extends SpecialPage { # The external user and local user have the same name and # password, so we assume they're the same. $this->mExtUser->linkToLocal( $u->getID() ); + $externallyAuthenticated = true; } $u->load(); @@ -559,7 +561,7 @@ class LoginForm extends SpecialPage { } global $wgBlockDisablesLogin; - if ( !$u->checkPassword( $this->mPassword ) ) { + if ( !$externallyAuthenticated && !$u->checkPassword( $this->mPassword ) ) { if( $u->checkTemporaryPassword( $this->mPassword ) ) { // The e-mailed temporary password should not be used for actu- // al logins; that's a very sloppy habit, and insecure if an