X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryStashImageInfo.php;h=1924ca0339a86092329fb0a2e05b29274e12d73b;hb=78418f5728259c024ac3b2016e1edd0ab794c9c0;hp=0a759616f5b4311796570646d10538c1ddce36a5;hpb=5ad8f11baf52c1dbfbc19371647be775e0db6e74;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryStashImageInfo.php b/includes/api/ApiQueryStashImageInfo.php index 0a759616f5..1924ca0339 100644 --- a/includes/api/ApiQueryStashImageInfo.php +++ b/includes/api/ApiQueryStashImageInfo.php @@ -32,6 +32,10 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo { } public function execute() { + if ( !$this->getUser()->isLoggedIn() ) { + $this->dieWithError( 'apierror-mustbeloggedin-uploadstash', 'notloggedin' ); + } + $params = $this->extractRequestParams(); $modulePrefix = $this->getModulePrefix(); @@ -41,13 +45,10 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo { $result = $this->getResult(); - if ( !$params['filekey'] && !$params['sessionkey'] ) { - $this->dieUsage( "One of filekey or sessionkey must be supplied", 'nofilekey' ); - } + $this->requireAtLeastOneParameter( $params, 'filekey', 'sessionkey' ); // Alias sessionkey to filekey, but give an existing filekey precedence. if ( !$params['filekey'] && $params['sessionkey'] ) { - $this->logFeatureUsage( 'prop=stashimageinfo&siisessionkey' ); $params['filekey'] = $params['sessionkey']; } @@ -58,70 +59,70 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo { $file = $stash->getFile( $filekey ); $finalThumbParam = $this->mergeThumbParams( $file, $scale, $params['urlparam'] ); $imageInfo = ApiQueryImageInfo::getInfo( $file, $prop, $result, $finalThumbParam ); - $result->addValue( array( 'query', $this->getModuleName() ), null, $imageInfo ); - $result->addIndexedTagName( array( 'query', $this->getModuleName() ), $modulePrefix ); + $result->addValue( [ 'query', $this->getModuleName() ], null, $imageInfo ); + $result->addIndexedTagName( [ 'query', $this->getModuleName() ], $modulePrefix ); } // @todo Update exception handling here to understand current getFile exceptions } catch ( UploadStashFileNotFoundException $e ) { - $this->dieUsage( "File not found: " . $e->getMessage(), "invalidsessiondata" ); + $this->dieWithException( $e, [ 'wrap' => 'apierror-stashedfilenotfound' ] ); } catch ( UploadStashBadPathException $e ) { - $this->dieUsage( "Bad path: " . $e->getMessage(), "invalidsessiondata" ); + $this->dieWithException( $e, [ 'wrap' => 'apierror-stashpathinvalid' ] ); } } - private $propertyFilter = array( + private $propertyFilter = [ 'user', 'userid', 'comment', 'parsedcomment', 'mediatype', 'archivename', 'uploadwarning', - ); + ]; public function getAllowedParams() { - return array( - 'filekey' => array( + return [ + 'filekey' => [ ApiBase::PARAM_ISMULTI => true, - ), - 'sessionkey' => array( + ], + 'sessionkey' => [ ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_DEPRECATED => true, - ), - 'prop' => array( + ], + 'prop' => [ ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_DFLT => 'timestamp|url', ApiBase::PARAM_TYPE => self::getPropertyNames( $this->propertyFilter ), ApiBase::PARAM_HELP_MSG => 'apihelp-query+imageinfo-param-prop', ApiBase::PARAM_HELP_MSG_PER_VALUE => self::getPropertyMessages( $this->propertyFilter ) - ), - 'urlwidth' => array( + ], + 'urlwidth' => [ ApiBase::PARAM_TYPE => 'integer', ApiBase::PARAM_DFLT => -1, - ApiBase::PARAM_HELP_MSG => array( + ApiBase::PARAM_HELP_MSG => [ 'apihelp-query+imageinfo-param-urlwidth', ApiQueryImageInfo::TRANSFORM_LIMIT, - ), - ), - 'urlheight' => array( + ], + ], + 'urlheight' => [ ApiBase::PARAM_TYPE => 'integer', ApiBase::PARAM_DFLT => -1, ApiBase::PARAM_HELP_MSG => 'apihelp-query+imageinfo-param-urlheight', - ), - 'urlparam' => array( + ], + 'urlparam' => [ ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_DFLT => '', ApiBase::PARAM_HELP_MSG => 'apihelp-query+imageinfo-param-urlparam', - ), - ); + ], + ]; } protected function getExamplesMessages() { - return array( + return [ 'action=query&prop=stashimageinfo&siifilekey=124sd34rsdf567' => 'apihelp-query+stashimageinfo-example-simple', 'action=query&prop=stashimageinfo&siifilekey=b34edoe3|bceffd4&' . 'siiurlwidth=120&siiprop=url' => 'apihelp-query+stashimageinfo-example-params', - ); + ]; } public function getHelpUrls() { - return 'https://www.mediawiki.org/wiki/API:Stashimageinfo'; + return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Stashimageinfo'; } }