diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 2afe91d13..0af28a740 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2947,7 +2947,7 @@ class Contact */ public static function isForum($contactid) { - $fields = ['forum', 'prv']; + $fields = ['contact-type', 'forum', 'prv']; $condition = ['id' => $contactid]; $contact = DBA::selectFirst('contact', $fields, $condition); if (!DBA::isResult($contact)) { @@ -2955,7 +2955,7 @@ class Contact } // Is it a forum? - return ($contact['forum'] || $contact['prv']); + return (($contact['contact-type'] == self::TYPE_COMMUNITY) || $contact['forum'] || $contact['prv']); } /** diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 4a9dc352d..d944c73a0 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -619,7 +619,7 @@ class Processor continue; } - if (DI::pConfig()->get($receiver, 'system', 'accept_only_sharer', false) && ($receiver != 0) && ($item['gravity'] == GRAVITY_PARENT)) { + if (!Contact::isForum($receiver) && DI::pConfig()->get($receiver, 'system', 'accept_only_sharer', false) && ($receiver != 0) && ($item['gravity'] == GRAVITY_PARENT)) { $skip = !Contact::isSharingByURL($activity['author'], $receiver); if ($skip && (($activity['type'] == 'as:Announce') || ($item['isForum'] ?? false))) {