More informative error message when remote publishing is disabled. Don't disable if upgrading. Props josephscott. see #7157

git-svn-id: http://svn.automattic.com/wordpress/trunk@8202 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan
2008-06-26 22:39:57 +00:00
parent 1fa06da55c
commit 3f90dc2f58
6 changed files with 32 additions and 36 deletions

View File

@@ -39,14 +39,11 @@ header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
<engineLink>http://wordpress.org/</engineLink>
<homePageLink><?php bloginfo_rss('url') ?></homePageLink>
<apis>
<?php if ( get_option('enable_xmlrpc') ) :?>
<api name="WordPress" blogID="1" preferred="true" apiLink="<?php bloginfo_rss('wpurl') ?>/xmlrpc.php" />
<api name="Movable Type" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('wpurl') ?>/xmlrpc.php" />
<api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('wpurl') ?>/xmlrpc.php" />
<api name="Blogger" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('wpurl') ?>/xmlrpc.php" />
<?php endif; if ( get_option('enable_app') ) :?>
<api name="Atom" blogID="" preferred="false" apiLink="<?php echo apply_filters('atom_service_url', (get_bloginfo('url')."/wp-app.php/service"))?>" />
<?php endif; ?>
</apis>
</service>
</rsd>
@@ -111,7 +108,7 @@ if ( isset($HTTP_RAW_POST_DATA) )
class wp_xmlrpc_server extends IXR_Server {
function wp_xmlrpc_server() {
$xmlrpc_methods = array(
$this->methods = array(
// WordPress API
'wp.getUsersBlogs' => 'this:wp_getUsersBlogs',
'wp.getPage' => 'this:wp_getPage',
@@ -167,10 +164,8 @@ class wp_xmlrpc_server extends IXR_Server {
'mt.supportedMethods' => 'this:mt_supportedMethods',
'mt.supportedTextFilters' => 'this:mt_supportedTextFilters',
'mt.getTrackbackPings' => 'this:mt_getTrackbackPings',
'mt.publishPost' => 'this:mt_publishPost'
);
$xmlrpc_functions = array (
'mt.publishPost' => 'this:mt_publishPost',
// PingBack
'pingback.ping' => 'this:pingback_ping',
'pingback.extensions.getPingbacks' => 'this:pingback_extensions_getPingbacks',
@@ -179,13 +174,6 @@ class wp_xmlrpc_server extends IXR_Server {
'demo.addTwoNumbers' => 'this:addTwoNumbers'
);
if ( get_option('enable_xmlrpc') )
{
$this->methods = array_merge($xmlrpc_methods,$xmlrpc_functions);
} else {
$this->methods = $xmlrpc_functions;
}
$this->initialise_blog_option_info( );
$this->methods = apply_filters('xmlrpc_methods', $this->methods);
$this->IXR_Server($this->methods);
@@ -202,6 +190,11 @@ class wp_xmlrpc_server extends IXR_Server {
}
function login_pass_ok($user_login, $user_pass) {
if ( !get_option( 'enable_xmlrpc' ) ) {
$this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this blog. An admin user can enable them at %s'), admin_url('options-writing.php') ) );
return false;
}
if (!user_pass_ok($user_login, $user_pass)) {
$this->error = new IXR_Error(403, __('Bad login/pass combination.'));
return false;
@@ -845,7 +838,7 @@ class wp_xmlrpc_server extends IXR_Server {
$post_id = (int) $args[3];
if( !$this->login_pass_ok( $username, $password ) ) {
return new IXR_Error( 403, __( 'Bad login/pass combination.' ) );
return $this->error;
}
set_current_user( 0, $username );
@@ -873,7 +866,7 @@ class wp_xmlrpc_server extends IXR_Server {
$password = $args[2];
if( !$this->login_pass_ok( $username, $password ) ) {
return new IXR_Error( 403, __( 'Bad login/pass combination.' ) );
return $this->error;
}
set_current_user( 0, $username );
@@ -895,7 +888,7 @@ class wp_xmlrpc_server extends IXR_Server {
$password = $args[2];
if( !$this->login_pass_ok( $username, $password ) ) {
return new IXR_Error( 403, __( 'Bad login/pass combination.' ) );
return $this->error;
}
set_current_user( 0, $username );
@@ -916,7 +909,7 @@ class wp_xmlrpc_server extends IXR_Server {
$password = $args[2];
if( !$this->login_pass_ok( $username, $password ) ) {
return new IXR_Error( 403, __( 'Bad login/pass combination.' ) );
return $this->error;
}
set_current_user( 0, $username );
@@ -939,7 +932,7 @@ class wp_xmlrpc_server extends IXR_Server {
$options = (array) $args[3];
if( !$this->login_pass_ok( $username, $password ) )
return new IXR_Error( 403, __( 'Bad login/pass combination.' ) );
return $this->error;
$user = set_current_user( 0, $username );
@@ -978,7 +971,7 @@ class wp_xmlrpc_server extends IXR_Server {
$options = (array) $args[3];
if( !$this->login_pass_ok( $username, $password ) )
return new IXR_Error( 403, __( 'Bad login/pass combination.' ) );
return $this->error;
$user = set_current_user( 0, $username );
if( !current_user_can( 'manage_options' ) )