Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
59 / 59 |
|
100.00% |
15 / 15 |
CRAP | |
100.00% |
1 / 1 |
AbuseFilterHookRunner | |
100.00% |
59 / 59 |
|
100.00% |
15 / 15 |
15 | |
100.00% |
1 / 1 |
__construct | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_builder | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_deprecatedVariables | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_computeVariable | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_contentToString | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_filterAction | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilterAlterVariables | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_generateTitleVars | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_generateUserVars | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_generateGenericVars | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilterGenerateVarsForRecentChange | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilter_interceptVariable | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilterShouldFilterAction | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilterGetDangerousActions | |
100.00% |
5 / 5 |
|
100.00% |
1 / 1 |
1 | |||
onAbuseFilterCustomActions | |
100.00% |
5 / 5 |
|
100.00% |
1 / 1 |
1 |
1 | <?php |
2 | |
3 | namespace MediaWiki\Extension\AbuseFilter\Hooks; |
4 | |
5 | use Content; |
6 | use MediaWiki\Extension\AbuseFilter\VariableGenerator\RCVariableGenerator; |
7 | use MediaWiki\Extension\AbuseFilter\Variables\VariableHolder; |
8 | use MediaWiki\HookContainer\HookContainer; |
9 | use MediaWiki\Title\Title; |
10 | use MediaWiki\User\User; |
11 | use RecentChange; |
12 | |
13 | /** |
14 | * Handle running AbuseFilter's hooks |
15 | * @author DannyS712 |
16 | */ |
17 | class AbuseFilterHookRunner implements |
18 | AbuseFilterAlterVariablesHook, |
19 | AbuseFilterBuilderHook, |
20 | AbuseFilterComputeVariableHook, |
21 | AbuseFilterContentToStringHook, |
22 | AbuseFilterCustomActionsHook, |
23 | AbuseFilterDeprecatedVariablesHook, |
24 | AbuseFilterFilterActionHook, |
25 | AbuseFilterGenerateGenericVarsHook, |
26 | AbuseFilterGenerateTitleVarsHook, |
27 | AbuseFilterGenerateUserVarsHook, |
28 | AbuseFilterGenerateVarsForRecentChangeHook, |
29 | AbuseFilterInterceptVariableHook, |
30 | AbuseFilterShouldFilterActionHook, |
31 | AbuseFilterGetDangerousActionsHook |
32 | { |
33 | public const SERVICE_NAME = 'AbuseFilterHookRunner'; |
34 | |
35 | /** @var HookContainer */ |
36 | private $hookContainer; |
37 | |
38 | /** |
39 | * @param HookContainer $hookContainer |
40 | */ |
41 | public function __construct( HookContainer $hookContainer ) { |
42 | $this->hookContainer = $hookContainer; |
43 | } |
44 | |
45 | /** |
46 | * @inheritDoc |
47 | */ |
48 | public function onAbuseFilter_builder( array &$realValues ) { |
49 | return $this->hookContainer->run( |
50 | 'AbuseFilter-builder', |
51 | [ &$realValues ] |
52 | ); |
53 | } |
54 | |
55 | /** |
56 | * @inheritDoc |
57 | */ |
58 | public function onAbuseFilter_deprecatedVariables( array &$deprecatedVariables ) { |
59 | return $this->hookContainer->run( |
60 | 'AbuseFilter-deprecatedVariables', |
61 | [ &$deprecatedVariables ] |
62 | ); |
63 | } |
64 | |
65 | /** |
66 | * @inheritDoc |
67 | */ |
68 | public function onAbuseFilter_computeVariable( |
69 | string $method, |
70 | VariableHolder $vars, |
71 | array $parameters, |
72 | ?string &$result |
73 | ) { |
74 | return $this->hookContainer->run( |
75 | 'AbuseFilter-computeVariable', |
76 | [ $method, $vars, $parameters, &$result ] |
77 | ); |
78 | } |
79 | |
80 | /** |
81 | * @inheritDoc |
82 | */ |
83 | public function onAbuseFilter_contentToString( |
84 | Content $content, |
85 | ?string &$text |
86 | ) { |
87 | return $this->hookContainer->run( |
88 | 'AbuseFilter-contentToString', |
89 | [ $content, &$text ] |
90 | ); |
91 | } |
92 | |
93 | /** |
94 | * @inheritDoc |
95 | */ |
96 | public function onAbuseFilter_filterAction( |
97 | VariableHolder &$vars, |
98 | Title $title |
99 | ) { |
100 | return $this->hookContainer->run( |
101 | 'AbuseFilter-filterAction', |
102 | [ &$vars, $title ] |
103 | ); |
104 | } |
105 | |
106 | /** |
107 | * @inheritDoc |
108 | */ |
109 | public function onAbuseFilterAlterVariables( |
110 | VariableHolder &$vars, |
111 | Title $title, |
112 | User $user |
113 | ) { |
114 | return $this->hookContainer->run( |
115 | 'AbuseFilterAlterVariables', |
116 | [ &$vars, $title, $user ] |
117 | ); |
118 | } |
119 | |
120 | /** |
121 | * @inheritDoc |
122 | */ |
123 | public function onAbuseFilter_generateTitleVars( |
124 | VariableHolder $vars, |
125 | Title $title, |
126 | string $prefix, |
127 | ?RecentChange $rc |
128 | ) { |
129 | return $this->hookContainer->run( |
130 | 'AbuseFilter-generateTitleVars', |
131 | [ $vars, $title, $prefix, $rc ] |
132 | ); |
133 | } |
134 | |
135 | /** |
136 | * @inheritDoc |
137 | */ |
138 | public function onAbuseFilter_generateUserVars( |
139 | VariableHolder $vars, |
140 | User $user, |
141 | ?RecentChange $rc |
142 | ) { |
143 | return $this->hookContainer->run( |
144 | 'AbuseFilter-generateUserVars', |
145 | [ $vars, $user, $rc ] |
146 | ); |
147 | } |
148 | |
149 | /** |
150 | * @inheritDoc |
151 | */ |
152 | public function onAbuseFilter_generateGenericVars( |
153 | VariableHolder $vars, |
154 | ?RecentChange $rc |
155 | ) { |
156 | return $this->hookContainer->run( |
157 | 'AbuseFilter-generateGenericVars', |
158 | [ $vars, $rc ] |
159 | ); |
160 | } |
161 | |
162 | /** |
163 | * @inheritDoc |
164 | */ |
165 | public function onAbuseFilterGenerateVarsForRecentChange( |
166 | RCVariableGenerator $generator, |
167 | RecentChange $rc, |
168 | VariableHolder $vars, |
169 | User $contextUser |
170 | ) { |
171 | return $this->hookContainer->run( |
172 | 'AbuseFilterGenerateVarsForRecentChange', |
173 | [ $generator, $rc, $vars, $contextUser ] |
174 | ); |
175 | } |
176 | |
177 | /** |
178 | * @inheritDoc |
179 | */ |
180 | public function onAbuseFilter_interceptVariable( |
181 | string $method, |
182 | VariableHolder $vars, |
183 | array $parameters, |
184 | &$result |
185 | ) { |
186 | return $this->hookContainer->run( |
187 | 'AbuseFilter-interceptVariable', |
188 | [ $method, $vars, $parameters, &$result ] |
189 | ); |
190 | } |
191 | |
192 | /** |
193 | * @inheritDoc |
194 | */ |
195 | public function onAbuseFilterShouldFilterAction( |
196 | VariableHolder $vars, |
197 | Title $title, |
198 | User $user, |
199 | array &$skipReasons |
200 | ) { |
201 | return $this->hookContainer->run( |
202 | 'AbuseFilterShouldFilterAction', |
203 | [ $vars, $title, $user, &$skipReasons ] |
204 | ); |
205 | } |
206 | |
207 | /** |
208 | * @inheritDoc |
209 | */ |
210 | public function onAbuseFilterGetDangerousActions( array &$actions ): void { |
211 | $this->hookContainer->run( |
212 | 'AbuseFilterGetDangerousActions', |
213 | [ &$actions ], |
214 | [ 'abortable' => false ] |
215 | ); |
216 | } |
217 | |
218 | /** |
219 | * @inheritDoc |
220 | */ |
221 | public function onAbuseFilterCustomActions( array &$actions ): void { |
222 | $this->hookContainer->run( |
223 | 'AbuseFilterCustomActions', |
224 | [ &$actions ], |
225 | [ 'abortable' => false ] |
226 | ); |
227 | } |
228 | } |