summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-create-endpoint.php')
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-create-endpoint.php19
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-create-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-create-endpoint.php
index 07d1c219..bd71249b 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-create-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-create-endpoint.php
@@ -12,6 +12,7 @@ class Jetpack_JSON_API_User_Create_Endpoint extends Jetpack_JSON_API_Endpoint {
function validate_input( $object ) {
$this->user_data = $this->input();
+
if ( empty( $this->user_data ) ) {
return new WP_Error( 'input_error', __( 'user_data is required', 'jetpack' ) );
}
@@ -26,22 +27,32 @@ class Jetpack_JSON_API_User_Create_Endpoint extends Jetpack_JSON_API_Endpoint {
function create_or_get_user() {
require_once JETPACK__PLUGIN_DIR . 'modules/sso/class.jetpack-sso-helpers.php';
-
// Check for an existing user
$user = get_user_by( 'email', $this->user_data['email'] );
+ $roles = (array) $this->user_data['roles'];
+ $role = array_pop( $roles );
+
+ $query_args = $this->query_args();
+ if ( isset( $query_args['invite_accepted'] ) && $query_args['invite_accepted'] ) {
+ Jetpack_Constants::set_constant( 'JETPACK_INVITE_ACCEPTED', true );
+ }
if ( ! $user ) {
// We modify the input here to mimick the same call structure of the update user endpoint.
$this->user_data = (object) $this->user_data;
- $roles = (array) $this->user_data->roles;
- $this->user_data->role = array_pop( $roles );
- $this->user_data->url = $this->user_data->roles;
+ $this->user_data->role = $role;
+ $this->user_data->url = isset( $this->user_data->URL ) ? $this->user_data->URL : '';
$this->user_data->display_name = $this->user_data->name;
$this->user_data->description = '';
$user = Jetpack_SSO_Helpers::generate_user( $this->user_data );
}
+ if ( is_multisite() ) {
+ add_user_to_blog( get_current_blog_id(), $user->ID, $role );
+ }
+
if ( ! $user ) {
+
return false;
}