diff options
Diffstat (limited to 'classes/Foreign_user.php')
-rw-r--r-- | classes/Foreign_user.php | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/classes/Foreign_user.php b/classes/Foreign_user.php index d70923caa..027fae69d 100644 --- a/classes/Foreign_user.php +++ b/classes/Foreign_user.php @@ -39,4 +39,32 @@ class Foreign_user extends Memcached_DataObject return NULL; } + function updateKeys(&$orig) { + $parts = array(); + foreach (array('id', 'service', 'uri', 'nickname') as $k) { + if (strcmp($this->$k, $orig->$k) != 0) { + $parts[] = $k . ' = ' . $this->_quote($this->$k); + } + } + if (count($parts) == 0) { + # No changes + return true; + } + $toupdate = implode(', ', $parts); + + $table = $this->tableName(); + if(common_config('db','quote_identifiers')) { + $table = '"' . $table . '"'; + } + $qry = 'UPDATE ' . $table . ' SET ' . $toupdate . + ' WHERE id = ' . $this->id; + $orig->decache(); + $result = $this->query($qry); + if ($result) { + $this->encache(); + } + return $result; + } + + } |