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

Revision: 114117
Author:   ialex
Date:     2012-03-18 22:19:00 +0000 (Sun, 18 Mar 2012)
Log Message:
-----------
* (bug 35303) Make proxy and DNS blacklist blocking work again

Modified Paths:
--------------
    branches/REL1_19/phase3/RELEASE-NOTES-1.19
    branches/REL1_19/phase3/includes/User.php
    trunk/phase3/RELEASE-NOTES-1.19
    trunk/phase3/includes/User.php

Modified: branches/REL1_19/phase3/RELEASE-NOTES-1.19
===================================================================
--- branches/REL1_19/phase3/RELEASE-NOTES-1.19  2012-03-18 22:13:55 UTC (rev 
114116)
+++ branches/REL1_19/phase3/RELEASE-NOTES-1.19  2012-03-18 22:19:00 UTC (rev 
114117)
@@ -24,6 +24,7 @@
   preloaded into edit summary on section edit
 * (bug 31417) New ID mw-content-text around the actual page text, without 
categories,
   contentSub, ... The same div often also contains the class 
mw-content-ltr/rtl.
+* (bug 35303) Proxy and DNS blacklist blocking works again
 
 === Configuration changes in 1.19 ===
 * Removed SkinTemplateSetupPageCss hook; use BeforePageDisplay instead.

Modified: branches/REL1_19/phase3/includes/User.php
===================================================================
--- branches/REL1_19/phase3/includes/User.php   2012-03-18 22:13:55 UTC (rev 
114116)
+++ branches/REL1_19/phase3/includes/User.php   2012-03-18 22:19:00 UTC (rev 
114117)
@@ -1268,10 +1268,6 @@
                // overwriting mBlockedby, surely?
                $this->load();
 
-               $this->mBlockedby = 0;
-               $this->mHideName = 0;
-               $this->mAllowUsertalk = 0;
-
                # We only need to worry about passing the IP address to the 
Block generator if the
                # user is not immune to autoblocks/hardblocks, and they are the 
current user so we
                # know which IP address they're actually coming from
@@ -1282,30 +1278,37 @@
                }
 
                # User/IP blocking
-               $this->mBlock = Block::newFromTarget( $this->getName(), $ip, 
!$bFromSlave );
-               if ( $this->mBlock instanceof Block ) {
-                       wfDebug( __METHOD__ . ": Found block.\n" );
-                       $this->mBlockedby = $this->mBlock->getByName();
-                       $this->mBlockreason = $this->mBlock->mReason;
-                       $this->mHideName = $this->mBlock->mHideName;
-                       $this->mAllowUsertalk = !$this->mBlock->prevents( 
'editownusertalk' );
-               }
+               $block = Block::newFromTarget( $this->getName(), $ip, 
!$bFromSlave );
 
                # Proxy blocking
-               if ( $ip !== null && !$this->isAllowed( 'proxyunbannable' ) && 
!in_array( $ip, $wgProxyWhitelist ) ) {
+               if ( !$block instanceof Block && $ip !== null && 
!$this->isAllowed( 'proxyunbannable' )
+                       && !in_array( $ip, $wgProxyWhitelist ) ) 
+               {
                        # Local list
                        if ( self::isLocallyBlockedProxy( $ip ) ) {
-                               $this->mBlockedby = wfMsg( 'proxyblocker' );
-                               $this->mBlockreason = wfMsg( 'proxyblockreason' 
);
+                               $block = new Block;
+                               $block->setBlocker( wfMsg( 'proxyblocker' ) );
+                               $block->mReason = wfMsg( 'proxyblockreason' );
+                               $block->setTarget( $ip );
+                       } elseif ( $this->isAnon() && $this->isDnsBlacklisted( 
$ip ) ) {
+                               $block = new Block;
+                               $block->setBlocker( wfMsg( 'sorbs' ) );
+                               $block->mReason = wfMsg( 'sorbsreason' );
+                               $block->setTarget( $ip );
                        }
+               }
 
-                       # DNSBL
-                       if ( !$this->mBlockedby && !$this->getID() ) {
-                               if ( $this->isDnsBlacklisted( $ip ) ) {
-                                       $this->mBlockedby = wfMsg( 'sorbs' );
-                                       $this->mBlockreason = wfMsg( 
'sorbsreason' );
-                               }
-                       }
+               if ( $block instanceof Block ) {
+                       wfDebug( __METHOD__ . ": Found block.\n" );
+                       $this->mBlock = $block;
+                       $this->mBlockedby = $block->getByName();
+                       $this->mBlockreason = $block->mReason;
+                       $this->mHideName = $block->mHideName;
+                       $this->mAllowUsertalk = !$block->prevents( 
'editownusertalk' );
+               } else {
+                       $this->mBlockedby = '';
+                       $this->mHideName = 0;
+                       $this->mAllowUsertalk = false;
                }
 
                # Extensions

Modified: trunk/phase3/RELEASE-NOTES-1.19
===================================================================
--- trunk/phase3/RELEASE-NOTES-1.19     2012-03-18 22:13:55 UTC (rev 114116)
+++ trunk/phase3/RELEASE-NOTES-1.19     2012-03-18 22:19:00 UTC (rev 114117)
@@ -24,6 +24,7 @@
   preloaded into edit summary on section edit
 * (bug 31417) New ID mw-content-text around the actual page text, without 
categories,
   contentSub, ... The same div often also contains the class 
mw-content-ltr/rtl.
+* (bug 35303) Proxy and DNS blacklist blocking works again
 
 === Configuration changes in 1.19 ===
 * Removed SkinTemplateSetupPageCss hook; use BeforePageDisplay instead.

Modified: trunk/phase3/includes/User.php
===================================================================
--- trunk/phase3/includes/User.php      2012-03-18 22:13:55 UTC (rev 114116)
+++ trunk/phase3/includes/User.php      2012-03-18 22:19:00 UTC (rev 114117)
@@ -1273,10 +1273,6 @@
                // overwriting mBlockedby, surely?
                $this->load();
 
-               $this->mBlockedby = 0;
-               $this->mHideName = 0;
-               $this->mAllowUsertalk = 0;
-
                # We only need to worry about passing the IP address to the 
Block generator if the
                # user is not immune to autoblocks/hardblocks, and they are the 
current user so we
                # know which IP address they're actually coming from
@@ -1287,30 +1283,37 @@
                }
 
                # User/IP blocking
-               $this->mBlock = Block::newFromTarget( $this->getName(), $ip, 
!$bFromSlave );
-               if ( $this->mBlock instanceof Block ) {
-                       wfDebug( __METHOD__ . ": Found block.\n" );
-                       $this->mBlockedby = $this->mBlock->getByName();
-                       $this->mBlockreason = $this->mBlock->mReason;
-                       $this->mHideName = $this->mBlock->mHideName;
-                       $this->mAllowUsertalk = !$this->mBlock->prevents( 
'editownusertalk' );
-               }
+               $block = Block::newFromTarget( $this->getName(), $ip, 
!$bFromSlave );
 
                # Proxy blocking
-               if ( $ip !== null && !$this->isAllowed( 'proxyunbannable' ) && 
!in_array( $ip, $wgProxyWhitelist ) ) {
+               if ( !$block instanceof Block && $ip !== null && 
!$this->isAllowed( 'proxyunbannable' )
+                       && !in_array( $ip, $wgProxyWhitelist ) ) 
+               {
                        # Local list
                        if ( self::isLocallyBlockedProxy( $ip ) ) {
-                               $this->mBlockedby = wfMsg( 'proxyblocker' );
-                               $this->mBlockreason = wfMsg( 'proxyblockreason' 
);
+                               $block = new Block;
+                               $block->setBlocker( wfMsg( 'proxyblocker' ) );
+                               $block->mReason = wfMsg( 'proxyblockreason' );
+                               $block->setTarget( $ip );
+                       } elseif ( $this->isAnon() && $this->isDnsBlacklisted( 
$ip ) ) {
+                               $block = new Block;
+                               $block->setBlocker( wfMsg( 'sorbs' ) );
+                               $block->mReason = wfMsg( 'sorbsreason' );
+                               $block->setTarget( $ip );
                        }
+               }
 
-                       # DNSBL
-                       if ( !$this->mBlockedby && !$this->getID() ) {
-                               if ( $this->isDnsBlacklisted( $ip ) ) {
-                                       $this->mBlockedby = wfMsg( 'sorbs' );
-                                       $this->mBlockreason = wfMsg( 
'sorbsreason' );
-                               }
-                       }
+               if ( $block instanceof Block ) {
+                       wfDebug( __METHOD__ . ": Found block.\n" );
+                       $this->mBlock = $block;
+                       $this->mBlockedby = $block->getByName();
+                       $this->mBlockreason = $block->mReason;
+                       $this->mHideName = $block->mHideName;
+                       $this->mAllowUsertalk = !$block->prevents( 
'editownusertalk' );
+               } else {
+                       $this->mBlockedby = '';
+                       $this->mHideName = 0;
+                       $this->mAllowUsertalk = false;
                }
 
                # Extensions


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to