$file = wfFindFile( $title, [ 'latest' => true ] );
if ( !$file ) {
$r['result'] = 'Failure';
- $r['errormessage'] = 'File does not exist';
+ $r['errors'] = $this->getErrorFormatter()->arrayFromStatus(
+ Status::newFatal( 'apierror-filedoesnotexist' )
+ );
$result[] = $r;
continue;
}
$handler = $file->getHandler();
if ( !$handler || !$handler->canRotate() ) {
$r['result'] = 'Failure';
- $r['errormessage'] = 'File type cannot be rotated';
+ $r['errors'] = $this->getErrorFormatter()->arrayFromStatus(
+ Status::newFatal( 'apierror-filetypecannotberotated' )
+ );
$result[] = $r;
continue;
}
// Check whether we're allowed to rotate this file
- $permError = $this->checkPermissions( $this->getUser(), $file->getTitle() );
- if ( $permError !== null ) {
+ $permError = $this->checkTitleUserPermissions( $file->getTitle(), [ 'edit', 'upload' ] );
+ if ( $permError ) {
$r['result'] = 'Failure';
- $r['errormessage'] = $permError;
+ $r['errors'] = $this->getErrorFormatter()->arrayFromStatus(
+ $this->errorArrayToStatus( $permError )
+ );
$result[] = $r;
continue;
}
$srcPath = $file->getLocalRefPath();
if ( $srcPath === false ) {
$r['result'] = 'Failure';
- $r['errormessage'] = 'Cannot get local file path';
+ $r['errors'] = $this->getErrorFormatter()->arrayFromStatus(
+ Status::newFatal( 'apierror-filenopath' )
+ );
$result[] = $r;
continue;
}
$r['result'] = 'Success';
} else {
$r['result'] = 'Failure';
- $r['errormessage'] = $this->getErrorFormatter()->arrayFromStatus( $status );
+ $r['errors'] = $this->getErrorFormatter()->arrayFromStatus( $status );
}
} else {
$r['result'] = 'Failure';
- $r['errormessage'] = $err->toText();
+ $r['errors'] = $this->getErrorFormatter()->arrayFromStatus(
+ Status::newFatal( ApiMessage::create( $err->getMsg() ) )
+ );
}
$result[] = $r;
}
return $this->mPageSet;
}
- /**
- * Checks that the user has permissions to perform rotations.
- * @param User $user The user to check
- * @param Title $title
- * @return string|null Permission error message, or null if there is no error
- */
- protected function checkPermissions( $user, $title ) {
- $permissionErrors = array_merge(
- $title->getUserPermissionsErrors( 'edit', $user ),
- $title->getUserPermissionsErrors( 'upload', $user )
- );
-
- if ( $permissionErrors ) {
- // Just return the first error
- $msg = $this->parseMsg( $permissionErrors[0] );
-
- return $msg['info'];
- }
-
- return null;
- }
-
public function mustBePosted() {
return true;
}