diff --git a/e107_admin/users.php b/e107_admin/users.php index 88259fcdc..29459758d 100644 --- a/e107_admin/users.php +++ b/e107_admin/users.php @@ -343,8 +343,8 @@ class users_admin_ui extends e_admin_ui $new_data['user_password'] = $old_data['user_password']; } else - { - $new_data['user_password'] = md5($new_data['user_password']); //TODO add support for salted passwords etc. + { + $new_data['user_password'] = md5($new_data['user_password']); //TODO add support for salted passwords etc. } if(!empty($new_data['perms'])) @@ -376,7 +376,7 @@ class users_admin_ui extends e_admin_ui } } else - { + { $update['WHERE'] = 'user_extended_id='. intval($new_data['submit_value']); if(e107::getDb()->update('user_extended',$update)) @@ -387,7 +387,7 @@ class users_admin_ui extends e_admin_ui { e107::getMessage()->addError('Extended Fields Update Failed'); //TODO Replace with Generic or existing LAN. e107::getMessage()->addDebug(print_a($update,true)); - } + } } } @@ -1213,7 +1213,10 @@ class users_admin_ui extends e_admin_ui if ($userMethods->needEmailPassword()) { // Save separate password encryption for use with email address - $user_data['user_prefs'] = serialize(array('email_password' => $userMethods->HashPassword($savePassword, $user_data['user_email']))); + $user_prefs = e107::getArrayStorage()->unserialize($user_data['user_prefs']); + $user_prefs['email_password'] = $userMethods->HashPassword($savePassword, $user_data['user_email']); + $user_data['user_prefs'] = e107::getArrayStorage()->serialize($user_prefs); + unset($user_prefs); } $userMethods->userClassUpdate($allData['data'], 'userall'); diff --git a/e107_handlers/login.php b/e107_handlers/login.php index 1df37ed27..5511baf1a 100644 --- a/e107_handlers/login.php +++ b/e107_handlers/login.php @@ -403,8 +403,9 @@ class userlogin if ($this->lookEmail && varsettrue($pref['passwordEncoding'])) { - $tmp = unserialize($this->userData['user_prefs']); - $requiredPassword = varset($tmp['email_password'],$this->userData['user_password']); // Use email-specific password if set. Otherwise, 'normal' one might work + $tmp = e107::getArrayStorage()->unserialize($this->userData['user_prefs']); + if(!$tmp && $this->userData['user_prefs']) $tmp = unserialize($this->userData['user_prefs']); // try old storage type + $requiredPassword = varset($tmp['email_password'], $this->userData['user_password']); // Use email-specific password if set. Otherwise, 'normal' one might work unset($tmp); } else diff --git a/e107_web/utilities/passconv.php b/e107_web/utilities/passconv.php index aac9a3490..0354a8227 100644 --- a/e107_web/utilities/passconv.php +++ b/e107_web/utilities/passconv.php @@ -177,8 +177,9 @@ if (isset($_POST['GetOnWithIt'])) $recordCount++; $newData = array(); $newPrefs = ''; - $user_prefs = unserialize($row['user_prefs']); - if ($saltConvert) + $user_prefs = e107::getArrayStorage()->unserialize($row['user_prefs']); + if(!$user_prefs && $row['user_prefs']) $user_prefs = unserialize($row['user_prefs']); + if ($saltConvert) { if ($user_info->canConvert($row['user_password'])) { @@ -204,7 +205,7 @@ if (isset($_POST['GetOnWithIt'])) unset($user_prefs['email_password']); $emailProcess++; } - if (count($user_prefs)) $newPrefs = serialize($user_prefs); else $newPrefs = ''; + if (count($user_prefs)) $newPrefs = e107::getArrayStorage()->serialize($user_prefs); else $newPrefs = ''; if($newPrefs != $user_prefs) { $newData['user_prefs'] = $newPrefs; diff --git a/signup.php b/signup.php index 3a7e4e000..b6a62c4c0 100644 --- a/signup.php +++ b/signup.php @@ -569,7 +569,8 @@ if (isset($_POST['register']) && $pref['user_reg'] == 1) if (vartrue($pref['allowEmailLogin'])) { // Need to create separate password for email login - $allData['data']['user_prefs'] = serialize(array('email_password' => $userMethods->HashPassword($savePassword, $allData['data']['user_email']))); + //$allData['data']['user_prefs'] = serialize(array('email_password' => $userMethods->HashPassword($savePassword, $allData['data']['user_email']))); + $allData['data']['user_prefs'] = e107::getArrayStorage()->serialize(array('email_password' => $userMethods->HashPassword($savePassword, $allData['data']['user_email']))); } $allData['data']['user_join'] = time(); diff --git a/usersettings.php b/usersettings.php index bdbd12f10..3b3d5010b 100644 --- a/usersettings.php +++ b/usersettings.php @@ -558,9 +558,9 @@ if ($dataToSave) $changedUserData['user_password'] = $sql->escape($userMethods->HashPassword($savePassword, $loginname), false); if (varset($pref['allowEmailLogin'], FALSE)) { - $user_prefs = unserialize($udata['user_prefs']); + $user_prefs = e107::getArrayStorage()->unserialize($udata['user_prefs']); $user_prefs['email_password'] = $userMethods->HashPassword($savePassword, $email); - $changedUserData['user_prefs'] = serialize($user_prefs); + $changedUserData['user_prefs'] = e107::getArrayStorage()->serialize($user_prefs); } } else