use updateKeys() for updating the user

darcs-hash:20080622151611-34904-1d952df08b5247ab391bb76fd50d7b90498f0c96.gz
This commit is contained in:
Evan Prodromou 2008-06-22 11:16:11 -04:00
parent 2b258b1a9a
commit acf562b3dd
3 changed files with 21 additions and 14 deletions

View File

@ -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;
}

View File

@ -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.'));

View File

@ -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 .