X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiFileRevert.php;h=736898edcfa7d587b2f9df595a87626f55bb65e9;hb=233900e99c9e52dc5dea33ba80f603a97618cf53;hp=97464d61db730af49f2a37b3a33c50499f291e70;hpb=fb7b3eebeb8de47eb42e8d6ccf204106a2d6d9e4;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiFileRevert.php b/includes/api/ApiFileRevert.php index 97464d61db..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( @@ -70,23 +70,6 @@ class ApiFileRevert extends ApiBase { $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( [ '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' ); } }