WP_REST_Revisions_Controller::delete_item_permissions_check() – Checks if a given request has access to delete a revision.

You appear to be a bot. Output may be restricted

Description

Checks if a given request has access to delete a revision.

Usage

$true|WP_Error = WP_REST_Revisions_Controller::delete_item_permissions_check( $request );

Parameters

$request
( WP_REST_Request ) required – Full details about the request.

Returns

true|WP_Error True if the request has access to delete the item, WP_Error object otherwise.

Source

File name: wordpress/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php


Lines:

1 to 35 of 35
  public function delete_item_permissions_check( $request ) {
    $parent = $this->WP_REST_Revisions_Controller::get_parent( $request['parent'] );
    if ( is_wp_error( $parent ) ) {
      return $parent;
    }

    if ( ! current_user_can( 'delete_post', $parent->ID ) ) {
      return new WP_Error(
        'rest_cannot_delete',
        __( 'Sorry, you are not allowed to delete revisions of this post.' ),
        array( 'status' => rest_authorization_required_code() )
      );
    }

    $revision = $this->WP_REST_Revisions_Controller::get_revision( $request['id'] );
    if ( is_wp_error( $revision ) ) {
      return $revision;
    }

    $response = $this->WP_REST_Revisions_Controller::get_items_permissions_check( $request );
    if ( ! $response || is_wp_error( $response ) ) {
      return $response;
    }

    if ( ! current_user_can( 'delete_post', $revision->ID ) ) {
      return new WP_Error(
        'rest_cannot_delete',
        __( 'Sorry, you are not allowed to delete this revision.' ),
        array( 'status' => rest_authorization_required_code() )
      );
    }

    return true;
  }
 

 View on GitHub View on Trac