diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-10-09 11:39:17 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-10-09 11:39:17 +0000 |
commit | 75e0ccc3a64e164d036da4f71f458520ddea3b24 (patch) | |
tree | 94f00db692e25c95030f7984c27178e1bd7e1bcd /xmlrpc.php | |
parent | ca036ad95fc44c318275ab539a52f1eb6fddf060 (diff) | |
download | wordpress-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.php | 49 |
1 files changed, 31 insertions, 18 deletions
@@ -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! :-)"; } |