/** * Subscribe $user to a given $object * * @param User $user * @param ProjectObject $object * @return boolean */ function subscribe($user, $object) { if (!$object->can_have_subscribers) { return new InvalidParamError('$object', $object, '$object does not support subscribers', true); } // if if (Subscriptions::isSubscribed($user, $object, false)) { return true; } // if $subscription = new Subscription(); $subscription->setUserId($user->getId()); $subscription->setParentId($object->getId()); $save = $subscription->save(); if ($save && !is_error($save)) { Subscriptions::dropUserCache($user); return true; } // if return $save; }