1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
<?php
namespace MediaWiki\Extension\AbuseFilter\View;
use MediaWiki\Context\IContextSource;
use MediaWiki\Extension\AbuseFilter\AbuseFilterPermissionManager;
use MediaWiki\Extension\AbuseFilter\EditBox\EditBoxBuilderFactory;
use MediaWiki\Extension\AbuseFilter\EditBox\EditBoxField;
use MediaWiki\Html\Html;
use MediaWiki\HTMLForm\HTMLForm;
use MediaWiki\Linker\LinkRenderer;
class AbuseFilterViewTools extends AbuseFilterView {
/**
* @var EditBoxBuilderFactory
*/
private $boxBuilderFactory;
/**
* @param AbuseFilterPermissionManager $afPermManager
* @param EditBoxBuilderFactory $boxBuilderFactory
* @param IContextSource $context
* @param LinkRenderer $linkRenderer
* @param string $basePageName
* @param array $params
*/
public function __construct(
AbuseFilterPermissionManager $afPermManager,
EditBoxBuilderFactory $boxBuilderFactory,
IContextSource $context,
LinkRenderer $linkRenderer,
string $basePageName,
array $params
) {
parent::__construct( $afPermManager, $context, $linkRenderer, $basePageName, $params );
$this->boxBuilderFactory = $boxBuilderFactory;
}
/**
* Shows the page
*/
public function show() {
$out = $this->getOutput();
$out->enableOOUI();
$out->addHelpLink( 'Extension:AbuseFilter/Rules format' );
$request = $this->getRequest();
if ( !$this->afPermManager->canUseTestTools( $this->getAuthority() ) ) {
// TODO: the message still refers to the old rights
$out->addWikiMsg( 'abusefilter-mustviewprivateoredit' );
return;
}
// Header
$out->addWikiMsg( 'abusefilter-tools-text' );
$boxBuilder = $this->boxBuilderFactory->newEditBoxBuilder( $this, $this->getAuthority(), $out );
// Expression evaluator
$formDesc = [
'rules' => [
'class' => EditBoxField::class,
'html' => $boxBuilder->buildEditBox(
$request->getText( 'wpFilterRules' ),
true,
false,
false
)
]
];
HTMLForm::factory( 'ooui', $formDesc, $this->getContext() )
->setMethod( 'GET' )
->setWrapperLegendMsg( 'abusefilter-tools-expr' )
->setSubmitTextMsg( 'abusefilter-tools-submitexpr' )
->setSubmitID( 'mw-abusefilter-submitexpr' )
->setFooterHtml( Html::element( 'pre', [ 'id' => 'mw-abusefilter-expr-result' ], ' ' ) )
->prepareForm()
->displayForm( false );
$out->addModules( 'ext.abuseFilter.tools' );
if ( $this->afPermManager->canEdit( $this->getAuthority() ) ) {
// Hacky little box to re-enable autoconfirmed if it got disabled
$formDescriptor = [
'RestoreAutoconfirmed' => [
'label-message' => 'abusefilter-tools-reautoconfirm-user',
'type' => 'user',
'name' => 'wpReAutoconfirmUser',
'id' => 'reautoconfirm-user',
'infusable' => true
],
];
$htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() );
$htmlForm->setWrapperLegendMsg( 'abusefilter-tools-reautoconfirm' )
->setSubmitTextMsg( 'abusefilter-tools-reautoconfirm-submit' )
->setSubmitName( 'wpReautoconfirmSubmit' )
->setSubmitID( 'mw-abusefilter-reautoconfirmsubmit' )
->prepareForm()
->displayForm( false );
}
}
}
|