From: Kunal Mehta Date: Tue, 16 Feb 2016 23:28:22 +0000 (-0800) Subject: Don't show patrol links if RCP/NPP are disabled, but file patrol isn't X-Git-Tag: 1.31.0-rc.0~7931^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/supprimer.php?a=commitdiff_plain;h=bcd1244f532ae520316140a0ea13f98ed2e9c2f0;p=lhc%2Fweb%2Fwiklou.git 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 --- 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(), [], [