X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FActivityPub%2FProcessor.php;h=c1ab6bc1af58cdd5381f0e1584d33ebf57493951;hb=15535811752e5b3cb548dcbe1abe5d9c98c276b0;hp=bdf2e63f2e9b1c729a7a49af4daa6ae5cc61d667;hpb=a80a6bec74dc35b90697dfde6260206bfb128827;p=friendica.git diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index bdf2e63f2e..c1ab6bc1af 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -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 {