WordPress.org

Make WordPress Core

Changeset 20636


Ignore:
Timestamp:
04/28/12 21:25:25 (2 years ago)
Author:
nacin
Message:

Introduce minimum_args() method in XML-RPC and leverage it to return errors for insufficient arguments for methods that are new in 3.4.

props maxcutler, markoheijnen.
fixes #20394.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/class-wp-xmlrpc-server.php

    r20635 r20636  
    491491    } 
    492492 
     493    /** 
     494     * Checks if the method received at least the minimum number of arguments. 
     495     * 
     496     * @since 3.4 
     497     * 
     498     * @param string|array $args Sanitize single string or array of strings. 
     499     * @param int $count Minimum number of arguments. 
     500     * @return boolean if $args contains at least $count arguments. 
     501     */ 
     502    protected function minimum_args( $args, $count ) { 
     503        if ( count( $args ) < $count ) { 
     504            $this->error = new IXR_Error( 400, __( 'Insufficient arguments passed to this XML-RPC method.' ) ); 
     505            return false; 
     506        } 
     507 
     508        return true; 
     509    } 
     510 
    493511    /** 
    494512     * Prepares taxonomy data for return in an XML-RPC object. 
     
    767785     */ 
    768786    function wp_newPost( $args ) { 
     787        if ( ! $this->minimum_args( $args, 4 ) ) 
     788            return $this->error; 
     789 
    769790        $this->escape( $args ); 
    770791 
     
    10391060     */ 
    10401061    function wp_editPost( $args ) { 
     1062        if ( ! $this->minimum_args( $args, 5 ) ) 
     1063            return $this->error; 
     1064 
    10411065        $this->escape( $args ); 
    10421066 
     
    10911115     */ 
    10921116    function wp_deletePost( $args ) { 
     1117        if ( ! $this->minimum_args( $args, 4 ) ) 
     1118            return $this->error; 
     1119 
    10931120        $this->escape( $args ); 
    10941121 
     
    11641191     */ 
    11651192    function wp_getPost( $args ) { 
     1193        if ( ! $this->minimum_args( $args, 4 ) ) 
     1194            return $this->error; 
     1195 
    11661196        $this->escape( $args ); 
    11671197 
     
    12181248     */ 
    12191249    function wp_getPosts( $args ) { 
     1250        if ( ! $this->minimum_args( $args, 3 ) ) 
     1251            return $this->error; 
     1252 
    12201253        $this->escape( $args ); 
    12211254 
     
    13041337     */ 
    13051338    function wp_newTerm( $args ) { 
     1339        if ( ! $this->minimum_args( $args, 4 ) ) 
     1340            return $this->error; 
     1341 
    13061342        $this->escape( $args ); 
    13071343 
     
    13881424     */ 
    13891425    function wp_editTerm( $args ) { 
     1426        if ( ! $this->minimum_args( $args, 5 ) ) 
     1427            return $this->error; 
     1428 
    13901429        $this->escape( $args ); 
    13911430 
     
    14771516     */ 
    14781517    function wp_deleteTerm( $args ) { 
     1518        if ( ! $this->minimum_args( $args, 5 ) ) 
     1519            return $this->error; 
     1520 
    14791521        $this->escape( $args ); 
    14801522 
     
    15411583     */ 
    15421584    function wp_getTerm( $args ) { 
     1585        if ( ! $this->minimum_args( $args, 5 ) ) 
     1586            return $this->error; 
     1587 
    15431588        $this->escape( $args ); 
    15441589 
     
    15911636     */ 
    15921637    function wp_getTerms( $args ) { 
     1638        if ( ! $this->minimum_args( $args, 4 ) ) 
     1639            return $this->error; 
     1640 
    15931641        $this->escape( $args ); 
    15941642 
     
    16631711     */ 
    16641712    function wp_getTaxonomy( $args ) { 
     1713        if ( ! $this->minimum_args( $args, 4 ) ) 
     1714            return $this->error; 
     1715 
    16651716        $this->escape( $args ); 
    16661717 
     
    17041755     */ 
    17051756    function wp_getTaxonomies( $args ) { 
     1757        if ( ! $this->minimum_args( $args, 3 ) ) 
     1758            return $this->error; 
     1759 
    17061760        $this->escape( $args ); 
    17071761 
     
    30103064     */ 
    30113065    function wp_getPostType( $args ) { 
     3066        if ( ! $this->minimum_args( $args, 4 ) ) 
     3067            return $this->error; 
     3068 
    30123069        $this->escape( $args ); 
    30133070 
     
    30533110     */ 
    30543111    function wp_getPostTypes( $args ) { 
     3112        if ( ! $this->minimum_args( $args, 3 ) ) 
     3113            return $this->error; 
     3114 
    30553115        $this->escape( $args ); 
    30563116 
Note: See TracChangeset for help on using the changeset viewer.