diff options
Diffstat (limited to 'includes/api/ApiQueryFileRepoInfo.php')
-rw-r--r-- | includes/api/ApiQueryFileRepoInfo.php | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/includes/api/ApiQueryFileRepoInfo.php b/includes/api/ApiQueryFileRepoInfo.php index 9ad7e27e..12b9893d 100644 --- a/includes/api/ApiQueryFileRepoInfo.php +++ b/includes/api/ApiQueryFileRepoInfo.php @@ -41,18 +41,26 @@ class ApiQueryFileRepoInfo extends ApiQueryBase { } public function execute() { + $conf = $this->getConfig(); + $params = $this->extractRequestParams(); $props = array_flip( $params['prop'] ); $repos = array(); $repoGroup = $this->getInitialisedRepoGroup(); + $foreignTargets = $conf->get( 'ForeignUploadTargets' ); + + $repoGroup->forEachForeignRepo( function ( $repo ) use ( &$repos, $props, $foreignTargets ) { + $repoProps = $repo->getInfo(); + $repoProps['canUpload'] = in_array( $repoProps['name'], $foreignTargets ); - $repoGroup->forEachForeignRepo( function ( $repo ) use ( &$repos, $props ) { - $repos[] = array_intersect_key( $repo->getInfo(), $props ); + $repos[] = array_intersect_key( $repoProps, $props ); } ); - $repos[] = array_intersect_key( $repoGroup->getLocalRepo()->getInfo(), $props ); + $localInfo = $repoGroup->getLocalRepo()->getInfo(); + $localInfo['canUpload'] = $conf->get( 'EnableUploads' ); + $repos[] = array_intersect_key( $localInfo, $props ); $result = $this->getResult(); ApiResult::setIndexedTagName( $repos, 'repo' ); @@ -85,10 +93,14 @@ class ApiQueryFileRepoInfo extends ApiQueryBase { $props = array_merge( $props, array_keys( $repo->getInfo() ) ); } ); - return array_values( array_unique( array_merge( + $propValues = array_values( array_unique( array_merge( $props, array_keys( $repoGroup->getLocalRepo()->getInfo() ) ) ) ); + + $propValues[] = 'canUpload'; + + return $propValues; } protected function getExamplesMessages() { @@ -97,4 +109,8 @@ class ApiQueryFileRepoInfo extends ApiQueryBase { => 'apihelp-query+filerepoinfo-example-simple', ); } + + public function getHelpUrls() { + return 'https://www.mediawiki.org/wiki/API:Filerepoinfo'; + } } |