From 4a39eb5d2ec29209624d2ccd99ad25292b15a47f Mon Sep 17 00:00:00 2001 From: Alexandre Emsenhuber Date: Tue, 18 Oct 2011 18:07:56 +0000 Subject: [PATCH] Fix for r100114: make API and tests work again --- includes/api/ApiLogin.php | 5 ++++- includes/specials/SpecialUserlogin.php | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/includes/api/ApiLogin.php b/includes/api/ApiLogin.php index 67e940961a..b18954b2db 100644 --- a/includes/api/ApiLogin.php +++ b/includes/api/ApiLogin.php @@ -68,7 +68,10 @@ class ApiLogin extends ApiBase { wfSetupSession(); } - $loginForm = new LoginForm( $req ); + $context = $this->createContext(); + $context->setRequest( $req ); + $loginForm = new LoginForm(); + $loginForm->setContext( $context ); global $wgCookiePrefix, $wgUser, $wgPasswordAttemptThrottle; diff --git a/includes/specials/SpecialUserlogin.php b/includes/specials/SpecialUserlogin.php index 9dfc3ce74b..9648ad8c89 100644 --- a/includes/specials/SpecialUserlogin.php +++ b/includes/specials/SpecialUserlogin.php @@ -49,6 +49,7 @@ class LoginForm extends SpecialPage { var $mSkipCookieCheck, $mReturnToQuery, $mToken, $mStickHTTPS; var $mType, $mReason, $mRealName; var $mAbortLoginErrorMsg = 'login-abort-generic'; + private $mLoaded = false; /** * @var ExternalUser @@ -74,9 +75,20 @@ class LoginForm extends SpecialPage { * * @param $request WebRequest object */ - function load( $request ) { + function load() { global $wgAuth, $wgHiddenPrefs, $wgEnableEmail, $wgRedirectOnLogin; + if ( $this->mLoaded ) { + return; + } + $this->mLoaded = true; + + if ( $this->mOverrideRequest === null ) { + $request = $this->getRequest(); + } else { + $request = $this->mOverrideRequest; + } + $this->mType = $request->getText( 'type' ); $this->mUsername = $request->getText( 'wpName' ); $this->mPassword = $request->getText( 'wpPassword' ); @@ -132,12 +144,7 @@ class LoginForm extends SpecialPage { wfSetupSession(); } - if ( $this->mOverrideRequest === null ) { - $request = $this->getRequest(); - } else { - $request = $this->mOverrideRequest; - } - $this->load( $request ); + $this->load(); if ( $par == 'signup' ) { # Check for [[Special:Userlogin/signup]] $this->mType = 'signup'; @@ -459,6 +466,8 @@ class LoginForm extends SpecialPage { public function authenticateUserData() { global $wgUser, $wgAuth; + $this->load(); + if ( $this->mUsername == '' ) { return self::NO_NAME; } -- 2.20.1