diff options
author | Evan Prodromou <evan@prodromou.name> | 2008-12-15 08:48:24 -0500 |
---|---|---|
committer | Evan Prodromou <evan@prodromou.name> | 2008-12-15 08:48:24 -0500 |
commit | 9ef3f7cee601c80d93924eec2216a36bcbce73ef (patch) | |
tree | 67861b980cae3c29337404755ec5119b95efc94f /actions/finishremotesubscribe.php | |
parent | 0860791f3fedf4a2862f83687d6469c7d21a3de5 (diff) |
correctly handle remote re-subscribe0.6.4
darcs-hash:20081215134824-84dde-de48c99b6cb45cc461125a7f8f382eb57de0bf28.gz
Diffstat (limited to 'actions/finishremotesubscribe.php')
-rw-r--r-- | actions/finishremotesubscribe.php | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/actions/finishremotesubscribe.php b/actions/finishremotesubscribe.php index 97f972043..58040683f 100644 --- a/actions/finishremotesubscribe.php +++ b/actions/finishremotesubscribe.php @@ -188,13 +188,31 @@ class FinishremotesubscribeAction extends Action { } $sub = new Subscription(); + $sub->subscriber = $remote->id; $sub->subscribed = $user->id; + + $sub_exists = false; + + if ($sub->find(true)) { + $sub_exists = true; + $orig_sub = clone($sub); + } else { + $sub_exists = false; + $sub->created = DB_DataObject_Cast::dateTime(); # current time + } + $sub->token = $newtok; $sub->secret = $newsecret; - $sub->created = DB_DataObject_Cast::dateTime(); # current time - if (!$sub->insert()) { + if ($sub_exists) { + $result = $sub->update($orig_sub); + } else { + $result = $sub->insert(); + } + + if (!$result) { + common_log_db_error($sub, ($sub_exists) ? 'UPDATE' : 'INSERT', __FILE__); common_user_error(_('Couldn\'t insert new subscription.')); return; } |