Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 35 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
GlobalAbuseFilterPager | |
0.00% |
0 / 35 |
|
0.00% |
0 / 2 |
182 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
formatValue | |
0.00% |
0 / 33 |
|
0.00% |
0 / 1 |
156 |
1 | <?php |
2 | |
3 | namespace MediaWiki\Extension\AbuseFilter\Pager; |
4 | |
5 | use MediaWiki\Extension\AbuseFilter\AbuseFilterPermissionManager; |
6 | use MediaWiki\Extension\AbuseFilter\CentralDBManager; |
7 | use MediaWiki\Extension\AbuseFilter\SpecsFormatter; |
8 | use MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewList; |
9 | use MediaWiki\Linker\LinkRenderer; |
10 | |
11 | /** |
12 | * Class to build paginated filter list for wikis using global abuse filters |
13 | */ |
14 | class GlobalAbuseFilterPager extends AbuseFilterPager { |
15 | |
16 | /** |
17 | * @param AbuseFilterViewList $page |
18 | * @param LinkRenderer $linkRenderer |
19 | * @param AbuseFilterPermissionManager $afPermManager |
20 | * @param SpecsFormatter $specsFormatter |
21 | * @param CentralDBManager $centralDBManager |
22 | * @param array $conds |
23 | */ |
24 | public function __construct( |
25 | AbuseFilterViewList $page, |
26 | LinkRenderer $linkRenderer, |
27 | AbuseFilterPermissionManager $afPermManager, |
28 | SpecsFormatter $specsFormatter, |
29 | CentralDBManager $centralDBManager, |
30 | array $conds |
31 | ) { |
32 | // Set database before parent constructor to avoid setting it there |
33 | $this->mDb = $centralDBManager->getConnection( DB_REPLICA ); |
34 | parent::__construct( $page, $linkRenderer, null, $afPermManager, $specsFormatter, $conds, null, null ); |
35 | } |
36 | |
37 | /** |
38 | * @param string $name |
39 | * @param string|null $value |
40 | * @return string |
41 | */ |
42 | public function formatValue( $name, $value ) { |
43 | $lang = $this->getLanguage(); |
44 | $row = $this->mCurrentRow; |
45 | |
46 | switch ( $name ) { |
47 | case 'af_id': |
48 | return $lang->formatNum( intval( $value ) ); |
49 | case 'af_public_comments': |
50 | return $this->getOutput()->parseInlineAsInterface( $value ); |
51 | case 'af_enabled': |
52 | $statuses = []; |
53 | if ( $row->af_deleted ) { |
54 | $statuses[] = $this->msg( 'abusefilter-deleted' )->parse(); |
55 | } elseif ( $row->af_enabled ) { |
56 | $statuses[] = $this->msg( 'abusefilter-enabled' )->parse(); |
57 | } else { |
58 | $statuses[] = $this->msg( 'abusefilter-disabled' )->parse(); |
59 | } |
60 | if ( $row->af_global ) { |
61 | $statuses[] = $this->msg( 'abusefilter-status-global' )->parse(); |
62 | } |
63 | |
64 | return $lang->commaList( $statuses ); |
65 | case 'af_hit_count': |
66 | // If the rule is hidden, don't show it, even to privileged local admins |
67 | if ( $row->af_hidden ) { |
68 | return ''; |
69 | } |
70 | return $this->msg( 'abusefilter-hitcount' )->numParams( $value )->parse(); |
71 | case 'af_timestamp': |
72 | $user = $this->getUser(); |
73 | return $this->msg( |
74 | 'abusefilter-edit-lastmod-text', |
75 | $lang->userTimeAndDate( $value, $user ), |
76 | $row->af_user_text, |
77 | $lang->userDate( $value, $user ), |
78 | $lang->userTime( $value, $user ), |
79 | $row->af_user_text |
80 | )->parse(); |
81 | case 'af_group': |
82 | // If this is global, local name probably doesn't exist, but try |
83 | return $this->specsFormatter->nameGroup( $value ); |
84 | default: |
85 | return parent::formatValue( $name, $value ); |
86 | } |
87 | } |
88 | } |