diff --git a/lib/Activity/ProviderParser.php b/lib/Activity/ProviderParser.php index c667b3816..99af607b1 100644 --- a/lib/Activity/ProviderParser.php +++ b/lib/Activity/ProviderParser.php @@ -32,6 +32,7 @@ use OCA\Circles\Model\FederatedLink; use OCA\Circles\Model\Member; use OCA\Circles\Service\MiscService; +use OCA\Circles\Service\ConfigService; use OCP\Activity\IEvent; use OCP\Activity\IManager; use OCP\IL10N; @@ -39,7 +40,6 @@ class ProviderParser { - /** @var MiscService */ protected $miscService; @@ -52,13 +52,28 @@ class ProviderParser { /** @var IManager */ protected $activityManager; + /** @var ConfigService */ + protected $configService; + + /** + * @param IURLGenerator $url + * @param IManager $activityManager + * @param IL10N $l10n + * @param MiscService $miscService + * @param ConfigService $configService + */ public function __construct( - IURLGenerator $url, IManager $activityManager, IL10N $l10n, MiscService $miscService + IURLGenerator $url, + IManager $activityManager, + IL10N $l10n, + MiscService $miscService, + ConfigService $configService ) { $this->url = $url; $this->activityManager = $activityManager; $this->l10n = $l10n; $this->miscService = $miscService; + $this->configService = $configService; } diff --git a/lib/Activity/ProviderSubjectMember.php b/lib/Activity/ProviderSubjectMember.php index 486cb0543..37cf1ba06 100644 --- a/lib/Activity/ProviderSubjectMember.php +++ b/lib/Activity/ProviderSubjectMember.php @@ -68,7 +68,9 @@ public function parseSubjectMemberJoin(IEvent $event, Circle $circle, Member $me * @throws FakeException */ private function parseSubjectMemberJoinClosedCircle(IEvent $event, Circle $circle, Member $member) { - if ($circle->getType() !== Circle::CIRCLES_CLOSED) { + if ($circle->getType() !== Circle::CIRCLES_CLOSED || + $this->configService->isInvitationSkipped() + ) { return; } @@ -141,7 +143,9 @@ private function parseSubjectMemberAddNotLocalMember(IEvent $event, Circle $circ * @throws FakeException */ private function parseSubjectMemberAddClosedCircle(IEvent $event, Circle $circle, Member $member) { - if ($circle->getType() !== Circle::CIRCLES_CLOSED) { + if ($circle->getType() !== Circle::CIRCLES_CLOSED || + $this->configService->isInvitationSkipped() + ) { return; } diff --git a/lib/Model/Member.php b/lib/Model/Member.php index af6f8c1f9..03c2612b3 100644 --- a/lib/Model/Member.php +++ b/lib/Model/Member.php @@ -63,6 +63,7 @@ public function inviteToCircle($circleType) { public function joinCircle($circleType) { switch ($circleType) { + case Circle::CIRCLES_PERSONAL: case Circle::CIRCLES_SECRET: case Circle::CIRCLES_PUBLIC: return $this->addMemberToCircle(); @@ -264,5 +265,3 @@ public function hasToBeInviteAble() { } } - -