diff --git modules/user/user.module modules/user/user.module index 2efc485..0de0535 100644 --- modules/user/user.module +++ modules/user/user.module @@ -360,15 +360,8 @@ function user_save($account, $edit = array(), $category = 'account') { unset($edit['pass']); } - // Get the fields form so we can recognize the fields in the $edit - // form that should not go into the serialized data array. - $field_form = array(); - $field_form_state = form_state_defaults(); - $edit = (object) $edit; - field_attach_form('user', $edit, $field_form, $field_form_state); - // Presave fields. - field_attach_presave('user', $edit); + field_attach_presave('user', (object) $edit); $edit = (array) $edit; @@ -511,11 +504,11 @@ function user_save($account, $edit = array(), $category = 'account') { return FALSE; } - // Build the initial user object. - $user = user_load($edit['uid'], TRUE); + // Build a stub user object. + $user = (object) $edit; + $user->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user'; - $entity = (object) $edit; - field_attach_insert('user', $entity); + field_attach_insert('user', $user); user_module_invoke('insert', $edit, $user, $category); entity_invoke('insert', 'user', $user);