From eb811913b82e5fbb0fff18644adb3e8507ff0eab Mon Sep 17 00:00:00 2001 From: "Jack D. Pond" Date: Sun, 6 Mar 2011 05:39:41 +0000 Subject: [PATCH] Fix and Enhance: 1. Fix - previously unresolved possible return value (ABORTED) added to switch 2. Allows a message to be returned when status "ABORTED" instead of just one of existing generic messages. --- includes/api/ApiLogin.php | 5 +++++ includes/specials/SpecialUserlogin.php | 6 +++++- languages/messages/MessagesEn.php | 1 + languages/messages/MessagesQqq.php | 1 + maintenance/language/messages.inc | 1 + 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/includes/api/ApiLogin.php b/includes/api/ApiLogin.php index 2bd773a4a7..e223dabd5a 100644 --- a/includes/api/ApiLogin.php +++ b/includes/api/ApiLogin.php @@ -140,6 +140,11 @@ class ApiLogin extends ApiBase { $result['result'] = 'Blocked'; break; + case LoginForm::ABORTED: + $result['result'] = 'Aborted'; + $result['reason'] = $this->mAbortLoginErrorMsg; + break; + default: ApiBase::dieDebug( __METHOD__, "Unhandled case value: {$authRes}" ); } diff --git a/includes/specials/SpecialUserlogin.php b/includes/specials/SpecialUserlogin.php index d13c49a356..a82e25dff9 100644 --- a/includes/specials/SpecialUserlogin.php +++ b/includes/specials/SpecialUserlogin.php @@ -47,6 +47,7 @@ class LoginForm extends SpecialPage { var $mAction, $mCreateaccount, $mCreateaccountMail, $mMailmypassword; var $mLoginattempt, $mRemember, $mEmail, $mDomain, $mLanguage; var $mSkipCookieCheck, $mReturnToQuery, $mToken, $mStickHTTPS; + var $mAbortLoginErrorMsg = 'login-abort-generic'; private $mExtUser = null; @@ -527,7 +528,7 @@ class LoginForm extends SpecialPage { // Give general extensions, such as a captcha, a chance to abort logins $abort = self::ABORTED; - if( !wfRunHooks( 'AbortLogin', array( $u, $this->mPassword, &$abort ) ) ) { + if( !wfRunHooks( 'AbortLogin', array( $u, $this->mPassword, &$abort, &$this->mAbortLoginErrorMsg ) ) ) { return $abort; } @@ -707,6 +708,9 @@ class LoginForm extends SpecialPage { $this->mainLoginForm( wfMsgExt( 'login-userblocked', array( 'parsemag', 'escape' ), $this->mUsername ) ); break; + case self::ABORTED: + $this->mainLoginForm( wfMsg( $this->mAbortLoginErrorMsg ) ); + break; default: throw new MWException( 'Unhandled case value' ); } diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index c4ee837027..94909567d9 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1153,6 +1153,7 @@ You may ignore this message, if this account was created in error.', 'usernamehasherror' => 'Username cannot contain hash characters', 'login-throttled' => 'You have made too many recent login attempts. Please wait before trying again.', +'login-abort-generic' => 'Your login was unsuccessful - Aborted', 'loginlanguagelabel' => 'Language: $1', 'loginlanguagelinks' => '* Deutsch|de * English|en diff --git a/languages/messages/MessagesQqq.php b/languages/messages/MessagesQqq.php index 96fe2da0dc..f516da984c 100644 --- a/languages/messages/MessagesQqq.php +++ b/languages/messages/MessagesQqq.php @@ -720,6 +720,7 @@ Parameters: *Parameter $3 is a password (randomly generated). *Parameter $4 is a URL to the wiki', 'login-throttled' => 'Error message shown at [[Special:UserLogin]] after 5 wrong passwords. The hardcoded waiting time is 300 seconds.', +'login-abort-generic' => 'The generic unsuccessful login message used unless otherwise specified by hook writers', # JavaScript password checks 'password-strength' => 'Indicator of [[w:Password strength|password strength]] shown when entering a new password (during user registration or password reset). diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 6247843e49..9a4c92f40e 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -481,6 +481,7 @@ $wgMessageStructure = array( 'createaccount-text', 'usernamehasherror', 'login-throttled', + 'login-abort-generic', 'loginlanguagelabel', 'loginlanguagelinks', 'suspicious-userlogout', -- 2.20.1