Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
11 / 11 |
|
100.00% |
3 / 3 |
CRAP | |
100.00% |
1 / 1 |
MediaWikiPageUpdaterFactory | |
100.00% |
11 / 11 |
|
100.00% |
3 / 3 |
7 | |
100.00% |
1 / 1 |
__construct | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getPageUpdater | |
100.00% |
5 / 5 |
|
100.00% |
1 / 1 |
1 | |||
setPatrolStatus | |
100.00% |
5 / 5 |
|
100.00% |
1 / 1 |
5 |
1 | <?php |
2 | |
3 | declare( strict_types = 1 ); |
4 | |
5 | namespace EntitySchema\DataAccess; |
6 | |
7 | use MediaWiki\MediaWikiServices; |
8 | use MediaWiki\Storage\PageUpdater; |
9 | use MediaWiki\Title\Title; |
10 | use MediaWiki\User\User; |
11 | use RecentChange; |
12 | |
13 | /** |
14 | * @license GPL-2.0-or-later |
15 | */ |
16 | class MediaWikiPageUpdaterFactory { |
17 | |
18 | private User $user; |
19 | |
20 | public function __construct( User $user ) { |
21 | $this->user = $user; |
22 | } |
23 | |
24 | public function getPageUpdater( string $pageTitleString ): PageUpdater { |
25 | $title = Title::makeTitle( NS_ENTITYSCHEMA_JSON, $pageTitleString ); |
26 | $wikipage = MediaWikiServices::getInstance()->getWikiPageFactory()->newFromTitle( $title ); |
27 | $pageUpdater = $wikipage->newPageUpdater( $this->user ); |
28 | $this->setPatrolStatus( $pageUpdater, $title ); |
29 | |
30 | return $pageUpdater; |
31 | } |
32 | |
33 | private function setPatrolStatus( PageUpdater $pageUpdater, Title $title ): void { |
34 | global $wgUseNPPatrol, $wgUseRCPatrol; |
35 | $needsPatrol = $wgUseRCPatrol || ( $wgUseNPPatrol && !$title->exists() ); |
36 | $permissionsManager = MediaWikiServices::getInstance()->getPermissionManager(); |
37 | |
38 | if ( |
39 | $needsPatrol |
40 | && $permissionsManager->userCan( 'autopatrol', $this->user, $title ) |
41 | ) { |
42 | $pageUpdater->setRcPatrolStatus( RecentChange::PRC_AUTOPATROLLED ); |
43 | } |
44 | } |
45 | |
46 | } |