public function get_item_permissions_check($request)
{
$post = get_post((int) $request['id']);
if ('edit' === $request['context'] && $post && !$this->check_update_permission($post)) {
return new WP_Error('rest_forbidden_context', __('Sorry, you are not allowed to edit this post.'), array('status' => rest_authorization_required_code()));
}
if ($post && !empty($request['password'])) {
// Check post password, and return error if invalid.
if (!hash_equals($post->post_password, $request['password'])) {
return new WP_Error('rest_post_incorrect_password', __('Incorrect post password.'), array('status' => 403));
}
}
// Allow access to all password protected posts if the context is edit.
if ('edit' === $request['context']) {
add_filter('post_password_required', '__return_false');
}
if ($post) {
return $this->check_read_permission($post);
}
return true;
}