summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
Diffstat (limited to 'actions')
-rw-r--r--actions/subscribe.php18
1 files changed, 10 insertions, 8 deletions
diff --git a/actions/subscribe.php b/actions/subscribe.php
index 45dffa62b..f37095c1c 100644
--- a/actions/subscribe.php
+++ b/actions/subscribe.php
@@ -49,19 +49,21 @@ class SubscribeAction extends Action {
return;
}
- $sub = new Subscription();
- $sub->subscriber = $user->id;
- $sub->subscribed = $other->id;
-
- $sub->created = DB_DataObject_Cast::dateTime(); # current time
-
- if (!$sub->insert()) {
- common_server_error(_('Couldn\'t create subscription.'));
+ if (!$user->subscribeTo($other)) {
+ $this->server_error(_('Could not subscribe.'));
return;
}
$this->notify($other, $user);
+ if ($other->autosubscribe && !$other->isSubscribed($user)) {
+ if (!$other->subscribeTo($user)) {
+ $this->server_error(_('Could not subscribe other to you.'));
+ return;
+ }
+ $this->notify($user, $other);
+ }
+
common_redirect(common_local_url('subscriptions', array('nickname' =>
$user->nickname)));
}