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

@ -254,8 +254,8 @@ function populate_options() {
// 2.6 // 2.6
add_option('avatar_default', 'mystery'); add_option('avatar_default', 'mystery');
add_option('enable_app',0); add_option('enable_app', 0);
add_option('enable_xmlrpc',0); add_option('enable_xmlrpc', 0);
// Delete unused options // Delete unused options
$unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog', '_wpnonce', '_wp_http_referer', 'Update', 'action', 'rich_editing', 'autosave_interval', 'deactivated_plugins'); $unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog', '_wpnonce', '_wp_http_referer', 'Update', 'action', 'rich_editing', 'autosave_interval', 'deactivated_plugins');

View File

@ -6,7 +6,7 @@ require_once(ABSPATH . 'wp-admin/includes/admin.php');
require_once(ABSPATH . 'wp-admin/includes/schema.php'); require_once(ABSPATH . 'wp-admin/includes/schema.php');
if ( !function_exists('wp_install') ) : if ( !function_exists('wp_install') ) :
function wp_install($blog_title, $user_name, $user_email, $public, $remote) { function wp_install($blog_title, $user_name, $user_email, $public, $deprecated='') {
global $wp_rewrite; global $wp_rewrite;
wp_check_mysql_version(); wp_check_mysql_version();
@ -18,8 +18,6 @@ function wp_install($blog_title, $user_name, $user_email, $public, $remote) {
update_option('blogname', $blog_title); update_option('blogname', $blog_title);
update_option('admin_email', $user_email); update_option('admin_email', $user_email);
update_option('blog_public', $public); update_option('blog_public', $public);
update_option('enable_app',$remote);
update_option('enable_xmlrpc',$remote);
$guessurl = wp_guess_url(); $guessurl = wp_guess_url();
@ -206,7 +204,7 @@ function upgrade_all() {
if ( $wp_current_db_version < 7935 ) if ( $wp_current_db_version < 7935 )
upgrade_252(); upgrade_252();
if ( $wp_current_db_version < 8000 ) if ( $wp_current_db_version < 8201 )
upgrade_260(); upgrade_260();
maybe_disable_automattic_widgets(); maybe_disable_automattic_widgets();
@ -744,7 +742,13 @@ function upgrade_252() {
} }
function upgrade_260() { function upgrade_260() {
populate_roles_260(); if ( $wp_current_db_version < 8000 )
populate_roles_260();
if ( $wp_current_db_version < 8201 ) {
update_option('enable_app', 1);
update_option('enable_xmlrpc', 1);
}
} }
// The functions we use to actually do stuff // The functions we use to actually do stuff

View File

@ -53,10 +53,6 @@ switch($step) {
<tr> <tr>
<td colspan="2"><label><input type="checkbox" name="blog_public" value="1" checked="checked" /> <?php _e('Allow my blog to appear in search engines like Google and Technorati.'); ?></label></td> <td colspan="2"><label><input type="checkbox" name="blog_public" value="1" checked="checked" /> <?php _e('Allow my blog to appear in search engines like Google and Technorati.'); ?></label></td>
</tr> </tr>
<tr>
<td colspan="2"><label><input type="checkbox" name="enable_remotepublishing" value="0" /> <?php _e('Enable remote publishing using the WordPress, Movable Type, MetaWeblog, Blogger and Atom publishing protocols for my blog.'); ?></label></td>
</tr>
</table>
</table> </table>
<input type="submit" name="Submit" value="<?php _e('Install WordPress'); ?>" class="button" /> <input type="submit" name="Submit" value="<?php _e('Install WordPress'); ?>" class="button" />
</form> </form>
@ -72,7 +68,6 @@ switch($step) {
$weblog_title = stripslashes($_POST['weblog_title']); $weblog_title = stripslashes($_POST['weblog_title']);
$admin_email = stripslashes($_POST['admin_email']); $admin_email = stripslashes($_POST['admin_email']);
$public = (int) $_POST['blog_public']; $public = (int) $_POST['blog_public'];
$remote = (int) $_POST['enable_remotepublishing'];
// check e-mail address // check e-mail address
if (empty($admin_email)) { if (empty($admin_email)) {
// TODO: poka-yoke // TODO: poka-yoke
@ -83,7 +78,7 @@ switch($step) {
} }
$wpdb->show_errors(); $wpdb->show_errors();
$result = wp_install($weblog_title, 'admin', $admin_email, $public, $remote); $result = wp_install($weblog_title, 'admin', $admin_email, $public);
extract($result, EXTR_SKIP); extract($result, EXTR_SKIP);
?> ?>

View File

@ -195,6 +195,10 @@ class AtomServer {
$this->redirect($this->get_service_url()); $this->redirect($this->get_service_url());
} }
// check to see if AtomPub is enabled
if( !get_option( 'enable_app' ) )
$this->not_allowed( 'AtomPub services are disabled on this blog. An admin user can enable them at ' . admin_url('options-writing.php') );
// dispatch // dispatch
foreach($this->selectors as $regex => $funcs) { foreach($this->selectors as $regex => $funcs) {
if(preg_match($regex, $path, $matches)) { if(preg_match($regex, $path, $matches)) {
@ -1187,4 +1191,4 @@ EOD;
$server = new AtomServer(); $server = new AtomServer();
$server->handle_request(); $server->handle_request();
?> ?>

View File

@ -15,6 +15,6 @@ $wp_version = '2.6-beta1';
* *
* @global int $wp_db_version * @global int $wp_db_version
*/ */
$wp_db_version = 8134; $wp_db_version = 8201;
?> ?>

View File

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