From c8b308a647886d127c0315ab9b61023c567d9ad2 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Sat, 26 Sep 2015 04:35:25 +0000 Subject: [PATCH] XML-RPC: In `wp_xmlrpc_server::wp_getUsersBlogs()`, return the `isPrimary` flag for each blog. Props SergeyBiryukov, daniloercoli. Fixes #25958. Built from https://develop.svn.wordpress.org/trunk@34574 git-svn-id: http://core.svn.wordpress.org/trunk@34538 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/class-wp-xmlrpc-server.php | 18 +++++++++++++----- wp-includes/version.php | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/wp-includes/class-wp-xmlrpc-server.php b/wp-includes/class-wp-xmlrpc-server.php index d86ae052a0..c34a6a5d28 100644 --- a/wp-includes/class-wp-xmlrpc-server.php +++ b/wp-includes/class-wp-xmlrpc-server.php @@ -543,6 +543,7 @@ class wp_xmlrpc_server extends IXR_Server { * } * @return array|IXR_Error Array contains: * - 'isAdmin' + * - 'isPrimary' - whether the blog is the user's primary blog * - 'url' * - 'blogid' * - 'blogName' @@ -578,6 +579,11 @@ class wp_xmlrpc_server extends IXR_Server { $blogs = (array) get_blogs_of_user( $user->ID ); $struct = array(); + $primary_blog_id = 0; + $active_blog = get_active_blog_for_user( $user->ID ); + if ( $active_blog ) { + $primary_blog_id = (int) $active_blog->blog_id; + } foreach ( $blogs as $blog ) { // Don't include blogs that aren't hosted at this site. @@ -589,13 +595,15 @@ class wp_xmlrpc_server extends IXR_Server { switch_to_blog( $blog_id ); $is_admin = current_user_can( 'manage_options' ); + $is_primary = ( (int) $blog_id === $primary_blog_id ); $struct[] = array( - 'isAdmin' => $is_admin, - 'url' => home_url( '/' ), - 'blogid' => (string) $blog_id, - 'blogName' => get_option( 'blogname' ), - 'xmlrpc' => site_url( 'xmlrpc.php', 'rpc' ), + 'isAdmin' => $is_admin, + 'isPrimary' => $is_primary, + 'url' => home_url( '/' ), + 'blogid' => (string) $blog_id, + 'blogName' => get_option( 'blogname' ), + 'xmlrpc' => site_url( 'xmlrpc.php', 'rpc' ), ); restore_current_blog(); diff --git a/wp-includes/version.php b/wp-includes/version.php index 0de8983499..01c21c299f 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.4-alpha-34573'; +$wp_version = '4.4-alpha-34574'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.