Make WordPress Core

Changeset 20636


Ignore:
Timestamp:
04/28/2012 09:25:25 PM (12 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.