X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FSubscription.php;h=c532a3c3de67474b0ca7a638b4cdac939527bcd3;hb=5f7032dfee1fd202c14e76a9f8b37af35d584901;hp=6601bcd6fc10ce0b0678b17e5fd3392dc653b09c;hpb=c94d9994d898eddf654121ac45d455891954e830;p=quix0rs-gnu-social.git diff --git a/classes/Subscription.php b/classes/Subscription.php index 6601bcd6fc..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,7 +101,8 @@ class Subscription extends Managed_DataObject $sub = Subscription_queue::getSubQueue($subscriber, $other); } } else { - $sub = self::saveNew($subscriber->id, $other->id); + $otherUser = User::getKV('id', $other->id); + $sub = self::saveNew($subscriber, $other); $sub->notify(); self::blow('user:notices_with_friends:%d', $subscriber->id); @@ -150,17 +151,17 @@ class Subscription extends Managed_DataObject * Low-level subscription save. * Outside callers should use Subscription::start() */ - protected function saveNew($subscriber_id, $other_id) + protected static function saveNew(Profile $subscriber, Profile $other) { $sub = new Subscription(); - $sub->subscriber = $subscriber_id; - $sub->subscribed = $other_id; + $sub->subscriber = $subscriber->getID(); + $sub->subscribed = $other->getID(); $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); } }