diff --git a/actions/confirmemail.php b/actions/confirmemail.php index e69cc6fff8..72b42c2a7b 100644 --- a/actions/confirmemail.php +++ b/actions/confirmemail.php @@ -51,11 +51,13 @@ class ConfirmemailAction extends Action { $cur->query('BEGIN'); $orig_user = clone($cur); + $cur->email = $confirm_email->email; - $result = $cur->update($orig_user); + $result = $cur->updateKeys($orig_user); if (!$result) { common_log_db_error($cur, 'UPDATE', __FILE__); + $this->server_error(_t('Couldn\'t update user.')); return; } @@ -63,6 +65,7 @@ class ConfirmemailAction extends Action { if (!$result) { common_log_db_error($confirm_email, 'DELETE', __FILE__); + $this->server_error(_t('Couldn\'t delete email confirmation.')); return; } diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 1b7c75d479..bca86a85f3 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -113,20 +113,23 @@ class ProfilesettingsAction extends SettingsAction { assert(!is_null($user)); # should already be checked $user->query('BEGIN'); - - $original = clone($user); - $user->nickname = $nickname; - - $result = $user->update($original); - - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_t('Couldnt update user.')); - return; + if ($user->nickname != $nickname) { + + $original = clone($user); + + $user->nickname = $nickname; + + $result = $user->updateKeys($original); + + if (!$result) { + common_log_db_error($user, 'UPDATE', __FILE__); + common_server_error(_t('Couldnt update user.')); + return; + } } - if ($email != $original->email) { + if ($email != $user->email) { $confirm = new Confirm_email(); $confirm->code = common_good_rand(16); @@ -134,6 +137,7 @@ class ProfilesettingsAction extends SettingsAction { $confirm->email = $email; $result = $confirm->insert(); + if (!$result) { common_log_db_error($confirm, 'INSERT', __FILE__); common_server_error(_t('Couldnt confirm email.')); diff --git a/classes/User.php b/classes/User.php index e8667d6975..94240392ed 100644 --- a/classes/User.php +++ b/classes/User.php @@ -68,12 +68,12 @@ class User extends DB_DataObject $parts = array(); foreach (array('nickname', 'email') as $k) { if ($this->$k != $orig->$k) { - $parts[] = $k . '=' . $this->_quote($this->$k); + $parts[] = $k . ' = ' . $this->_quote($this->$k); } } if (count($parts) == 0) { # No changes - return; + return true; } $toupdate = implode(', ', $parts); $qry = 'UPDATE ' . $this->tableName() . ' SET ' . $toupdate .