From e99771b88469564a89a7868518f3ed4e544c6537 Mon Sep 17 00:00:00 2001 From: Roan Kattouw Date: Mon, 15 Feb 2010 20:20:00 +0000 Subject: [PATCH] API: Optimize read rights check in opensearch so $wgUser doesn't get unstubbed if $wgGroupPermissions['*']['read'] is true --- includes/api/ApiOpenSearch.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/includes/api/ApiOpenSearch.php b/includes/api/ApiOpenSearch.php index 567f36bc0f..e11d7e65bb 100644 --- a/includes/api/ApiOpenSearch.php +++ b/includes/api/ApiOpenSearch.php @@ -42,15 +42,15 @@ class ApiOpenSearch extends ApiBase { } public function execute() { - global $wgEnableOpenSearchSuggest, $wgSearchSuggestCacheExpiry; + global $wgEnableOpenSearchSuggest, $wgSearchSuggestCacheExpiry, $wgGroupPermissions, $wgUser; $params = $this->extractRequestParams(); $search = $params['search']; $limit = $params['limit']; $namespaces = $params['namespace']; $suggest = $params['suggest']; - // MWSuggest or similar hit - if ( $suggest && !$wgEnableOpenSearchSuggest ) + // MWSuggest or similar hit, or hit without read rights + if ( ( $suggest && !$wgEnableOpenSearchSuggest ) || ( !$wgGroupPermissions['*']['read'] && !$wgUser->isAllowed( 'read' ) ) ) $srchres = array(); else { // Open search results may be stored for a very long @@ -108,4 +108,8 @@ class ApiOpenSearch extends ApiBase { public function getVersion() { return __CLASS__ . ': $Id$'; } + + public function isReadMode() { + return false; + } } -- 2.20.1