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