]> git.mxchange.org Git - friendica.git/commitdiff
Issue 7315: Set the forum's contact id for forum posts
authorMichael <heluecht@pirati.ca>
Tue, 16 Jul 2019 05:07:26 +0000 (05:07 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 16 Jul 2019 05:07:26 +0000 (05:07 +0000)
src/Protocol/ActivityPub/Processor.php

index 6ba0c8f8486179110fd7f2a02432aca50ef864d7..f2aae6af2d352547f0d9b58e5425bdc560fb7c1d 100644 (file)
@@ -373,6 +373,8 @@ class Processor
                $item['owner-link'] = $activity['actor'];
                $item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true);
 
+               $isForum = false;
+
                if (!empty($activity['thread-completion'])) {
                        // Store the original actor in the "causer" fields to enable the check for ignored or blocked contacts
                        $item['causer-link'] = $item['owner-link'];
@@ -381,6 +383,9 @@ class Processor
                        Logger::info('Ignoring actor because of thread completion.', ['actor' => $item['owner-link']]);
                        $item['owner-link'] = $item['author-link'];
                        $item['owner-id'] = $item['author-id'];
+               } else {
+                       $actor = APContact::getByURL($item['owner-link'], false);
+                       $isForum = ($actor['type'] == 'Group');
                }
 
                $item['uri'] = $activity['id'];
@@ -402,7 +407,14 @@ class Processor
 
                foreach ($activity['receiver'] as $receiver) {
                        $item['uid'] = $receiver;
-                       $item['contact-id'] = Contact::getIdForURL($activity['author'], $receiver, true);
+
+                       if ($isForum) {
+                               $item['contact-id'] = Contact::getIdForURL($activity['actor'], $receiver, true);
+                       }
+
+                       if (empty($item['contact-id'])) {
+                               $item['contact-id'] = Contact::getIdForURL($activity['author'], $receiver, true);
+                       }
 
                        if (($receiver != 0) && empty($item['contact-id'])) {
                                $item['contact-id'] = Contact::getIdForURL($activity['author'], 0, true);