BP_REST_Reply_Endpoint::update_item_permissions_check( WP_REST_Request $request )

Check if a given request has access to update a reply.

Description

Parameters

$request

(Required) Full data about the request.

Return

(bool|WP_Error)

Source

File: bp-forums/classes/class-bp-rest-reply-endpoint.php

1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
public function update_item_permissions_check( $request ) {
    $retval = true;
 
    if ( ! is_user_logged_in() && ! bbp_allow_anonymous() ) {
        $retval = new WP_Error(
            'bp_rest_authorization_required',
            __( 'Sorry, you need to be logged in to update a reply.', 'buddyboss' ),
            array(
                'status' => rest_authorization_required_code(),
            )
        );
    }
 
    if ( true === $retval ) {
        $retval = $this->get_item_permissions_check( $request );
    }
 
    if ( true === $retval ) {
        $reply = get_post( $request['id'] );
        if ( bbp_get_user_id( 0, true, true ) !== $reply->post_author && ! current_user_can( 'edit_reply', $request['id'] ) ) {
            $retval = new WP_Error(
                'bp_rest_authorization_required',
                __( 'Sorry, you are not allowed to update this reply.', 'buddyboss' ),
                array(
                    'status' => rest_authorization_required_code(),
                )
            );
        }
    }
 
    /**
     * Filter the reply `update_item` permissions check.
     *
     * @param bool|WP_Error   $retval  Returned value.
     * @param WP_REST_Request $request The request sent to the API.
     *
     * @since 0.1.0
     */
    return apply_filters( 'bp_rest_reply_update_item_permissions_check', $retval, $request );
}

Changelog

Changelog
Version Description
0.1.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.