mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter.git
synced 2024-11-12 08:49:28 +00:00
8a54e6ba00
-- Introduce tagging of individual changes (revisions, logs, and on recentchanges). The tags are customisable, and currently settable by the Abuse Filter and by the TorBlock extension. The tags can be styled on the various pages on which they appear. -- Introduces a schema change, three new tables (valid_tag, change_tag, and tag_summary).
90 lines
4 KiB
PHP
90 lines
4 KiB
PHP
<?php
|
|
if ( ! defined( 'MEDIAWIKI' ) )
|
|
die();
|
|
|
|
/**#@+
|
|
* Automatically applies heuristics to edits.
|
|
* @addtogroup Extensions
|
|
*
|
|
* @link http://www.mediawiki.org/wiki/Extension:AbuseFilter Documentation
|
|
*
|
|
*
|
|
* @author Andrew Garrett <andrew@epstone.net>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
|
|
*/
|
|
|
|
$dir = dirname(__FILE__);
|
|
$wgExtensionCredits['other'][] = array(
|
|
'name' => 'Abuse Filter',
|
|
'author' => array('Andrew Garrett','River Tarnell'),
|
|
'svn-date' => '$LastChangedDate: 2008-06-08 20:48:19 +1000 (Sun, 08 Jun 2008) $',
|
|
'svn-revision' => '$LastChangedRevision: 36018 $',
|
|
'description' => 'Applies automatic heuristics to edits.',
|
|
'descriptionmsg' => 'abusefilter-desc',
|
|
'url' => 'http://www.mediawiki.org/wiki/Extension:AbuseFilter',
|
|
);
|
|
|
|
$wgExtensionMessagesFiles['AbuseFilter'] = "$dir/AbuseFilter.i18n.php";
|
|
$wgExtensionAliasesFiles['AbuseFilter'] = "$dir/AbuseFilter.alias.php";
|
|
|
|
$wgAutoloadClasses['AbuseFilter'] = "$dir/AbuseFilter.class.php";
|
|
$wgAutoloadClasses['AbuseFilterParser'] = "$dir/AbuseFilter.parser.php";
|
|
$wgAutoloadClasses['AbuseFilterHooks'] = "$dir/AbuseFilter.hooks.php";
|
|
$wgAutoloadClasses['SpecialAbuseLog'] = "$dir/SpecialAbuseLog.php";
|
|
$wgAutoloadClasses['SpecialAbuseFilter'] = "$dir/SpecialAbuseFilter.php";
|
|
|
|
$wgAutoloadClasses['AbuseFilterViewList'] = "$dir/Views/AbuseFilterViewList.php";
|
|
$wgAutoloadClasses['AbuseFilterView'] = "$dir/Views/AbuseFilterView.php";
|
|
$wgAutoloadClasses['AbuseFilterViewEdit'] = "$dir/Views/AbuseFilterViewEdit.php";
|
|
$wgAutoloadClasses['AbuseFilterViewTools'] = "$dir/Views/AbuseFilterViewTools.php";
|
|
$wgAutoloadClasses['AbuseFilterViewHistory'] = "$dir/Views/AbuseFilterViewHistory.php";
|
|
$wgAutoloadClasses['AbuseFilterViewRevert'] = "$dir/Views/AbuseFilterViewRevert.php";
|
|
|
|
$wgSpecialPages['AbuseLog'] = 'SpecialAbuseLog';
|
|
$wgSpecialPages['AbuseFilter'] = 'SpecialAbuseFilter';
|
|
$wgSpecialPageGroups['AbuseLog'] = 'changes';
|
|
$wgSpecialPageGroups['AbuseFilter'] = 'wiki';
|
|
|
|
$wgHooks['EditFilter'][] = 'AbuseFilterHooks::onEditFilter';
|
|
$wgHooks['GetAutoPromoteGroups'][] = 'AbuseFilterHooks::onGetAutoPromoteGroups';
|
|
$wgHooks['AbortMove'][] = 'AbuseFilterHooks::onAbortMove';
|
|
$wgHooks['AbortNewAccount'][] = 'AbuseFilterHooks::onAbortNewAccount';
|
|
$wgHooks['ArticleDelete'][] = 'AbuseFilterHooks::onArticleDelete';
|
|
$wgHooks['LoadExtensionSchemaUpdates'][] = 'AbuseFilterHooks::onSchemaUpdate';
|
|
$wgHooks['AbortDeleteQueueNominate'][] = 'AbuseFilterHooks::onAbortDeleteQueueNominate';
|
|
$wgHooks['RecentChange_save'][] = 'AbuseFilterHooks::onRecentChangeSave';
|
|
$wgHooks['ListDefinedTags'][] = 'AbuseFilterHooks::onListDefinedTags';
|
|
|
|
$wgAvailableRights[] = 'abusefilter-modify';
|
|
$wgAvailableRights[] = 'abusefilter-log-detail';
|
|
$wgAvailableRights[] = 'abusefilter-view';
|
|
$wgAvailableRights[] = 'abusefilter-log';
|
|
$wgAvailableRights[] = 'abusefilter-private';
|
|
$wgAvailableRights[] = 'abusefilter-modify-restricted';
|
|
$wgAvailableRights[] = 'abusefilter-revert';
|
|
|
|
$wgAbuseFilterAvailableActions = array( 'flag', 'throttle', 'warn', 'disallow', 'blockautopromote', 'block', 'degroup', 'tag' );
|
|
|
|
$wgAbuseFilterConditionLimit = 1000;
|
|
|
|
// Disable filters if they match more than X edits, constituting more than Y% of the last Z edits, if they have been changed in the last S seconds
|
|
$wgAbuseFilterEmergencyDisableThreshold = 0.05;
|
|
$wgAbuseFilterEmergencyDisableCount = 2;
|
|
$wgAbuseFilterEmergencyDisableAge = 86400; // One day.
|
|
|
|
// Abuse filter parser class
|
|
$wgAbuseFilterParserClass = 'AbuseFilterParser';
|
|
$wgAbuseFilterNativeParser = "$dir/parser_native/af_parser";
|
|
$wgAbuseFilterNativeSyntaxCheck = "$dir/parser_native/syntax_check";
|
|
$wgAbuseFilterNativeExpressionEvaluator = "$dir/parser_native/af_expr";
|
|
|
|
$wgAjaxExportList[] = 'AbuseFilter::ajaxCheckSyntax';
|
|
$wgAjaxExportList[] = 'AbuseFilter::ajaxEvaluateExpression';
|
|
$wgAjaxExportList[] = 'AbuseFilter::ajaxReAutoconfirm';
|
|
|
|
// Bump the version number every time you change any of the .css/.js files
|
|
$wgAbuseFilterStyleVersion = 2;
|
|
|
|
$wgAbuseFilterRestrictedActions = array( 'block', 'degroup' );
|
|
|