Option to store untrusted entries
This commit is contained in:
parent
51cc1f679f
commit
5ab94ea921
2 changed files with 16 additions and 25 deletions
|
@ -273,6 +273,8 @@ class Receiver
|
|||
public static function prepareObjectData(array $activity, int $uid, bool $push, bool &$trust_source): array
|
||||
{
|
||||
$id = JsonLD::fetchElement($activity, '@id');
|
||||
$object_id = JsonLD::fetchElement($activity, 'as:object', '@id');
|
||||
|
||||
if (!empty($id) && !$trust_source) {
|
||||
$fetch_uid = $uid ?: self::getBestUserForActivity($activity);
|
||||
|
||||
|
@ -283,7 +285,13 @@ class Receiver
|
|||
if ($fetched_id == $id) {
|
||||
Logger::info('Activity had been fetched successfully', ['id' => $id]);
|
||||
$trust_source = true;
|
||||
$activity = $object;
|
||||
if ($id != $object_id) {
|
||||
$activity = $object;
|
||||
} else {
|
||||
Logger::info('Fetched data is the object instead of the activity', ['id' => $id]);
|
||||
unset($object['@context']);
|
||||
$activity['as:object'] = $object;
|
||||
}
|
||||
} else {
|
||||
Logger::info('Activity id is not equal', ['id' => $id, 'fetched' => $fetched_id]);
|
||||
}
|
||||
|
@ -556,7 +564,9 @@ class Receiver
|
|||
$object_data['object_activity'] = $activity;
|
||||
}
|
||||
|
||||
$object_data = Queue::add($object_data, $type, $uid, $http_signer, $push, $trust_source);
|
||||
if ($trust_source || DI::config()->get('debug', 'ap_inbox_store_untrusted')) {
|
||||
$object_data = Queue::add($object_data, $type, $uid, $http_signer, $push, $trust_source);
|
||||
}
|
||||
|
||||
if (!$trust_source) {
|
||||
Logger::info('Activity trust could not be achieved.', ['id' => $object_data['object_id'], 'type' => $type, 'signer' => $signer, 'actor' => $actor, 'attributedTo' => $attributed_to]);
|
||||
|
@ -1830,29 +1840,6 @@ class Receiver
|
|||
unset($object_data['receiver'][-1]);
|
||||
unset($object_data['reception_type'][-1]);
|
||||
|
||||
// Common object data:
|
||||
|
||||
// Unhandled
|
||||
// @context, type, actor, signature, mediaType, duration, replies, icon
|
||||
|
||||
// Also missing: (Defined in the standard, but currently unused)
|
||||
// audience, preview, endTime, startTime, image
|
||||
|
||||
// Data in Notes:
|
||||
|
||||
// Unhandled
|
||||
// contentMap, announcement_count, announcements, context_id, likes, like_count
|
||||
// inReplyToStatusId, shares, quoteUrl, statusnetConversationId
|
||||
|
||||
// Data in video:
|
||||
|
||||
// To-Do?
|
||||
// category, licence, language, commentsEnabled
|
||||
|
||||
// Unhandled
|
||||
// views, waitTranscoding, state, support, subtitleLanguage
|
||||
// likes, dislikes, shares, comments
|
||||
|
||||
return $object_data;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -666,6 +666,10 @@ return [
|
|||
// Logs every call to /inbox as a JSON file in Friendica's temporary directory
|
||||
'ap_inbox_log' => false,
|
||||
|
||||
// ap_inbox_store_untrusted (Boolean)
|
||||
// Store untrusted content in the inbox entries
|
||||
'ap_inbox_store_untrusted' => false,
|
||||
|
||||
// total_ap_delivery (Boolean)
|
||||
// Deliver via AP to every possible receiver and we suppress the delivery to these contacts with other protocols
|
||||
'total_ap_delivery' => false,
|
||||
|
|
Loading…
Reference in a new issue