summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/confirmemail.php5
-rw-r--r--actions/profilesettings.php26
-rw-r--r--classes/User.php4
3 files changed, 21 insertions, 14 deletions
diff --git a/actions/confirmemail.php b/actions/confirmemail.php
index e69cc6fff..72b42c2a7 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 1b7c75d47..bca86a85f 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 e8667d697..94240392e 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 .