1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-04 13:47:31 +02:00

Issue #179 possible fix - only create new UEF record if not already present

This commit is contained in:
SteveD
2013-04-28 22:03:46 +01:00
parent a8f927f281
commit f6703349a5

View File

@@ -348,9 +348,10 @@ if (isset($_POST['updatesettings']))
// All key fields validated here // All key fields validated here
// ----------------------------- // -----------------------------
// $inp - UID of user whose data is being changed (may not be the currently logged in user) // $inp - UID of user whose data is being changed (may not be the currently logged in user)
$inp = intval($inp);
if (!$error && count($changedUserData) || count($changedEUFData)) if (!$error && count($changedUserData) || count($changedEUFData))
{ {
$_POST['user_id'] = intval($inp); $_POST['user_id'] = $inp;
$ret = $e_event->trigger('preuserset', $_POST); $ret = $e_event->trigger('preuserset', $_POST);
if ($ret == '') if ($ret == '')
@@ -464,6 +465,7 @@ if ($dataToSave)
if ($dataToSave && !$promptPassword) if ($dataToSave && !$promptPassword)
{ {
$inp = intval($inp);
$message = LAN_USET_41; $message = LAN_USET_41;
// We can update the basic user record now - can just update fields from $changedUserData // We can update the basic user record now - can just update fields from $changedUserData
@@ -471,7 +473,7 @@ if ($dataToSave && !$promptPassword)
if (isset($changedUserData) && count($changedUserData)) if (isset($changedUserData) && count($changedUserData))
{ {
$changedData['data'] = $changedUserData; $changedData['data'] = $changedUserData;
$changedData['WHERE'] = 'user_id='.intval($inp); $changedData['WHERE'] = 'user_id='.$inp;
validatorClass::addFieldTypes($userMethods->userVettingInfo,$changedData); validatorClass::addFieldTypes($userMethods->userVettingInfo,$changedData);
//print_a($changedData); //print_a($changedData);
@@ -494,11 +496,15 @@ if ($dataToSave && !$promptPassword)
if (isset($changedEUFData['data']) && count($changedEUFData['data'])) if (isset($changedEUFData['data']) && count($changedEUFData['data']))
{ {
$ue->addFieldTypes($changedEUFData); // Add in the data types for storage $ue->addFieldTypes($changedEUFData); // Add in the data types for storage
$changedEUFData['WHERE'] = '`user_extended_id` = '.intval($inp); $changedEUFData['WHERE'] = '`user_extended_id` = '.$inp;
//print_a($changedEUFData); //print_a($changedEUFData);
// ***** Next line creates a record which presumably should be there anyway, so could generate an error if (false === $sql->retrieve('user_extended', 'user_extended_id', 'user_extended_id='.$inp))
$sql->db_Select_gen("INSERT INTO #user_extended (user_extended_id, user_hidden_fields) values ('".intval($inp)."', '')"); {
// ***** Next line creates a record which presumably should be there anyway, so could generate an error if no test first
$sql->db_Select_gen("INSERT INTO #user_extended (user_extended_id, user_hidden_fields) values ('".$inp."', '')");
//print_a('New extended fields added: '.$inp.'<br />');
}
if (false === $sql->db_Update('user_extended', $changedEUFData)) if (false === $sql->db_Update('user_extended', $changedEUFData))
{ {
$message .= '<br />Error updating EUF'; $message .= '<br />Error updating EUF';