Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
RollbackCompleteHookHandler
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
20
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 onRollbackComplete
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace AutoModerator\Hooks;
4
5use AutoModerator\TalkPageMessageSender;
6use AutoModerator\Util;
7use MediaWiki\Config\Config;
8use MediaWiki\Logger\LoggerFactory;
9use MediaWiki\Page\Hook\RollbackCompleteHook;
10use MediaWiki\Page\WikiPage;
11use MediaWiki\Revision\RevisionRecord;
12use MediaWiki\User\UserGroupManager;
13use MediaWiki\User\UserIdentity;
14
15class RollbackCompleteHookHandler implements RollbackCompleteHook {
16    private Config $config;
17
18    private UserGroupManager $userGroupManager;
19
20    private Config $wikiConfig;
21
22    private TalkPageMessageSender $talkPageMessageSender;
23
24    /**
25     * @param Config $wikiConfig
26     * @param UserGroupManager $userGroupManager
27     * @param Config $config
28     * @param TalkPageMessageSender $talkPageMessageSender
29     */
30    public function __construct(
31        Config $wikiConfig,
32        UserGroupManager $userGroupManager,
33        Config $config,
34        TalkPageMessageSender $talkPageMessageSender
35    ) {
36        $this->wikiConfig = $wikiConfig;
37        $this->userGroupManager = $userGroupManager;
38        $this->config = $config;
39        $this->talkPageMessageSender = $talkPageMessageSender;
40    }
41
42    /**
43     * @param WikiPage $wikiPage
44     * @param UserIdentity $user
45     * @param RevisionRecord $revision
46     * @param RevisionRecord $current
47     */
48    public function onRollbackComplete( $wikiPage, $user, $revision, $current ) {
49        $autoModeratorUser = Util::getAutoModeratorUser( $this->config, $this->userGroupManager );
50        $revId = $current->getId();
51        $rollbackRevId = $wikiPage->getRevisionRecord()->getId();
52        if ( $autoModeratorUser->getId() === $user->getId() ) {
53            if ( $this->wikiConfig->get( 'AutoModeratorRevertTalkPageMessageEnabled' ) ) {
54                $this->talkPageMessageSender->insertAutoModeratorSendRevertTalkPageMsgJob(
55                        $wikiPage->getTitle(),
56                        $revId,
57                        $rollbackRevId,
58                        $autoModeratorUser,
59                        LoggerFactory::getInstance( 'AutoModerator' ) );
60            }
61        }
62    }
63}