diff --git a/src/Model/Item.php b/src/Model/Item.php index 63cd31c5a2..a9b1435664 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -1472,6 +1472,12 @@ class Item return false; } + // We only have to apply restrictions if the post originates from our server or is federated. + // Every other time we can trust the remote system. + if (!in_array($item['network'], Protocol::FEDERATED) && !$item['origin']) { + return false; + } + if (($restrictions & self::CANT_REPLY) && ($item['verb'] == Activity::POST)) { return true; } @@ -1796,7 +1802,7 @@ class Item } } - if (($source_uid == 0) && (($item['private'] == self::PRIVATE) || !in_array($item['network'], Protocol::FEDERATED))) { + if (($source_uid == 0) && (($item['private'] == self::PRIVATE) || !in_array($item['network'], array_merge(Protocol::FEDERATED, [Protocol::BLUESKY])))) { Logger::notice('Item is private or not from a federated network. It will not be stored for the user.', ['uri-id' => $uri_id, 'uid' => $uid, 'private' => $item['private'], 'network' => $item['network']]); return 0; }