http://www.mediawiki.org/wiki/Special:Code/MediaWiki/95152

Revision: 95152
Author:   raymond
Date:     2011-08-21 16:38:02 +0000 (Sun, 21 Aug 2011)
Log Message:
-----------
New hook point to exempt an IP address from the account creation throttle. Redo 
of r95041 per Niklas CR
Needed for a new extension to make (mass) account creation easier for 
schools/colleges etc

Modified Paths:
--------------
    trunk/phase3/RELEASE-NOTES-1.19
    trunk/phase3/docs/hooks.txt
    trunk/phase3/includes/specials/SpecialUserlogin.php

Modified: trunk/phase3/RELEASE-NOTES-1.19
===================================================================
--- trunk/phase3/RELEASE-NOTES-1.19     2011-08-21 15:46:53 UTC (rev 95151)
+++ trunk/phase3/RELEASE-NOTES-1.19     2011-08-21 16:38:02 UTC (rev 95152)
@@ -45,6 +45,7 @@
   although they are not used there.
 * (bug 30451) Add page_props to RefreshLinks::deleteLinksFromNonexistent
 * (bug 30450) Clear page_props table on page deletion
+* Hook added to check for exempt from account creation throttle
 
 === Bug fixes in 1.19 ===
 * $wgUploadNavigationUrl should be used for file redlinks if

Modified: trunk/phase3/docs/hooks.txt
===================================================================
--- trunk/phase3/docs/hooks.txt 2011-08-21 15:46:53 UTC (rev 95151)
+++ trunk/phase3/docs/hooks.txt 2011-08-21 16:38:02 UTC (rev 95152)
@@ -849,6 +849,9 @@
 $editToken: The user's edit token.
 &$hookErr: Out-param for the error. Passed as the parameters to 
OutputPage::showErrorPage.
 
+'exemptFromAccountCreationThrottle': Exemption from the account creation 
throttle
+$ip: The ip address of the user
+
 'ExtensionTypes': called when generating the extensions credits, use this to 
change the tables headers
 &$extTypes: associative array of extensions types
 

Modified: trunk/phase3/includes/specials/SpecialUserlogin.php
===================================================================
--- trunk/phase3/includes/specials/SpecialUserlogin.php 2011-08-21 15:46:53 UTC 
(rev 95151)
+++ trunk/phase3/includes/specials/SpecialUserlogin.php 2011-08-21 16:38:02 UTC 
(rev 95152)
@@ -377,17 +377,23 @@
                        return false;
                }
 
-               if ( $wgAccountCreationThrottle && $wgUser->isPingLimitable() ) 
{
-                       $key = wfMemcKey( 'acctcreate', 'ip', $ip );
-                       $value = $wgMemc->get( $key );
-                       if ( !$value ) {
-                               $wgMemc->set( $key, 0, 86400 );
+               // Hook point to check for exempt from account creation 
throttle        
+               if ( !wfRunHooks( 'exemptFromAccountCreationThrottle', array( 
$ip ) ) ) {
+                       wfDebug( "LoginForm::exemptFromAccountCreationThrottle: 
a hook allowed account creation w/o throttle\n" );
+               } else {
+                       if ( ( $wgAccountCreationThrottle && 
$wgUser->isPingLimitable() ) ) {
+                               wfDebugLog( 'CACT', "IN der core Throttle 
Abfrage\n" );
+                               $key = wfMemcKey( 'acctcreate', 'ip', $ip );
+                               $value = $wgMemc->get( $key );
+                               if ( !$value ) {
+                                       $wgMemc->set( $key, 0, 86400 );
+                               }
+                               if ( $value >= $wgAccountCreationThrottle ) {
+                                       $this->throttleHit( 
$wgAccountCreationThrottle );
+                                       return false;
+                               }
+                               $wgMemc->incr( $key );
                        }
-                       if ( $value >= $wgAccountCreationThrottle ) {
-                               $this->throttleHit( $wgAccountCreationThrottle 
);
-                               return false;
-                       }
-                       $wgMemc->incr( $key );
                }
 
                if( !$wgAuth->addUser( $u, $this->mPassword, $this->mEmail, 
$this->mRealName ) ) {


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

Reply via email to