MaxSem has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/340452 )

Change subject: Get rid of global state
......................................................................

Get rid of global state

Yeah, Article class is still scary, however at least it passes
proper context around.

Bug: T159299
Change-Id: I0204a9948f5124d7acd2c417db4a1d6b84dce835
---
M PageTriage.hooks.php
1 file changed, 18 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PageTriage 
refs/changes/52/340452/1

diff --git a/PageTriage.hooks.php b/PageTriage.hooks.php
index 42cab6d..bddf2d3 100644
--- a/PageTriage.hooks.php
+++ b/PageTriage.hooks.php
@@ -32,9 +32,8 @@
                        return true;
                }
 
-               global $wgUser;
                // New record to pagetriage queue, compile metadata
-               if ( self::addToPageTriageQueue( $pageId, $newTitle, $wgUser ) 
) {
+               if ( self::addToPageTriageQueue( $pageId, $newTitle, 
$movePage->getUser() ) ) {
                        $acp = ArticleCompileProcessor::newFromPageId( [ 
$pageId ] );
                        if ( $acp ) {
                                // safe to use slave db for data compilation 
for the
@@ -371,16 +370,20 @@
         * @return bool
         */
        public static function onArticleViewFooter( $article, 
$patrolFooterShown ) {
-               global $wgUser, $wgPageTriageMarkPatrolledLinkExpiry, $wgOut,
-                       $wgPageTriageEnableCurationToolbar, $wgRequest, 
$wgPageTriageNamespaces;
+               global $wgPageTriageMarkPatrolledLinkExpiry,
+                       $wgPageTriageEnableCurationToolbar, 
$wgPageTriageNamespaces;
+
+               $user = $article->getContext()->getUser();
+               $outputPage = $article->getContext()->getOutput();
+               $request = $article->getContext()->getOutput();
 
                // Overwrite the noindex rule defined in Article::view(), this 
also affects main namespace
                if ( self::shouldShowNoIndex( $article ) ) {
-                       $wgOut->setRobotPolicy( 'noindex,nofollow' );
+                       $outputPage->setRobotPolicy( 'noindex,nofollow' );
                }
 
                // Only logged in users can review
-               if ( !$wgUser->isLoggedIn() ) {
+               if ( !$user->isLoggedIn() ) {
                        return true;
                }
 
@@ -395,13 +398,13 @@
                }
 
                // Don't do anything if it's coming from Special:NewPages
-               if ( $wgRequest->getVal( 'patrolpage' ) ) {
+               if ( $request->getVal( 'patrolpage' ) ) {
                        return true;
                }
 
                // If the user hasn't visited Special:NewPagesFeed lately, 
don't do anything
                $lastUseExpired = false;
-               $lastUse = $wgUser->getOption( 'pagetriage-lastuse' );
+               $lastUse = $user->getOption( 'pagetriage-lastuse' );
                if ( $lastUse ) {
                        $lastUse = wfTimestamp( TS_UNIX, $lastUse );
                        $now = wfTimestamp( TS_UNIX, wfTimestampNow() );
@@ -416,19 +419,19 @@
                // Also, users without the autopatrol right can't review their 
own pages
                $needsReview = PageTriageUtil::doesPageNeedTriage( $article );
                if ( !is_null( $needsReview )
-                       && !( $wgUser->getId() == 
$article->getOldestRevision()->getUser()
-                               && !$wgUser->isAllowed( 'autopatrol' )
+                       && !( $user->getId() == 
$article->getOldestRevision()->getUser()
+                               && !$user->isAllowed( 'autopatrol' )
                        )
                ) {
-                       if ( $wgPageTriageEnableCurationToolbar || 
$wgRequest->getVal( 'curationtoolbar' ) === 'true' ) {
+                       if ( $wgPageTriageEnableCurationToolbar || 
$request->getVal( 'curationtoolbar' ) === 'true' ) {
                                // Load the JavaScript for the curation toolbar
-                               $wgOut->addModules( 
'ext.pageTriage.toolbarStartup' );
+                               $outputPage->addModules( 
'ext.pageTriage.toolbarStartup' );
                                // Set the config flags in JavaScript
                                $globalVars = [
                                        'wgPageTriagelastUseExpired' => 
$lastUseExpired,
                                        'wgPageTriagePagePrefixedText' => 
$article->getTitle()->getPrefixedText()
                                ];
-                               $wgOut->addJsConfigVars( $globalVars );
+                               $outputPage->addJsConfigVars( $globalVars );
                        } else {
                                if ( $needsReview ) {
                                        // show 'Mark as reviewed' link
@@ -442,9 +445,9 @@
                                        // show 'Reviewed' text
                                        $msg = wfMessage( 'pagetriage-reviewed' 
)->escaped();
                                }
-                               $wgOut->addModules( [ 'ext.pageTriage.article' 
] );
+                               $outputPage->addModules( [ 
'ext.pageTriage.article' ] );
                                $html = Html::rawElement( 'div', [ 'class' => 
'mw-pagetriage-markpatrolled' ], $msg );
-                               $wgOut->addHTML( $html );
+                               $outputPage->addHTML( $html );
                        }
                }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/340452
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0204a9948f5124d7acd2c417db4a1d6b84dce835
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PageTriage
Gerrit-Branch: master
Gerrit-Owner: MaxSem <maxsem.w...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to