]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Processor.php
Merge remote-tracking branch 'upstream/develop' into fetch-item
[friendica.git] / src / Protocol / ActivityPub / Processor.php
index bdf2e63f2e9b1c729a7a49af4daa6ae5cc61d667..c1ab6bc1af58cdd5381f0e1584d33ebf57493951 100644 (file)
@@ -8,6 +8,7 @@ use Friendica\Database\DBA;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
 use Friendica\Core\Config;
+use Friendica\Core\PConfig;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
 use Friendica\Model\Contact;
@@ -425,6 +426,21 @@ class Processor
                                continue;
                        }
 
+                       if (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') || $isForum)) {
+                                       $skip = !Contact::isSharingByURL($activity['actor'], $receiver);
+                               }
+
+                               if ($skip) {
+                                       Logger::info('Skipping post', ['uid' => $receiver, 'url' => $item['uri']]);
+                                       continue;
+                               }
+
+                               Logger::info('Accepting post', ['uid' => $receiver, 'url' => $item['uri']]);
+                       }
+
                        if ($activity['object_type'] == 'as:Event') {
                                self::createEvent($activity, $item);
                        }
@@ -524,10 +540,6 @@ class Processor
         */
        public static function fetchMissingActivity($url, $child = [])
        {
-               if (Config::get('system', 'ostatus_full_threads')) {
-                       return;
-               }
-
                if (!empty($child['receiver'])) {
                        $uid = ActivityPub\Receiver::getFirstUserFromReceivers($child['receiver']);
                } else {