From 3aa0c06e2794e5cd5fcae5715a19d2f861212bfb Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 31 Jul 2024 10:46:19 +0200 Subject: [PATCH] fix(notifications): Don't trigger invite notifications for system groups Signed-off-by: Joas Schilling --- .../Notifications/RequestingMember.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/Listeners/Notifications/RequestingMember.php b/lib/Listeners/Notifications/RequestingMember.php index 6cd1ec03d..3caf1a1a9 100644 --- a/lib/Listeners/Notifications/RequestingMember.php +++ b/lib/Listeners/Notifications/RequestingMember.php @@ -36,7 +36,7 @@ use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; -/** @template-implements IEventListener */ +/** @template-implements IEventListener */ class RequestingMember implements IEventListener { public function __construct( private NotificationService $notificationService, @@ -44,17 +44,26 @@ public function __construct( } public function handle(Event $event): void { - if (!$event instanceof RequestingCircleMemberEvent && !$event instanceof AddingCircleMemberEvent) { - return; + if ($event instanceof RequestingCircleMemberEvent) { + $this->handleRequestingCircleMemberEvent($event); + } elseif ($event instanceof AddingCircleMemberEvent) { + $this->handleAddingCircleMemberEvent($event); } + } + public function handleRequestingCircleMemberEvent(RequestingCircleMemberEvent $event): void { $member = $event->getMember(); if ($event->getType() === CircleGenericEvent::REQUESTED) { $this->notificationService->notificationRequested($member); - } elseif ($event->getType() === CircleGenericEvent::JOINED && $event->getCircle()->isConfig(Circle::CFG_INVITE)) { - $this->notificationService->markInvitationAsProcessed($member); } else { $this->notificationService->notificationInvited($member); } } + + public function handleAddingCircleMemberEvent(AddingCircleMemberEvent $event): void { + if ($event->getType() === CircleGenericEvent::JOINED && $event->getCircle()->isConfig(Circle::CFG_INVITE)) { + $member = $event->getMember(); + $this->notificationService->markInvitationAsProcessed($member); + } + } }