diff -urN wordpress-mu-1.3.2/wp-admin/includes/mu.php wordpress-mu-1.3.3/wp-admin/includes/mu.php --- wordpress-mu-1.3.2/wp-admin/includes/mu.php 2008-01-23 18:46:26.000000000 +0100 +++ wordpress-mu-1.3.3/wp-admin/includes/mu.php 2008-02-03 15:00:39.000000000 +0100 @@ -398,7 +398,6 @@ unset( $submenu['themes.php'][10] ); unset( $submenu['plugins.php'][5] ); unset( $submenu['plugins.php'][10] ); - unset( $submenu['options-general.php'][35] ); unset( $submenu['options-general.php'][40] ); unset( $submenu['edit.php'][30] ); unset( $menu['30'] ); diff -urN wordpress-mu-1.3.2/wp-admin/install-helper.php wordpress-mu-1.3.3/wp-admin/install-helper.php --- wordpress-mu-1.3.2/wp-admin/install-helper.php 2006-11-24 17:16:44.000000000 +0100 +++ wordpress-mu-1.3.3/wp-admin/install-helper.php 2008-02-05 16:34:44.000000000 +0100 @@ -1,5 +1,5 @@ data)) { - + $this->data = get_object_vars($this->data); return 'struct'; } @@ -254,7 +254,7 @@ } } $this->_currentTagContents = ''; - } + } } @@ -379,7 +379,7 @@ 'specUrl' => 'http://www.xmlrpc.com/discuss/msgReader$1208', 'specVersion' => 1 ), - ); + ); } function getCapabilities($args) { return $this->capabilities; @@ -584,7 +584,7 @@ - + EOD; return $xml; @@ -658,27 +658,27 @@ 'specVersion' => 1 ); $this->addCallback( - 'system.methodSignature', - 'this:methodSignature', - array('array', 'string'), + 'system.methodSignature', + 'this:methodSignature', + array('array', 'string'), 'Returns an array describing the return type and required parameters of a method' ); $this->addCallback( - 'system.getCapabilities', - 'this:getCapabilities', - array('struct'), + 'system.getCapabilities', + 'this:getCapabilities', + array('struct'), 'Returns a struct describing the XML-RPC specifications supported by this server' ); $this->addCallback( - 'system.listMethods', - 'this:listMethods', - array('array'), + 'system.listMethods', + 'this:listMethods', + array('array'), 'Returns an array of available methods on this server' ); $this->addCallback( - 'system.methodHelp', - 'this:methodHelp', - array('string', 'string'), + 'system.methodHelp', + 'this:methodHelp', + array('string', 'string'), 'Returns a documentation string for the specified method' ); } diff -urN wordpress-mu-1.3.2/wp-includes/pluggable.php wordpress-mu-1.3.3/wp-includes/pluggable.php --- wordpress-mu-1.3.2/wp-includes/pluggable.php 2008-01-02 17:00:05.000000000 +0100 +++ wordpress-mu-1.3.3/wp-includes/pluggable.php 2008-02-05 16:34:44.000000000 +0100 @@ -248,7 +248,6 @@ // Set the from name and email $phpmailer->From = apply_filters( 'wp_mail_from', $from_email ); - $phpmailer->Sender = apply_filters( 'wp_mail_from', $from_email ); $phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name ); // Set destination address diff -urN wordpress-mu-1.3.2/wp-includes/version.php wordpress-mu-1.3.3/wp-includes/version.php --- wordpress-mu-1.3.2/wp-includes/version.php 2008-01-24 20:11:43.000000000 +0100 +++ wordpress-mu-1.3.3/wp-includes/version.php 2008-02-05 16:34:44.000000000 +0100 @@ -2,8 +2,8 @@ // This holds the version number in a separate file so we can bump it without cluttering the SVN -$wp_version = '2.3.2'; -$wpmu_version = '1.3.2'; +$wp_version = '2.3.3'; +$wpmu_version = '1.3.3'; $wp_db_version = 6124; ?> diff -urN wordpress-mu-1.3.2/xmlrpc.php wordpress-mu-1.3.3/xmlrpc.php --- wordpress-mu-1.3.2/xmlrpc.php 2008-01-02 17:00:05.000000000 +0100 +++ wordpress-mu-1.3.3/xmlrpc.php 2008-02-05 16:34:44.000000000 +0100 @@ -988,19 +988,28 @@ if (!$this->login_pass_ok($user_login, $user_pass)) { return $this->error; } - - $cap = ($publish) ? 'publish_posts' : 'edit_posts'; $user = set_current_user(0, $user_login); - if ( !current_user_can($cap) ) - return new IXR_Error(401, __('Sorry, you are not allowed to post on this blog.')); - // The post_type defaults to post, but could also be page. - $post_type = "post"; - if( - !empty($content_struct["post_type"]) - && ($content_struct["post_type"] == "page") - ) { - $post_type = "page"; + $cap = ( $publish ) ? 'publish_posts' : 'edit_posts'; + $error_message = __( 'Sorry, you are not allowed to publish posts on this blog.' ); + $post_type = 'post'; + if( !empty( $content_struct['post_type'] ) ) { + if( $content_struct['post_type'] == 'page' ) { + $cap = ( $publish ) ? 'publish_pages' : 'edit_pages'; + $error_message = __( 'Sorry, you are not allowed to publish pages on this blog.' ); + $post_type = 'page'; + } + elseif( $content_type['post_type'] == 'post' ) { + // This is the default, no changes needed + } + else { + // No other post_type values are allowed here + return new IXR_Error( 401, __( 'Invalid post type.' ) ); + } + } + + if( !current_user_can( $cap ) ) { + return new IXR_Error( 401, $error_message ); } // Let WordPress generate the post_name (slug) unless @@ -1200,21 +1209,29 @@ if (!$this->login_pass_ok($user_login, $user_pass)) { return $this->error; } - $user = set_current_user(0, $user_login); - // The post_type defaults to post, but could also be page. - $post_type = "post"; - if( - !empty($content_struct["post_type"]) - && ($content_struct["post_type"] == "page") - ) { - $post_type = "page"; + $cap = ( $publish ) ? 'publish_posts' : 'edit_posts'; + $error_message = __( 'Sorry, you are not allowed to publish posts on this blog.' ); + $post_type = 'post'; + if( !empty( $content_struct['post_type'] ) ) { + if( $content_struct['post_type'] == 'page' ) { + $cap = ( $publish ) ? 'publish_pages' : 'edit_pages'; + $error_message = __( 'Sorry, you are not allowed to publish pages on this blog.' ); + $post_type = 'page'; + } + elseif( $content_type['post_type'] == 'post' ) { + // This is the default, no changes needed + } + else { + // No other post_type values are allowed here + return new IXR_Error( 401, __( 'Invalid post type.' ) ); + } } - // Edit page caps are checked in editPage. Just check post here. - if ( ( 'post' == $post_type ) && !current_user_can('edit_post', $post_ID) ) - return new IXR_Error(401, __('Sorry, you can not edit this post.')); + if( !current_user_can( $cap ) ) { + return new IXR_Error( 401, $error_message ); + } $postdata = wp_get_single_post($post_ID, ARRAY_A);