X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiFileRevert.php;h=b68b948293e6e90396da966d6507b45c7b60302a;hb=11ee7f78da9776db26098642a151a288f98bea14;hp=97464d61db730af49f2a37b3a33c50499f291e70;hpb=601519ee36462faabacf4547c9aefaf7e8726476;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiFileRevert.php b/includes/api/ApiFileRevert.php index 97464d61db..b68b948293 100644 --- a/includes/api/ApiFileRevert.php +++ b/includes/api/ApiFileRevert.php @@ -1,9 +1,5 @@ * * This program is free software; you can redistribute it and/or modify @@ -45,7 +41,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 +66,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 +74,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' ); } }