WordPress.org

Make WordPress Core

Ticket #36055: 36055.patch

File 36055.patch, 2.3 KB (added by markoheijnen, 3 years ago)
  • src/wp-includes/class-wp-xmlrpc-server.php

     
    198198        }
    199199
    200200        /**
     201         * Check if the XML-RPC is enabled before calling the method.
     202         *
     203         * @since 4.5.0
     204         * @access public
     205         */
     206        public function call( $methodname, $args ) {
     207                /*
     208                 * Respect old get_option() filters left for back-compat when the 'enable_xmlrpc'
     209                 * option was deprecated in 3.5.0. Use the 'xmlrpc_enabled' hook instead.
     210                 */
     211                $enabled = apply_filters( 'pre_option_enable_xmlrpc', false );
     212                if ( false === $enabled ) {
     213                        $enabled = apply_filters( 'option_enable_xmlrpc', true );
     214                }
     215
     216                /**
     217                 * Filter whether XML-RPC is enabled.
     218                 *
     219                 * This is the proper filter for turning off XML-RPC.
     220                 *
     221                 * @since 3.5.0
     222                 *
     223                 * @param bool $enabled Whether XML-RPC is enabled. Default true.
     224                 */
     225                $enabled = apply_filters( 'xmlrpc_enabled', $enabled );
     226
     227                if ( ! $enabled ) {
     228                        return new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site.' ) ) );
     229                }
     230
     231                return parent::call( $methodname, $args );
     232        }
     233
     234        /**
    201235         * Test XMLRPC API by saying, "Hello!" to client.
    202236         *
    203237         * @since 1.5.0
     
    237271         * @return WP_User|bool WP_User object if authentication passed, false otherwise
    238272         */
    239273        public function login( $username, $password ) {
    240                 /*
    241                  * Respect old get_option() filters left for back-compat when the 'enable_xmlrpc'
    242                  * option was deprecated in 3.5.0. Use the 'xmlrpc_enabled' hook instead.
    243                  */
    244                 $enabled = apply_filters( 'pre_option_enable_xmlrpc', false );
    245                 if ( false === $enabled ) {
    246                         $enabled = apply_filters( 'option_enable_xmlrpc', true );
    247                 }
    248 
    249                 /**
    250                  * Filter whether XML-RPC is enabled.
    251                  *
    252                  * This is the proper filter for turning off XML-RPC.
    253                  *
    254                  * @since 3.5.0
    255                  *
    256                  * @param bool $enabled Whether XML-RPC is enabled. Default true.
    257                  */
    258                 $enabled = apply_filters( 'xmlrpc_enabled', $enabled );
    259 
    260                 if ( ! $enabled ) {
    261                         $this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site.' ) ) );
    262                         return false;
    263                 }
    264 
    265274                if ( $this->auth_failed ) {
    266275                        $user = new WP_Error( 'login_prevented' );
    267276                } else {