2008-06-27 06:18:51 +00:00
|
|
|
<?php
|
|
|
|
if ( ! defined( 'MEDIAWIKI' ) )
|
|
|
|
die();
|
|
|
|
|
|
|
|
class SpecialAbuseFilter extends SpecialPage {
|
|
|
|
|
|
|
|
var $mSkin;
|
|
|
|
|
|
|
|
function __construct() {
|
|
|
|
wfLoadExtensionMessages('AbuseFilter');
|
|
|
|
parent::__construct( 'AbuseFilter', 'abusefilter-view' );
|
|
|
|
}
|
|
|
|
|
|
|
|
function execute( $subpage ) {
|
2009-01-27 17:32:30 +00:00
|
|
|
global $wgUser, $wgOut, $wgRequest, $wgAbuseFilterStyleVersion, $wgScriptPath;
|
2009-01-15 19:04:36 +00:00
|
|
|
|
|
|
|
$wgOut->addExtensionStyle( "{$wgScriptPath}/extensions/AbuseFilter/abusefilter.css?{$wgAbuseFilterStyleVersion}" );
|
2009-01-23 19:23:19 +00:00
|
|
|
$view = 'AbuseFilterViewList';
|
2008-06-27 06:18:51 +00:00
|
|
|
|
|
|
|
$this->setHeaders();
|
|
|
|
|
|
|
|
$this->loadParameters( $subpage );
|
|
|
|
$wgOut->setPageTitle( wfMsg( 'abusefilter-management' ) );
|
2008-07-23 19:33:28 +00:00
|
|
|
$wgOut->setRobotPolicy( "noindex,nofollow" );
|
2008-06-27 06:18:51 +00:00
|
|
|
$wgOut->setArticleRelated( false );
|
|
|
|
$wgOut->enableClientCache( false );
|
2009-01-26 22:31:02 +00:00
|
|
|
|
2008-06-27 06:18:51 +00:00
|
|
|
// Are we allowed?
|
2008-09-05 14:27:18 +00:00
|
|
|
if ( !$wgUser->isAllowed( 'abusefilter-view' ) ) {
|
|
|
|
$this->displayRestrictionError();
|
2008-06-27 06:18:51 +00:00
|
|
|
return;
|
|
|
|
}
|
2009-01-23 19:23:19 +00:00
|
|
|
|
|
|
|
if ( $wgRequest->getVal( 'result' ) == 'success' ) {
|
|
|
|
$wgOut->setSubtitle( wfMsg( 'abusefilter-edit-done-subtitle' ) );
|
|
|
|
$wgOut->wrapWikiMsg( '<p class="success">$1</p>', array('abusefilter-edit-done', $wgRequest->getVal( 'changedfilter' ) ) );
|
|
|
|
}
|
2008-06-27 06:18:51 +00:00
|
|
|
|
|
|
|
$this->mSkin = $wgUser->getSkin();
|
2009-01-23 19:23:19 +00:00
|
|
|
$this->mHistoryID = null;
|
2008-06-27 06:18:51 +00:00
|
|
|
|
2008-10-21 15:14:30 +00:00
|
|
|
$params = array_filter( explode( '/', $subpage ) );
|
|
|
|
|
2008-07-17 13:40:45 +00:00
|
|
|
if ($subpage == 'tools') {
|
2009-01-23 19:23:19 +00:00
|
|
|
$view = 'AbuseFilterViewTools';
|
2008-07-17 13:40:45 +00:00
|
|
|
}
|
2009-01-28 00:10:35 +00:00
|
|
|
|
|
|
|
if ( count($params) == 2 && $params[0] == 'revert' && is_numeric( $params[1] ) ) {
|
|
|
|
$this->mFilter = $params[1];
|
|
|
|
$view = 'AbuseFilterViewRevert';
|
|
|
|
}
|
2009-01-28 23:54:41 +00:00
|
|
|
|
2009-01-30 19:19:03 +00:00
|
|
|
if ( count($params) && $params[0] == 'test' ) {
|
2009-01-29 22:44:31 +00:00
|
|
|
$view = 'AbuseFilterViewTestBatch';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( count($params) && $params[0] == 'examine' ) {
|
|
|
|
$view = 'AbuseFilterViewExamine';
|
2009-01-28 23:54:41 +00:00
|
|
|
}
|
2008-07-17 13:40:45 +00:00
|
|
|
|
2009-01-26 18:50:20 +00:00
|
|
|
if (!empty($params[0]) && ($params[0] == 'history' || $params[0] == 'log') ) {
|
2008-10-21 15:14:30 +00:00
|
|
|
if (count($params) == 1) {
|
2009-01-26 18:50:20 +00:00
|
|
|
$view = 'AbuseFilterViewHistory';
|
2008-10-21 15:14:30 +00:00
|
|
|
} elseif (count($params) == 2) {
|
|
|
|
## Second param is a filter ID
|
2009-01-23 19:23:19 +00:00
|
|
|
$view = 'AbuseFilterViewHistory';
|
|
|
|
$this->mFilter = $params[1];
|
2008-10-21 15:14:30 +00:00
|
|
|
} elseif (count($params) == 4 && $params[2] == 'item') {
|
2009-01-23 19:23:19 +00:00
|
|
|
$this->mFilter = $params[1];
|
|
|
|
$this->mHistoryID = $params[3];
|
|
|
|
$view = 'AbuseFilterViewEdit';
|
2008-08-03 14:04:26 +00:00
|
|
|
}
|
2008-06-27 06:18:51 +00:00
|
|
|
}
|
|
|
|
|
2009-01-23 19:23:19 +00:00
|
|
|
if ( is_numeric($subpage) || $subpage == 'new' ) {
|
|
|
|
$this->mFilter = $subpage;
|
|
|
|
$view = 'AbuseFilterViewEdit';
|
2008-08-04 14:27:48 +00:00
|
|
|
}
|
2008-06-27 09:26:54 +00:00
|
|
|
|
2009-01-23 19:23:19 +00:00
|
|
|
$v = new $view( $this, $params );
|
|
|
|
$v->show( );
|
2008-10-21 15:14:30 +00:00
|
|
|
}
|
|
|
|
|
2008-06-27 06:18:51 +00:00
|
|
|
function loadParameters( $subpage ) {
|
2008-06-27 09:26:54 +00:00
|
|
|
global $wgRequest;
|
2008-06-27 06:18:51 +00:00
|
|
|
|
|
|
|
$filter = $subpage;
|
|
|
|
|
2008-06-27 09:26:54 +00:00
|
|
|
if (!is_numeric($filter) && $filter != 'new') {
|
2008-06-27 06:18:51 +00:00
|
|
|
$filter = $wgRequest->getIntOrNull( 'wpFilter' );
|
|
|
|
}
|
|
|
|
$this->mFilter = $filter;
|
|
|
|
}
|
|
|
|
}
|