WordPress.org

Make WordPress Core

Ticket #38962: 38962.2.diff

File 38962.2.diff, 3.7 KB (added by jeremyfelt, 2 years ago)
  • src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php

     
    672672         * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
    673673         */
    674674        public function delete_item( $request ) {
     675                // We don't support delete requests in multisite.
     676                if ( is_multisite() ) {
     677                        return new WP_Error( 'rest_cannot_delete', __( 'The user cannot be deleted.' ), array( 'status' => 501 ) );
     678                }
     679
    675680                $id       = (int) $request['id'];
    676681                $reassign = isset( $request['reassign'] ) ? absint( $request['reassign'] ) : null;
    677682                $force    = isset( $request['force'] ) ? (bool) $request['force'] : false;
  • tests/phpunit/tests/rest-api/rest-users-controller.php

     
    16421642                $request['force'] = true;
    16431643                $response = $this->server->dispatch( $request );
    16441644
     1645                // Not implemented in multisite.
     1646                if ( is_multisite() ) {
     1647                        $this->assertEquals( 501, $response->get_status() );
     1648                        return;
     1649                }
     1650
    16451651                $this->assertEquals( 200, $response->get_status() );
    16461652                $data = $response->get_data();
    16471653                $this->assertTrue( $data['deleted'] );
     
    16581664
    16591665                $request = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
    16601666                $response = $this->server->dispatch( $request );
     1667
     1668                // Not implemented in multisite.
     1669                if ( is_multisite() ) {
     1670                        $this->assertEquals( 501, $response->get_status() );
     1671                        return;
     1672                }
     1673
    16611674                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    16621675
    16631676                $request->set_param( 'force', 'false' );
     
    16801693                $request['force'] = true;
    16811694                $response = $this->server->dispatch( $request );
    16821695
     1696                // Not implemented in multisite.
     1697                if ( is_multisite() ) {
     1698                        $this->assertEquals( 501, $response->get_status() );
     1699                        return;
     1700                }
     1701
    16831702                $this->assertEquals( 200, $response->get_status() );
    16841703                $data = $response->get_data();
    16851704                $this->assertTrue( $data['deleted'] );
     
    16951714
    16961715                $request = new WP_REST_Request( 'DELETE', '/wp/v2/users/me' );
    16971716                $response = $this->server->dispatch( $request );
     1717
     1718                // Not implemented in multisite.
     1719                if ( is_multisite() ) {
     1720                        $this->assertEquals( 501, $response->get_status() );
     1721                        return;
     1722                }
     1723
    16981724                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    16991725
    17001726                $request->set_param( 'force', 'false' );
     
    17331759                $request['force'] = true;
    17341760                $response = $this->server->dispatch( $request );
    17351761
     1762                // Not implemented in multisite.
     1763                if ( is_multisite() ) {
     1764                        $this->assertEquals( 501, $response->get_status() );
     1765                        return;
     1766                }
     1767
    17361768                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
    17371769        }
    17381770
     
    17571789                $request->set_param( 'reassign', $reassign_id );
    17581790                $response = $this->server->dispatch( $request );
    17591791
     1792                // Not implemented in multisite.
     1793                if ( is_multisite() ) {
     1794                        $this->assertEquals( 501, $response->get_status() );
     1795                        return;
     1796                }
     1797
    17601798                $this->assertEquals( 200, $response->get_status() );
    17611799
    17621800                // Check that the post has been updated correctly
     
    17751813                $request->set_param( 'reassign', 100 );
    17761814                $response = $this->server->dispatch( $request );
    17771815
     1816                // Not implemented in multisite.
     1817                if ( is_multisite() ) {
     1818                        $this->assertEquals( 501, $response->get_status() );
     1819                        return;
     1820                }
     1821
    17781822                $this->assertErrorResponse( 'rest_user_invalid_reassign', $response, 400 );
    17791823        }
    17801824