Revision: 45992
Author:   werdna
Date:     2009-01-22 01:37:23 +0000 (Thu, 22 Jan 2009)

Log Message:
-----------
Remove remnants of native Abuse Filter Parser implementation.

Modified Paths:
--------------
    branches/change-tagging/extensions/AbuseFilter/AbuseFilter.class.php
    branches/change-tagging/extensions/AbuseFilter/AbuseFilter.php

Removed Paths:
-------------
    branches/change-tagging/extensions/AbuseFilter/AbuseFilter.nativeparser.php

Modified: branches/change-tagging/extensions/AbuseFilter/AbuseFilter.class.php
===================================================================
--- branches/change-tagging/extensions/AbuseFilter/AbuseFilter.class.php        
2009-01-22 01:09:51 UTC (rev 45991)
+++ branches/change-tagging/extensions/AbuseFilter/AbuseFilter.class.php        
2009-01-22 01:37:23 UTC (rev 45992)
@@ -53,7 +53,8 @@
                $vars[$prefix."_NAMESPACE"] = $title->getNamespace();
                $vars[$prefix."_TEXT"] = $title->getText();
                $vars[$prefix."_PREFIXEDTEXT"] = $title->getPrefixedText();
-               
+
+               // Use restrictions.
                if ($title->mRestrictionsLoaded) {
                        // Don't bother if they're unloaded
                        foreach( $title->mRestrictions as $action => $rights ) {
@@ -62,7 +63,7 @@
                        }
                }
                
-               // Find last 5 authors
+               // Find last 5 authors, for testing.
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select( 'revision', 'distinct rev_user_text', 
array('rev_page' => $title->getArticleId() ), __METHOD__, array( 'order by' => 
'rev_timestamp desc', 'limit' => 10 ) );
                $users = array();
@@ -115,7 +116,7 @@
                return self::evaluateExpression( $expr );
        }
 
-       public static function checkConditions( $conds, $vars ) {
+       public static function checkConditions( $conds, $vars, $ignoreError = 
true ) {
                global $wgAbuseFilterParserClass;
                
                wfProfileIn( __METHOD__ );
@@ -128,6 +129,10 @@
                } catch (Exception $excep) {
                        // Sigh.
                        $result = false;
+
+                       if (!$ignoreError) {
+                               throw $excep;
+                       }
                }
                
                wfProfileOut( __METHOD__ );
@@ -159,6 +164,8 @@
                                $newLog = $log_template;
                                $newLog['afl_filter'] = $row->af_id;
                                $newLog['afl_action'] = $vars['ACTION'];
+
+                               if ($
                                $log_entries[] = $newLog;
                                
                                $doneActionsByFilter[$row->af_id] = array();
@@ -179,7 +186,7 @@
                
                // Retrieve the consequences.
                $res = $dbr->select( 'abuse_filter_action', '*', array( 
'afa_filter' => array_keys( $blocking_filters ) ), __METHOD__, array( "ORDER 
BY" => " (afa_consequence in ('throttle','warn'))-(afa_consequence in 
('disallow')) desc" ) );
-               // We want throttles, warnings first, as they have a bit of a 
special treatment. We want disallow last.
+               // We want throttles, warnings first, as they have a bit of a 
special treatment. We want disallow last, so that it can be "eaten" by other 
actions.
                
                $actions_done = array();
                $throttled_filters = array();
@@ -244,10 +251,9 @@
        }
        
        public static function takeConsequenceAction( $action, $parameters, 
$title, $vars, &$display, &$continue, $rule_desc ) {
+               wfLoadExtensionMessages( 'AbuseFilter' );
                switch ($action) {
                        case 'warn':
-                               wfLoadExtensionMessages( 'AbuseFilter' );
-                               
                                if (!isset($_SESSION['abusefilter-warned']) || 
!$_SESSION['abusefilter-warned']) {
                                        $_SESSION['abusefilter-warned'] = true;
                                        
@@ -263,9 +269,6 @@
                                break;
                                
                        case 'disallow':
-                               wfLoadExtensionMessages( 'AbuseFilter' );
-                               
-                               // Don't let them do it
                                if (strlen($parameters[0])) {
                                        $display .= wfMsgNoTrans( 
$parameters[0], $rule_desc ) . "\n";
                                } else {
@@ -275,8 +278,6 @@
                                break;
                                
                        case 'block':
-                               wfLoadExtensionMessages( 'AbuseFilter' );
-                               
                                global $wgUser;
                                $filterUser = AbuseFilter::getFilterUser();
 
@@ -307,8 +308,6 @@
                                $display .= wfMsgNoTrans( 
'abusefilter-blocked-display', $rule_desc ) ."<br />\n";
                                break;
                        case 'rangeblock':
-                               wfLoadExtensionMessages( 'AbuseFilter' );
-                               
                                global $wgUser;
                                $filterUser = AbuseFilter::getFilterUser();
                                
@@ -359,8 +358,6 @@
                                return $hitThrottle;
                                break;
                        case 'degroup':
-                               wfLoadExtensionMessages( 'AbuseFilter' );
-
                                global $wgUser;
                                if (!$wgUser->isAnon()) {
                                        // Remove all groups from the user. 
Ouch.
@@ -389,8 +386,6 @@
                        case 'blockautopromote':
                                global $wgUser, $wgMemc;
                                if (!$wgUser->isAnon()) {
-                                       wfLoadExtensionMessages( 'AbuseFilter' 
);
-
                                        $blockPeriod = (int)mt_rand( 3*86400, 
7*86400 ); // Block for 3-7 days.
                                        $wgMemc->set( 
self::autoPromoteBlockKey( $wgUser ), true, $blockPeriod );
 

Deleted: 
branches/change-tagging/extensions/AbuseFilter/AbuseFilter.nativeparser.php
===================================================================
--- branches/change-tagging/extensions/AbuseFilter/AbuseFilter.nativeparser.php 
2009-01-22 01:09:51 UTC (rev 45991)
+++ branches/change-tagging/extensions/AbuseFilter/AbuseFilter.nativeparser.php 
2009-01-22 01:37:23 UTC (rev 45992)
@@ -1,155 +0,0 @@
-<?php
-if ( ! defined( 'MEDIAWIKI' ) )
-       die();
-       
-class AbuseFilterException extends MWException {}
-
-class AbuseFilterParserNative {
-       var $mVars;
-       var $mProcess,$mPipes;
-       
-       public function __construct() {
-               $this->mVars = array();
-       }
-       
-       public function __destruct() {
-               if (is_array($this->mPipes)) {
-                       foreach( $this->mPipes as $pipe ) {
-                               fclose($pipe);
-                       }
-               }
-               
-               if (is_resource($this->mProcess)) {
-                       proc_terminate( $this->mProcess );
-               }
-       }
-       
-       public function setVar( $name, $var ) {
-               $this->mVars[$name] = $var;
-       }
-       
-       public function setVars( $vars ) {
-               foreach( $vars as $name => $var ) {
-                       $this->setVar( $name, $var );
-               }
-       }
-       
-       public function getNativeParser() {     
-               global $wgAbuseFilterNativeParser;
-               
-               if (!is_resource($this->mProcess)) {
-                       $this->mPipes = array();
-                       $descriptorspec = array( 
-                                       0 => array( 'pipe', 'r' ),
-                                       1 => array( 'pipe', 'w' )
-                               );
-                               
-                       $this->mProcess = proc_open( 
$wgAbuseFilterNativeParser, $descriptorspec, $this->mPipes );
-                       
-                       if (!is_resource($this->mProcess)) {
-                               throw new MWException( "Error using native 
parser" );
-                       }
-                       
-                       return $this->mPipes;
-               }
-               
-               return $this->mPipes;
-       }
-       
-       public function checkSyntax( $filter ) {
-               global $wgAbuseFilterNativeSyntaxCheck;
-               
-               // Check the syntax of $filter
-               $pipes = array();
-               $descriptorspec = array(
-                               0 => array( 'pipe', 'r' ),
-                               1 => array( 'pipe', 'w' )
-                       );
-               
-               $proc = proc_open( $wgAbuseFilterNativeSyntaxCheck, 
$descriptorspec, $pipes );
-               
-               if (!is_resource( $proc )) {
-                       throw new MWException( "Unable to check syntax of 
filter." );
-               }
-               
-               fwrite( $pipes[0], $filter );
-               fflush( $pipes[0] );
-               fclose( $pipes[0] );
-               
-               $response = trim(fgets( $pipes[1] ) );
-               
-               if ($response == "SUCCESS") {
-                       return true;
-               } else {
-                       list ($discard,$error) = explode( ":", $response, 2 );
-                       return $error;
-               }
-       }
-       
-       public function parse( $filter ) {
-               $request = $this->generateRequest( $filter );
-               
-               $pipes = $this->getNativeParser();
-               
-               if (is_array($pipes)) {
-                       fwrite($pipes[0], $request);
-                       fflush($pipes[0]);
-
-                       // Get response
-                       $response = trim(fgets( $pipes[1] ));
-                       
-                       if ($response == "MATCH") {
-                               return true;
-                       } elseif ($response == "NOMATCH") {
-                               return false;
-                       } elseif (in_string( 'EXCEPTION', $response ) ) {
-                               throw new AbuseFilterException( "Native parser 
$response" );
-                       } else {
-                               throw new AbuseFilterException( "Unknown output 
from native parser: $response" );
-                       }
-               }
-       }
-       
-       public function evaluateExpression( $filter ) {
-               $request = $this->generateRequest( $filter );
-               
-               global $wgAbuseFilterNativeExpressionEvaluator;
-               
-               // Check the syntax of $filter
-               $pipes = array();
-               $descriptorspec = array(
-                               0 => array( 'pipe', 'r' ),
-                               1 => array( 'pipe', 'w' )
-                       );
-               
-               $proc = proc_open( $wgAbuseFilterNativeExpressionEvaluator, 
$descriptorspec, $pipes );
-               
-               if (!is_resource( $proc )) {
-                       throw new MWException( "Unable to evaluate expression." 
);
-               }
-               
-               fwrite( $pipes[0], $request );
-               fflush( $pipes[0] );
-               fclose( $pipes[0] );
-               
-               $response = trim(stream_get_line( $pipes[1], 4096, "\0" ) );
-               
-               return $response;
-       }
-       
-       protected function generateRequest( $filter ) {
-               // Write vars
-               $request = '';
-               $request .= $filter;
-               $request .= "\0";
-               
-               // Key-value pairs
-               foreach( $this->mVars as $key => $value ) {
-                       $request .= "$key\0$value\0";
-               }
-               
-               $request .= "\0";
-               
-               return $request;
-       }
-}

Modified: branches/change-tagging/extensions/AbuseFilter/AbuseFilter.php
===================================================================
--- branches/change-tagging/extensions/AbuseFilter/AbuseFilter.php      
2009-01-22 01:09:51 UTC (rev 45991)
+++ branches/change-tagging/extensions/AbuseFilter/AbuseFilter.php      
2009-01-22 01:37:23 UTC (rev 45992)
@@ -29,7 +29,6 @@
 
 $wgAutoloadClasses['AbuseFilter'] = "$dir/AbuseFilter.class.php";
 $wgAutoloadClasses['AbuseFilterParser'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AbuseFilterParserNative'] = 
"$dir/AbuseFilter.nativeparser.php";
 $wgAutoloadClasses['AbuseFilterHooks'] = "$dir/AbuseFilter.hooks.php";
 $wgAutoloadClasses['SpecialAbuseLog'] = "$dir/SpecialAbuseLog.php";
 $wgAutoloadClasses['SpecialAbuseFilter'] = "$dir/SpecialAbuseFilter.php";



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

Reply via email to