X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiFileRevert.php;h=736898edcfa7d587b2f9df595a87626f55bb65e9;hb=233900e99c9e52dc5dea33ba80f603a97618cf53;hp=a49397dc81f7d509b7c3e449b83a533ffe52a8d1;hpb=7b0df4e54913bcebb312279642e9bc19a6d366d5;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiFileRevert.php b/includes/api/ApiFileRevert.php index a49397dc81..736898edcf 100644 --- a/includes/api/ApiFileRevert.php +++ b/includes/api/ApiFileRevert.php @@ -45,7 +45,7 @@ class ApiFileRevert extends ApiBase { $this->validateParameters(); // Check whether we're allowed to revert this file - $this->checkPermissions( $this->getUser() ); + $this->checkTitleUserPermissions( $this->file->getTitle(), [ 'edit', 'upload' ] ); $sourceUrl = $this->file->getArchiveVirtualUrl( $this->archiveName ); $status = $this->file->upload( @@ -59,34 +59,17 @@ class ApiFileRevert extends ApiBase { ); if ( $status->isGood() ) { - $result = array( 'result' => 'Success' ); + $result = [ 'result' => 'Success' ]; } else { - $result = array( + $result = [ 'result' => 'Failure', 'errors' => $this->getErrorFormatter()->arrayFromStatus( $status ), - ); + ]; } $this->getResult()->addValue( null, $this->getModuleName(), $result ); } - /** - * Checks that the user has permissions to perform this revert. - * Dies with usage message on inadequate permissions. - * @param User $user The user to check. - */ - protected function checkPermissions( $user ) { - $title = $this->file->getTitle(); - $permissionErrors = array_merge( - $title->getUserPermissionsErrors( 'edit', $user ), - $title->getUserPermissionsErrors( 'upload', $user ) - ); - - if ( $permissionErrors ) { - $this->dieUsageMsg( $permissionErrors[0] ); - } - } - /** * Validate the user parameters and set $this->archiveName and $this->file. * Throws an error if validation fails @@ -95,21 +78,23 @@ class ApiFileRevert extends ApiBase { // Validate the input title $title = Title::makeTitleSafe( NS_FILE, $this->params['filename'] ); if ( is_null( $title ) ) { - $this->dieUsageMsg( array( 'invalidtitle', $this->params['filename'] ) ); + $this->dieWithError( + [ 'apierror-invalidtitle', wfEscapeWikiText( $this->params['filename'] ) ] + ); } $localRepo = RepoGroup::singleton()->getLocalRepo(); // Check if the file really exists $this->file = $localRepo->newFile( $title ); if ( !$this->file->exists() ) { - $this->dieUsageMsg( 'notanarticle' ); + $this->dieWithError( 'apierror-missingtitle' ); } // Check if the archivename is valid for this file $this->archiveName = $this->params['archivename']; $oldFile = $localRepo->newFromArchiveName( $title, $this->archiveName ); if ( !$oldFile->exists() ) { - $this->dieUsageMsg( 'filerevert-badversion' ); + $this->dieWithError( 'filerevert-badversion' ); } } @@ -122,19 +107,19 @@ class ApiFileRevert extends ApiBase { } public function getAllowedParams() { - return array( - 'filename' => array( + return [ + 'filename' => [ ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_REQUIRED => true, - ), - 'comment' => array( + ], + 'comment' => [ ApiBase::PARAM_DFLT => '', - ), - 'archivename' => array( + ], + 'archivename' => [ ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_REQUIRED => true, - ), - ); + ], + ]; } public function needsToken() { @@ -142,10 +127,10 @@ class ApiFileRevert extends ApiBase { } protected function getExamplesMessages() { - return array( + return [ 'action=filerevert&filename=Wiki.png&comment=Revert&' . 'archivename=20110305152740!Wiki.png&token=123ABC' => 'apihelp-filerevert-example-revert', - ); + ]; } }