mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter.git
synced 2024-09-24 02:38:16 +00:00
Fix batch-testing (follow-up to r48855)
This commit is contained in:
parent
3458bf1a7a
commit
920f04d4fa
|
@ -336,14 +336,15 @@ class AbuseFilter {
|
|||
return htmlspecialchars( self::evaluateExpression( $expr ) );
|
||||
}
|
||||
|
||||
public static function checkConditions( $conds, $vars, $ignoreError = true ) {
|
||||
public static function checkConditions( $conds, $vars, $ignoreError = true,
|
||||
$keepVars = 'resetvars' ) {
|
||||
global $wgAbuseFilterParserClass;
|
||||
|
||||
static $parser;
|
||||
|
||||
wfProfileIn( __METHOD__ );
|
||||
|
||||
if ( is_null($parser) ) {
|
||||
if ( is_null($parser) || $keepVars == 'resetvars' ) {
|
||||
$parser = new $wgAbuseFilterParserClass;
|
||||
|
||||
$parser->setVars( $vars );
|
||||
|
@ -388,7 +389,8 @@ class AbuseFilter {
|
|||
|
||||
// Check conditions...
|
||||
$pattern = trim($row->af_pattern);
|
||||
if ( self::checkConditions( $pattern, $vars ) ) {
|
||||
if ( self::checkConditions( $pattern, $vars, true /* ignore errors */,
|
||||
'keepvars' ) ) {
|
||||
// Record match.
|
||||
$filter_matched[$row->af_id] = true;
|
||||
} else {
|
||||
|
|
|
@ -118,6 +118,7 @@ Filter description: $7 ($8) ($9)',
|
|||
'abusefilter-tools' => 'Abuse filter tools',
|
||||
'abusefilter-loglink' => 'View the abuse log',
|
||||
'abusefilter-return' => 'Return to filter management',
|
||||
'abusefilter-status-global' => 'Global',
|
||||
|
||||
// Options form
|
||||
'abusefilter-list-options' => 'Options',
|
||||
|
@ -204,6 +205,7 @@ Please ask a user with permission to add restricted actions to make the change f
|
|||
'abusefilter-edit-revert' => 'Revert actions taken by this filter',
|
||||
'abusefilter-edit-tools' => 'Tools:',
|
||||
'abusefilter-edit-test-link' => 'Test this filter against recent edits',
|
||||
'abusefilter-edit-global' => 'Apply this filter globally',
|
||||
|
||||
// Filter editing helpers
|
||||
'abusefilter-edit-builder-select' => 'Select an option to add it at the cursor',
|
||||
|
|
|
@ -107,3 +107,8 @@ $wgAbuseFilterRestrictedActions = array( 'block', 'degroup' );
|
|||
$wgAbuseFilterUDPPrefix = 'abusefilter:';
|
||||
$wgAbuseFilterUDPAddress = null;
|
||||
$wgAbuseFilterUDPPort = null;
|
||||
|
||||
// Centralised filters
|
||||
$wgAbuseFilterCentralDB = null;
|
||||
$wgAbuseFilterIsCentral = false;
|
||||
|
||||
|
|
|
@ -280,6 +280,10 @@ class AbuseFilterViewEdit extends AbuseFilterView {
|
|||
// Build checkboxen
|
||||
$checkboxes = array( 'hidden', 'enabled', 'deleted' );
|
||||
$flags = '';
|
||||
|
||||
global $wgAbuseFilterIsCentral;
|
||||
if ($wgAbuseFilterIsCentral)
|
||||
$checkboxes[] = 'global';
|
||||
|
||||
if (isset($row->af_throttled) && $row->af_throttled) {
|
||||
global $wgAbuseFilterEmergencyDisableThreshold;
|
||||
|
@ -582,6 +586,7 @@ class AbuseFilterViewEdit extends AbuseFilterView {
|
|||
$obj->af_pattern = '';
|
||||
$obj->af_enabled = 1;
|
||||
$obj->af_hidden = 0;
|
||||
$obj->af_global = 0;
|
||||
return array( $obj, array() );
|
||||
}
|
||||
|
||||
|
@ -641,6 +646,8 @@ class AbuseFilterViewEdit extends AbuseFilterView {
|
|||
$row->af_deleted = $wgRequest->getBool( 'wpFilterDeleted' );
|
||||
$row->af_enabled = $wgRequest->getBool( 'wpFilterEnabled' ) && !$row->af_deleted;
|
||||
$row->af_hidden = $wgRequest->getBool( 'wpFilterHidden' );
|
||||
global $wgAbuseFilterIsCentral;
|
||||
$row->af_global = $wgRequest->getBool( 'wpFilterGlobal' ) && $wgAbuseFilterIsCentral;
|
||||
|
||||
// Actions
|
||||
global $wgAbuseFilterAvailableActions;
|
||||
|
|
|
@ -153,7 +153,9 @@ class AbuseFilterPager extends TablePager {
|
|||
'tables' => array('abuse_filter', 'abuse_filter_action'),
|
||||
'fields' => array(
|
||||
'af_id',
|
||||
'(af_enabled | af_deleted << 1) AS status',
|
||||
'af_enabled',
|
||||
'af_deleted',
|
||||
'af_global',
|
||||
'af_public_comments',
|
||||
'af_hidden',
|
||||
'af_hit_count',
|
||||
|
@ -220,12 +222,19 @@ class AbuseFilterPager extends TablePager {
|
|||
}
|
||||
return htmlspecialchars( implode( ', ', $displayActions ) );
|
||||
case 'status':
|
||||
if ($value & 2)
|
||||
return wfMsgExt( 'abusefilter-deleted', 'parseinline' );
|
||||
elseif ($value & 1)
|
||||
return wfMsgExt( 'abusefilter-enabled', 'parseinline' );
|
||||
$statuses = array();
|
||||
if ($row->af_deleted)
|
||||
$statuses[] = wfMsgExt( 'abusefilter-deleted', 'parseinline' );
|
||||
elseif ($row->af_enabled)
|
||||
$statuses[] = wfMsgExt( 'abusefilter-enabled', 'parseinline' );
|
||||
else
|
||||
return wfMsgExt( 'abusefilter-disabled', 'parseinline' );
|
||||
$statuses[] = wfMsgExt( 'abusefilter-disabled', 'parseinline' );
|
||||
|
||||
global $wgAbuseFilterIsCentral;
|
||||
if ($row->af_global && $wgAbuseFilterIsCentral)
|
||||
$statuses[] = wfMsgExt( 'abusefilter-status-global', 'parseinline' );
|
||||
|
||||
return $wgLang->semicolonList( $statuses );
|
||||
case 'af_hidden':
|
||||
$msg = $value ? 'abusefilter-hidden' : 'abusefilter-unhidden';
|
||||
return wfMsgExt( $msg, 'parseinline' );
|
||||
|
|
Loading…
Reference in a new issue