updateKeys -> updateWithKeys (w/ functionality)

This commit is contained in:
Mikael Nordfeldth 2015-01-25 12:07:26 +01:00
parent e38d78eba9
commit 4917a422a1
9 changed files with 17 additions and 14 deletions

View File

@ -108,7 +108,7 @@ class ConfirmaddressAction extends Action
$cur->smsemail = $carrier->toEmailAddress($cur->sms); $cur->smsemail = $carrier->toEmailAddress($cur->sms);
} }
$result = $cur->updateKeys($orig_user); $result = $cur->updateWithKeys($orig_user);
if (!$result) { if (!$result) {
common_log_db_error($cur, 'UPDATE', __FILE__); common_log_db_error($cur, 'UPDATE', __FILE__);

View File

@ -484,7 +484,7 @@ class EmailsettingsAction extends SettingsAction
$user->email = null; $user->email = null;
$result = $user->updateKeys($original); $result = $user->updateWithKeys($original);
if (!$result) { if (!$result) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
@ -517,7 +517,7 @@ class EmailsettingsAction extends SettingsAction
$user->incomingemail = null; $user->incomingemail = null;
$user->emailpost = 0; $user->emailpost = 0;
if (!$user->updateKeys($orig)) { if (!$user->updateWithKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown on database error removing incoming e-mail address. // TRANS: Server error thrown on database error removing incoming e-mail address.
$this->serverError(_('Could not update user record.')); $this->serverError(_('Could not update user record.'));
@ -541,7 +541,7 @@ class EmailsettingsAction extends SettingsAction
$user->incomingemail = mail_new_incoming_address(); $user->incomingemail = mail_new_incoming_address();
$user->emailpost = 1; $user->emailpost = 1;
if (!$user->updateKeys($orig)) { if (!$user->updateWithKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown on database error adding incoming e-mail address. // TRANS: Server error thrown on database error adding incoming e-mail address.
$this->serverError(_('Could not update user record.')); $this->serverError(_('Could not update user record.'));

View File

@ -105,7 +105,7 @@ class RecoverpasswordAction extends Action
if (!$user->email) { if (!$user->email) {
$orig = clone($user); $orig = clone($user);
$user->email = $email; $user->email = $email;
$result = $user->updateKeys($orig); $result = $user->updateWithKeys($orig);
if (!$result) { if (!$result) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error displayed when updating a user's e-mail address in the database fails while recovering a password. // TRANS: Server error displayed when updating a user's e-mail address in the database fails while recovering a password.

View File

@ -444,7 +444,7 @@ class SmssettingsAction extends SettingsAction
$user->carrier = null; $user->carrier = null;
$user->smsemail = null; $user->smsemail = null;
$result = $user->updateKeys($original); $result = $user->updateWithKeys($original);
if (!$result) { if (!$result) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown on database error removing a registered SMS phone number. // TRANS: Server error thrown on database error removing a registered SMS phone number.
@ -556,7 +556,7 @@ class SmssettingsAction extends SettingsAction
$user->incomingemail = null; $user->incomingemail = null;
if (!$user->updateKeys($orig)) { if (!$user->updateWithKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error displayed when the user could not be updated in SMS settings. // TRANS: Server error displayed when the user could not be updated in SMS settings.
$this->serverError(_('Could not update user record.')); $this->serverError(_('Could not update user record.'));
@ -581,7 +581,7 @@ class SmssettingsAction extends SettingsAction
$user->incomingemail = mail_new_incoming_address(); $user->incomingemail = mail_new_incoming_address();
if (!$user->updateKeys($orig)) { if (!$user->updateWithKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error displayed when the user could not be updated in SMS settings. // TRANS: Server error displayed when the user could not be updated in SMS settings.
$this->serverError(_('Could not update user record.')); $this->serverError(_('Could not update user record.'));

View File

@ -322,13 +322,16 @@ abstract class Managed_DataObject extends Memcached_DataObject
} }
// 'update' won't write key columns, so we have to do it ourselves. // 'update' won't write key columns, so we have to do it ourselves.
public function updateKeys(&$orig) // This also automatically calls "update" _before_ it sets the keys.
public function updateWithKeys(&$orig)
{ {
if (!$orig instanceof $this) { if (!$orig instanceof $this) {
throw new ServerException('Tried updating a DataObject with a different class than itself.'); throw new ServerException('Tried updating a DataObject with a different class than itself.');
} }
$this->_connect(); // Update non-keys first, if necessary.
$this->update($orig);
$parts = array(); $parts = array();
foreach ($this->keys() as $k) { foreach ($this->keys() as $k) {
if (strcmp($this->$k, $orig->$k) != 0) { if (strcmp($this->$k, $orig->$k) != 0) {

View File

@ -838,7 +838,7 @@ class Profile extends Managed_DataObject
common_debug("Updating User ({$this->id}) nickname from {$dataObject->nickname} to {$this->nickname}"); common_debug("Updating User ({$this->id}) nickname from {$dataObject->nickname} to {$this->nickname}");
$origuser = clone($local); $origuser = clone($local);
$local->nickname = $this->nickname; $local->nickname = $this->nickname;
$result = $local->updateKeys($origuser); $result = $local->updateWithKeys($origuser);
if ($result === false) { if ($result === false) {
common_log_db_error($local, 'UPDATE', __FILE__); common_log_db_error($local, 'UPDATE', __FILE__);
// TRANS: Server error thrown when user profile settings could not be updated. // TRANS: Server error thrown when user profile settings could not be updated.

View File

@ -150,7 +150,7 @@ class ConfirmfirstemailAction extends Action
$this->user->email = $this->confirm->address; $this->user->email = $this->confirm->address;
$this->user->updateKeys($orig); $this->user->updateWithKeys($orig);
$this->user->emailChanged(); $this->user->emailChanged();

View File

@ -75,7 +75,7 @@ function clear_jabber($id)
} else { } else {
$original = clone($user); $original = clone($user);
$user->jabber = null; $user->jabber = null;
$result = $user->updateKeys($original); $result = $user->updateWithKeys($original);
} }
echo "\n"; echo "\n";
} else if (!$user) { } else if (!$user) {

View File

@ -69,7 +69,7 @@ try {
$user->email = $email; $user->email = $email;
if (!$user->updateKeys($orig)) { if (!$user->updateWithKeys($orig)) {
print "Failed!\n"; print "Failed!\n";
throw new Exception("Can't update email address."); throw new Exception("Can't update email address.");
} }