diff --git a/components/Notification/Notification.php b/components/Notification/Notification.php index 6bfe7fe563..8c0991c6e5 100644 --- a/components/Notification/Notification.php +++ b/components/Notification/Notification.php @@ -36,7 +36,7 @@ class Notification extends Component */ public function onNewNotification(Actor $sender, Activity $activity, array $ids_already_known = [], ?string $reason = null): bool { - $targets = $activity->getNotificationTargets($ids_already_known); + $targets = $activity->getNotificationTargets($ids_already_known, sender_id: $sender->getId()); $this->notify($sender, $activity, $targets, $reason); return Event::next; diff --git a/src/Entity/Activity.php b/src/Entity/Activity.php index 938633c0c2..d83e49d763 100644 --- a/src/Entity/Activity.php +++ b/src/Entity/Activity.php @@ -157,7 +157,7 @@ class Activity extends Entity * * @return array of Actors */ - public function getNotificationTargets(array $ids_already_known = []): array + public function getNotificationTargets(array $ids_already_known = [], ?int $sender_id = null): array { $target_ids = []; @@ -179,6 +179,9 @@ class Activity extends Entity if (array_key_exists('object', $ids_already_known)) { array_push($target_ids, ...$ids_already_known['object']); } else { + if (!is_null($author = $this->getObject()?->getActorId()) && $author !== $sender_id) { + $target_ids[] = $this->getObject()->getActorId(); + } array_push($target_ids, ...$this->getObject()->getNotificationTargets($ids_already_known)); }