summaryrefslogtreecommitdiffstats
path: root/xmlrpc.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2006-10-09 11:39:17 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2006-10-09 11:39:17 +0000
commit75e0ccc3a64e164d036da4f71f458520ddea3b24 (patch)
tree94f00db692e25c95030f7984c27178e1bd7e1bcd /xmlrpc.php
parentca036ad95fc44c318275ab539a52f1eb6fddf060 (diff)
downloadwordpress-mu-75e0ccc3a64e164d036da4f71f458520ddea3b24.tar.gz
wordpress-mu-75e0ccc3a64e164d036da4f71f458520ddea3b24.tar.xz
wordpress-mu-75e0ccc3a64e164d036da4f71f458520ddea3b24.zip
WP Merge - needs testing.
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@797 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'xmlrpc.php')
-rw-r--r--xmlrpc.php49
1 files changed, 31 insertions, 18 deletions
diff --git a/xmlrpc.php b/xmlrpc.php
index c937122..d8f75df 100644
--- a/xmlrpc.php
+++ b/xmlrpc.php
@@ -155,24 +155,34 @@ class wp_xmlrpc_server extends IXR_Server {
$this->escape($args);
- $user_login = $args[1];
- $user_pass = $args[2];
+ $user_login = $args[1];
+ $user_pass = $args[2];
- if (!$this->login_pass_ok($user_login, $user_pass)) {
- return $this->error;
- }
+ if (!$this->login_pass_ok($user_login, $user_pass))
+ return $this->error;
- set_current_user(0, $user_login);
- $is_admin = current_user_can('level_8');
+ $user = set_current_user(0, $user_login);
- $struct = array(
- 'isAdmin' => $is_admin,
- 'url' => get_option('home') . '/',
- 'blogid' => '1',
- 'blogName' => get_option('blogname')
- );
+ $blogs = (array) get_blogs_of_user($user->ID);
+
+ $struct = array();
+
+ foreach ( $blogs as $blog ) {
+ $blog_id = $blog->userblog_id;
+
+ switch_to_blog($blog_id);
+
+ $is_admin = current_user_can('level_8');
- return array($struct);
+ $struct[] = array(
+ 'isAdmin' => $is_admin,
+ 'url' => get_settings('home') . '/',
+ 'blogid' => $blog_id,
+ 'blogName' => get_settings('blogname')
+ );
+ }
+
+ return $struct;
}
@@ -833,6 +843,9 @@ class wp_xmlrpc_server extends IXR_Server {
return $this->error;
}
+ if ( $upload_err = apply_filters( "pre_upload_error", false ) )
+ return new IXR_Error(500, $upload_err);
+
$upload = wp_upload_bits($name, $type, $bits);
if ( ! empty($upload['error']) ) {
logIO('O', '(MW) Could not write file '.$name);
@@ -1207,16 +1220,16 @@ class wp_xmlrpc_server extends IXR_Server {
$comment_post_ID = (int) $post_ID;
$comment_author = $title;
- $this->escape($comment_author);
+ $wpdb->escape($comment_author);
$comment_author_url = $pagelinkedfrom;
$comment_content = $context;
- $this->escape($comment_content);
+ $wpdb->escape($comment_content);
$comment_type = 'pingback';
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_content', 'comment_type');
- wp_new_comment($commentdata);
- do_action('pingback_post', $wpdb->insert_id);
+ $comment_ID = wp_new_comment($commentdata);
+ do_action('pingback_post', $comment_ID);
return "Pingback from $pagelinkedfrom to $pagelinkedto registered. Keep the web talking! :-)";
}