From bcd1244f532ae520316140a0ea13f98ed2e9c2f0 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Tue, 16 Feb 2016 15:28:22 -0800 Subject: [PATCH] Don't show patrol links if RCP/NPP are disabled, but file patrol isn't $wgUseFilePatrol only matters for pages in the File namespace, so limit it to that. Otherwise wikis with RC and NP patrol disabled will have patrol links show up, but always have the API request fail. Bug: T125288 Change-Id: Ia91f6ae7ed54627e3e722f41637b1d11626d9806 --- includes/page/Article.php | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/includes/page/Article.php b/includes/page/Article.php index 4e4b2d7e65..6ce8cc17cd 100644 --- a/includes/page/Article.php +++ b/includes/page/Article.php @@ -1065,10 +1065,12 @@ class Article implements Page { $outputPage = $this->getContext()->getOutput(); $user = $this->getContext()->getUser(); + $title = $this->getTitle(); $rc = false; - if ( !$this->getTitle()->quickUserCan( 'patrol', $user ) - || !( $wgUseRCPatrol || $wgUseNPPatrol || $wgUseFilePatrol ) + if ( !$title->quickUserCan( 'patrol', $user ) + || !( $wgUseRCPatrol || $wgUseNPPatrol + || ( $wgUseFilePatrol && $title->inNamespace( NS_FILE ) ) ) ) { // Patrolling is disabled or the user isn't allowed to return false; @@ -1083,7 +1085,7 @@ class Article implements Page { } // Check for cached results - $key = wfMemcKey( 'unpatrollable-page', $this->getTitle()->getArticleID() ); + $key = wfMemcKey( 'unpatrollable-page', $title->getArticleID() ); $cache = ObjectCache::getMainWANInstance(); if ( $cache->get( $key ) ) { return false; @@ -1093,7 +1095,7 @@ class Article implements Page { $oldestRevisionTimestamp = $dbr->selectField( 'revision', 'MIN( rev_timestamp )', - [ 'rev_page' => $this->getTitle()->getArticleID() ], + [ 'rev_page' => $title->getArticleID() ], __METHOD__ ); @@ -1112,8 +1114,8 @@ class Article implements Page { [ 'rc_new' => 1, 'rc_timestamp' => $oldestRevisionTimestamp, - 'rc_namespace' => $this->getTitle()->getNamespace(), - 'rc_cur_id' => $this->getTitle()->getArticleID() + 'rc_namespace' => $title->getNamespace(), + 'rc_cur_id' => $title->getArticleID() ], __METHOD__ ); @@ -1129,12 +1131,12 @@ class Article implements Page { // (with rc_type = RC_LOG, rc_log_type = upload). $recentFileUpload = false; if ( ( !$rc || $rc->getAttribute( 'rc_patrolled' ) ) && $wgUseFilePatrol - && $this->getTitle()->getNamespace() === NS_FILE ) { + && $title->getNamespace() === NS_FILE ) { // Retrieve timestamp of most recent upload $newestUploadTimestamp = $dbr->selectField( 'image', 'MAX( img_timestamp )', - [ 'img_name' => $this->getTitle()->getDBkey() ], + [ 'img_name' => $title->getDBkey() ], __METHOD__ ); if ( $newestUploadTimestamp @@ -1148,7 +1150,7 @@ class Article implements Page { 'rc_log_type' => 'upload', 'rc_timestamp' => $newestUploadTimestamp, 'rc_namespace' => NS_FILE, - 'rc_cur_id' => $this->getTitle()->getArticleID() + 'rc_cur_id' => $title->getArticleID() ], __METHOD__, [ 'USE INDEX' => 'rc_timestamp' ] @@ -1203,7 +1205,7 @@ class Article implements Page { } $link = Linker::linkKnown( - $this->getTitle(), + $title, $markPatrolledMsg->escaped(), [], [ -- 2.20.1