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