WP_REST_Users_Controller::get_item_permissions_check PHP Method

get_item_permissions_check() public method

Checks if a given request has access to read a user.
Since: 4.7.0
public get_item_permissions_check ( WP_REST_Request $request ) : true | WP_Error
$request WP_REST_Request Full details about the request.
return true | WP_Error True if the request has read access for the item, otherwise WP_Error object.
    public function get_item_permissions_check($request)
    {
        $id = (int) $request['id'];
        $user = get_userdata($id);
        $types = get_post_types(array('show_in_rest' => true), 'names');
        if (empty($id) || empty($user->ID)) {
            return new WP_Error('rest_user_invalid_id', __('Invalid user ID.'), array('status' => 404));
        }
        if (get_current_user_id() === $id) {
            return true;
        }
        if ('edit' === $request['context'] && !current_user_can('list_users')) {
            return new WP_Error('rest_user_cannot_view', __('Sorry, you are not allowed to list users.'), array('status' => rest_authorization_required_code()));
        } elseif (!count_user_posts($id, $types) && !current_user_can('edit_user', $id) && !current_user_can('list_users')) {
            return new WP_Error('rest_user_cannot_view', __('Sorry, you are not allowed to list users.'), array('status' => rest_authorization_required_code()));
        }
        return true;
    }