]> git.mxchange.org Git - friendica.git/commitdiff
Check for the existence of array key before using it in Protocol\ActivityPub\Transmitter
authorHypolite Petovan <hypolite@mrpetovan.com>
Tue, 8 Dec 2020 15:08:49 +0000 (10:08 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Tue, 8 Dec 2020 15:08:49 +0000 (10:08 -0500)
- Address https://github.com/friendica/friendica/issues/9252#issuecomment-739534960

src/Module/Objects.php
src/Protocol/ActivityPub/Transmitter.php

index 1658507d5075dde5b925111a1fc5922a23b63529..cbe2e53fe044efdee01dbba2adeea65909f1e9dd 100644 (file)
@@ -103,6 +103,10 @@ class Objects extends BaseModule
 
                if (empty($parameters['activity']) && ($item['gravity'] != GRAVITY_ACTIVITY)) {
                        $activity = ActivityPub\Transmitter::createActivityFromItem($item['id'], true);
+                       if (empty($activity['type'])) {
+                               throw new HTTPException\NotFoundException();
+                       }
+
                        $activity['type'] = $activity['type'] == 'Update' ? 'Create' : $activity['type'];
 
                        // Only display "Create" activity objects here, no reshares or anything else
index 7f5f51c38aedcde640271d4f8bfba59250606102..c1443bc3318924ce2285681784b28296c04e4837 100644 (file)
@@ -1003,10 +1003,10 @@ class Transmitter
         * @param integer $item_id
         * @param boolean $object_mode Is the activity item is used inside another object?
         *
-        * @return array of activity
+        * @return false|array
         * @throws \Exception
         */
-       public static function createActivityFromItem($item_id, $object_mode = false)
+       public static function createActivityFromItem(int $item_id, bool $object_mode = false)
        {
                Logger::info('Fetching activity', ['item' => $item_id]);
                $item = Item::selectFirst([], ['id' => $item_id, 'parent-network' => Protocol::NATIVE_SUPPORT]);