https://www.mediawiki.org/wiki/Special:Code/MediaWiki/103396

Revision: 103396
Author:   mah
Date:     2011-11-16 22:24:03 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
Applying Michael Newton's patch from Bug 24464 - Execute
LoginAuthenticateAudit hook more often

Tested and it *seems* reasonable to me.

Modified Paths:
--------------
    trunk/phase3/CREDITS
    trunk/phase3/includes/specials/SpecialUserlogin.php

Modified: trunk/phase3/CREDITS
===================================================================
--- trunk/phase3/CREDITS        2011-11-16 22:01:41 UTC (rev 103395)
+++ trunk/phase3/CREDITS        2011-11-16 22:24:03 UTC (rev 103396)
@@ -131,6 +131,7 @@
 * Michael Dale
 * Michael De La Rue
 * Michael M.
+* Michael Newton
 * Michael Walsh
 * Mike Horvath
 * Mormegil

Modified: trunk/phase3/includes/specials/SpecialUserlogin.php
===================================================================
--- trunk/phase3/includes/specials/SpecialUserlogin.php 2011-11-16 22:01:41 UTC 
(rev 103395)
+++ trunk/phase3/includes/specials/SpecialUserlogin.php 2011-11-16 22:24:03 UTC 
(rev 103396)
@@ -475,6 +475,7 @@
                $this->load();
 
                if ( $this->mUsername == '' ) {
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, self::NO_NAME ) );
                        return self::NO_NAME;
                }
 
@@ -486,20 +487,24 @@
                // If the user doesn't have a login token yet, set one.
                if ( !self::getLoginToken() ) {
                        self::setLoginToken();
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, self::NEED_TOKEN ) );
                        return self::NEED_TOKEN;
                }
                // If the user didn't pass a login token, tell them we need one
                if ( !$this->mToken ) {
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, self::NEED_TOKEN ) );
                        return self::NEED_TOKEN;
                }
 
                $throttleCount = self::incLoginThrottle( $this->mUsername );
                if ( $throttleCount === true ) {
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, self::THROTTLED ) );
                        return self::THROTTLED;
                }
 
                // Validate the login token
                if ( $this->mToken !== self::getLoginToken() ) {
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, self::WRONG_TOKEN ) );
                        return self::WRONG_TOKEN;
                }
 
@@ -520,6 +525,7 @@
                # user choose a different wiki name.
                $u = User::newFromName( $this->mUsername );
                if( !( $u instanceof User ) || !User::isUsableName( 
$u->getName() ) ) {
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, self::ILLEGAL ) );
                        return self::ILLEGAL;
                }
 
@@ -527,6 +533,7 @@
                if ( 0 == $u->getID() ) {
                        $status = $this->attemptAutoCreate( $u );
                        if ( $status !== self::SUCCESS ) {
+                               wfRunHooks( 'LoginAuthenticateAudit', array( 
$u, $this->mPassword, $status ) );
                                return $status;
                        } else {
                                $isAutoCreated = true;
@@ -547,6 +554,7 @@
                // Give general extensions, such as a captcha, a chance to 
abort logins
                $abort = self::ABORTED;
                if( !wfRunHooks( 'AbortLogin', array( $u, $this->mPassword, 
&$abort, &$this->mAbortLoginErrorMsg ) ) ) {
+                       wfRunHooks( 'LoginAuthenticateAudit', array( $u, 
$this->mPassword, $abort ) );
                        return $abort;
                }
 


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to