X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FSubscription.php;h=c532a3c3de67474b0ca7a638b4cdac939527bcd3;hb=5f7032dfee1fd202c14e76a9f8b37af35d584901;hp=314a597f55e681e08a55e1adc26a25327384c523;hpb=5a2d7601770a13f8cdb31285f271397ecf675be1;p=quix0rs-gnu-social.git diff --git a/classes/Subscription.php b/classes/Subscription.php index 314a597f55..c532a3c3de 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -92,8 +92,8 @@ class Subscription extends Managed_DataObject } if (Event::handle('StartSubscribe', array($subscriber, $other))) { - $otherUser = User::getKV('id', $other->id); - if ($otherUser instanceof User && $otherUser->subscribe_policy == User::SUBSCRIBE_POLICY_MODERATE && !$force) { + // unless subscription is forced, the user policy for subscription approvals is tested + if (!$force && $other->requiresSubscriptionApproval($subscriber)) { try { $sub = Subscription_queue::saveNew($subscriber, $other); $sub->notify(); @@ -101,6 +101,7 @@ class Subscription extends Managed_DataObject $sub = Subscription_queue::getSubQueue($subscriber, $other); } } else { + $otherUser = User::getKV('id', $other->id); $sub = self::saveNew($subscriber, $other); $sub->notify(); @@ -159,8 +160,8 @@ class Subscription extends Managed_DataObject $sub->jabber = 1; $sub->sms = 1; $sub->created = common_sql_now(); - $sub->uri = self::newURI($sub->subscriber, - $sub->subscribed, + $sub->uri = self::newUri($subscriber, + $other, $sub->created); $result = $sub->insert(); @@ -267,18 +268,20 @@ class Subscription extends Managed_DataObject return $sub; } - function asActivity() + public function getSubscriber() { - $subscriber = Profile::getKV('id', $this->subscriber); - $subscribed = Profile::getKV('id', $this->subscribed); + return Profile::getByID($this->subscriber); + } - if (!$subscriber instanceof Profile) { - throw new NoProfileException($this->subscriber); - } + public function getSubscribed() + { + return Profile::getByID($this->subscribed); + } - if (!$subscribed instanceof Profile) { - throw new NoProfileException($this->subscribed); - } + function asActivity() + { + $subscriber = $this->getSubscriber(); + $subscribed = $this->getSubscribed(); $act = new Activity(); @@ -286,7 +289,7 @@ class Subscription extends Managed_DataObject // XXX: rationalize this with the URL - $act->id = $this->getURI(); + $act->id = $this->getUri(); $act->time = strtotime($this->created); // TRANS: Activity title when subscribing to another person. @@ -431,20 +434,8 @@ class Subscription extends Managed_DataObject return parent::update($dataObject); } - function getURI() - { - if (!empty($this->uri)) { - return $this->uri; - } else { - return self::newURI($this->subscriber, $this->subscribed, $this->created); - } - } - - static function newURI($subscriber_id, $subscribed_id, $created) + public function getUri() { - return TagURI::mint('follow:%d:%d:%s', - $subscriber_id, - $subscribed_id, - common_date_iso8601($created)); + return $this->uri ?: self::newUri($this->getSubscriber(), $this->getSubscribed(), $this->created); } }