- Patch #721436 by catch, chx, sun, eojthebrave, David_Rothstein, moshe weitzman: remove magical fairy saving of cruft from user_save().
parent
e7b3c5e3e9
commit
bead28a4cd
|
@ -105,6 +105,7 @@ function _drupal_session_read($sid) {
|
|||
if ($user && $user->uid > 0 && $user->status == 1) {
|
||||
// This is done to unserialize the data member of $user.
|
||||
$user = drupal_unpack($user);
|
||||
$user->data = unserialize($user->data);
|
||||
|
||||
// Add roles element to $user.
|
||||
$user->roles = array();
|
||||
|
|
|
@ -273,8 +273,6 @@ function profile_save_profile(&$edit, $account, $category, $register = FALSE) {
|
|||
))
|
||||
->fields(array('value' => $edit[$field->name]))
|
||||
->execute();
|
||||
// Mark field as handled (prevents saving to user->data).
|
||||
$edit[$field->name] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -239,6 +239,10 @@ class UserController extends DrupalDefaultEntityController {
|
|||
foreach ($queried_users as $key => $record) {
|
||||
$picture_fids[] = $record->picture;
|
||||
$queried_users[$key] = drupal_unpack($record);
|
||||
// As well as unpacking $user->data, also convert the property to an
|
||||
// unserialized array. This ensures we can always safely reserialize it
|
||||
// in user_save().
|
||||
$queried_users[$key]->data = unserialize($record->data);
|
||||
$queried_users[$key]->roles = array();
|
||||
if ($record->uid) {
|
||||
$queried_users[$record->uid]->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
|
||||
|
@ -334,11 +338,8 @@ function user_load_by_name($name) {
|
|||
* TRUE or omit the $account->uid field.
|
||||
* @param $edit
|
||||
* An array of fields and values to save. For example array('name'
|
||||
* => 'My name'). Keys that do not belong to columns in the user-related
|
||||
* tables are added to the a serialized array in the 'data' column
|
||||
* and will be loaded in the $user->data array by user_load().
|
||||
* Setting a field to NULL deletes it from the data column, if you are
|
||||
* modifying an existing user account.
|
||||
* => 'My name'). Key / value pairs added to the $edit['data'] will be
|
||||
* serialized and saved in the {users.data} column.
|
||||
* @param $category
|
||||
* (optional) The category for storing profile information in.
|
||||
*
|
||||
|
@ -375,7 +376,7 @@ function user_save($account, $edit = array(), $category = 'account') {
|
|||
// Prepopulate $edit['data'] with the current value of $account->data.
|
||||
// Modules can add to or remove from this array in hook_user_presave().
|
||||
if (!empty($account->data)) {
|
||||
$edit['data'] = !empty($edit['data']) ? array_merge($edit['data'], $account->data) : $account->data;
|
||||
$edit['data'] = !empty($edit['data']) ? array_merge($account->data, $edit['data']) : $account->data;
|
||||
}
|
||||
user_module_invoke('presave', $edit, $account, $category);
|
||||
|
||||
|
@ -3393,10 +3394,7 @@ function user_register_submit($form, &$form_state) {
|
|||
}
|
||||
$notify = !empty($form_state['values']['notify']);
|
||||
|
||||
// The unset below is needed to prevent these form values from being saved as
|
||||
// user data.
|
||||
form_state_values_clean($form_state);
|
||||
unset($form_state['values']['notify']);
|
||||
|
||||
$form_state['values']['pass'] = $pass;
|
||||
$form_state['values']['init'] = $form_state['values']['mail'];
|
||||
|
|
Loading…
Reference in New Issue