X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fsubscribe.php;h=1da061819baf835b90d10610127e780fad3ca2a2;hb=c6f89b21748948fde902904f6ac9ce9afa026b84;hp=3837915d538cd1e09ab237245dfd0689d2af1c0e;hpb=6a1b0e2375a1a267507e655c4b56c9a512e80481;p=quix0rs-gnu-social.git diff --git a/actions/subscribe.php b/actions/subscribe.php index 3837915d53..1da061819b 100644 --- a/actions/subscribe.php +++ b/actions/subscribe.php @@ -1,7 +1,7 @@ clientError(_('This action only accepts POST requests.')); - return false; } // CSRF protection @@ -86,7 +84,6 @@ class SubscribeAction extends Action // TRANS: Client error displayed when the session token is not okay. $this->clientError(_('There was a problem with your session token.'. ' Try again, please.')); - return false; } // Only for logged-in users @@ -94,33 +91,19 @@ class SubscribeAction extends Action $this->user = common_current_user(); if (empty($this->user)) { - // TRANS: Client error displayed trying to subscribe when not logged in. + // TRANS: Error message displayed when trying to perform an action that requires a logged in user. $this->clientError(_('Not logged in.')); - return false; } // Profile to subscribe to $other_id = $this->arg('subscribeto'); - $this->other = Profile::staticGet('id', $other_id); + $this->other = Profile::getKV('id', $other_id); if (empty($this->other)) { // TRANS: Client error displayed trying to subscribe to a non-existing profile. $this->clientError(_('No such profile.')); - return false; - } - - // OMB 0.1 doesn't have a mechanism for local-server- - // originated subscription. - - $omb01 = Remote_profile::staticGet('id', $other_id); - - if (!empty($omb01)) { - // TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile. - $this->clientError(_('You cannot subscribe to an OMB 0.1'. - ' remote profile with this action.')); - return false; } return true; @@ -135,12 +118,12 @@ class SubscribeAction extends Action * * @return void */ - function handle($args) + function handle(array $args=array()) { // Throws exception on error - Subscription::start($this->user->getProfile(), - $this->other); + $sub = Subscription::ensureStart($this->user->getProfile(), + $this->other); if ($this->boolean('ajax')) { $this->startHTML('text/xml;charset=utf-8'); @@ -149,10 +132,14 @@ class SubscribeAction extends Action $this->element('title', null, _('Subscribed')); $this->elementEnd('head'); $this->elementStart('body'); - $unsubscribe = new UnsubscribeForm($this, $this->other); - $unsubscribe->show(); + if ($sub instanceof Subscription) { + $form = new UnsubscribeForm($this, $this->other); + } else { + $form = new CancelSubscriptionForm($this, $this->other); + } + $form->show(); $this->elementEnd('body'); - $this->elementEnd('html'); + $this->endHTML(); } else { $url = common_local_url('subscriptions', array('nickname' => $this->user->nickname));