Make WordPress Core

Changeset 6715


Ignore:
Timestamp:
02/04/2008 06:52:49 PM (19 years ago)
Author:
ryan
Message:

More cap checks from josephscott. see #5313

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/xmlrpc.php

    r6710 r6715  
    976976            return $this->error;
    977977          }
    978 
    979       $cap = ($publish) ? 'publish_posts' : 'edit_posts';
    980978          $user = set_current_user(0, $user_login);
    981           if ( !current_user_can($cap) )
    982             return new IXR_Error(401, __('Sorry, you are not allowed to post on this blog.'));
    983 
    984                 // The post_type defaults to post, but could also be page.
    985                 $post_type = "post";
    986                 if(
    987                         !empty($content_struct["post_type"])
    988                         && ($content_struct["post_type"] == "page")
    989                 ) {
    990                         $post_type = "page";
     979
     980                $cap = ( $publish ) ? 'publish_posts' : 'edit_posts';
     981                $error_message = __( 'Sorry, you are not allowed to publish posts on this blog.' );
     982                $post_type = 'post';
     983                if( !empty( $content_struct['post_type'] ) ) {
     984                        if( $content_struct['post_type'] == 'page' ) {
     985                                $cap = ( $publish ) ? 'publish_pages' : 'edit_pages';
     986                                $error_message = __( 'Sorry, you are not allowed to publish pages on this blog.' );
     987                                $post_type = 'page';
     988                        }
     989                        elseif( $content_type['post_type'] == 'post' ) {
     990                                // This is the default, no changes needed
     991                        }
     992                        else {
     993                                // No other post_type values are allowed here
     994                                return new IXR_Error( 401, __( 'Invalid post type.' ) );
     995                        }
     996                }
     997
     998                if( !current_user_can( $cap ) ) {
     999                        return new IXR_Error( 401, $error_message );
    9911000                }
    9921001
     
    11881197            return $this->error;
    11891198          }
    1190 
    11911199                $user = set_current_user(0, $user_login);
    11921200
    1193                 // The post_type defaults to post, but could also be page.
    1194                 $post_type = "post";
    1195                 if(
    1196                         !empty($content_struct["post_type"])
    1197                         && ($content_struct["post_type"] == "page")
    1198                 ) {
    1199                         if( !current_user_can( 'edit_page', $post_ID ) ) {
    1200                                 return(new IXR_Error(401, __("Sorry, you do not have the right to edit this page.")));
    1201                         }
    1202 
    1203                         $post_type = "page";
    1204                 }
    1205 
    1206           // Edit page caps are checked in editPage.  Just check post here.
    1207           if ( ( 'post' == $post_type ) && !current_user_can('edit_post', $post_ID) )
    1208             return new IXR_Error(401, __('Sorry, you can not edit this post.'));
     1201                $cap = ( $publish ) ? 'publish_posts' : 'edit_posts';
     1202                $error_message = __( 'Sorry, you are not allowed to publish posts on this blog.' );
     1203                $post_type = 'post';
     1204                if( !empty( $content_struct['post_type'] ) ) {
     1205                        if( $content_struct['post_type'] == 'page' ) {
     1206                                $cap = ( $publish ) ? 'publish_pages' : 'edit_pages';
     1207                                $error_message = __( 'Sorry, you are not allowed to publish pages on this blog.' );
     1208                                $post_type = 'page';
     1209                        }
     1210                        elseif( $content_type['post_type'] == 'post' ) {
     1211                                // This is the default, no changes needed
     1212                        }
     1213                        else {
     1214                                // No other post_type values are allowed here
     1215                                return new IXR_Error( 401, __( 'Invalid post type.' ) );
     1216                        }
     1217                }
     1218
     1219                if( !current_user_can( $cap ) ) {
     1220                        return new IXR_Error( 401, $error_message );
     1221                }
    12091222
    12101223          $postdata = wp_get_single_post($post_ID, ARRAY_A);
Note: See TracChangeset for help on using the changeset viewer.