forked from GNUsocial/gnu-social
correctly handle remote re-subscribe
darcs-hash:20081215134824-84dde-de48c99b6cb45cc461125a7f8f382eb57de0bf28.gz
This commit is contained in:
parent
0860791f3f
commit
9ef3f7cee6
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user