Check for the existence of array key before using it in Protocol\ActivityPub\Transmitter

- Address https://github.com/friendica/friendica/issues/9252#issuecomment-739534960
This commit is contained in:
Hypolite Petovan 2020-12-08 10:08:49 -05:00
parent 99828c0fea
commit c7a2988454
2 changed files with 6 additions and 2 deletions

View File

@ -103,6 +103,10 @@ class Objects extends BaseModule
if (empty($parameters['activity']) && ($item['gravity'] != GRAVITY_ACTIVITY)) { if (empty($parameters['activity']) && ($item['gravity'] != GRAVITY_ACTIVITY)) {
$activity = ActivityPub\Transmitter::createActivityFromItem($item['id'], true); $activity = ActivityPub\Transmitter::createActivityFromItem($item['id'], true);
if (empty($activity['type'])) {
throw new HTTPException\NotFoundException();
}
$activity['type'] = $activity['type'] == 'Update' ? 'Create' : $activity['type']; $activity['type'] = $activity['type'] == 'Update' ? 'Create' : $activity['type'];
// Only display "Create" activity objects here, no reshares or anything else // Only display "Create" activity objects here, no reshares or anything else

View File

@ -1003,10 +1003,10 @@ class Transmitter
* @param integer $item_id * @param integer $item_id
* @param boolean $object_mode Is the activity item is used inside another object? * @param boolean $object_mode Is the activity item is used inside another object?
* *
* @return array of activity * @return false|array
* @throws \Exception * @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]); Logger::info('Fetching activity', ['item' => $item_id]);
$item = Item::selectFirst([], ['id' => $item_id, 'parent-network' => Protocol::NATIVE_SUPPORT]); $item = Item::selectFirst([], ['id' => $item_id, 'parent-network' => Protocol::NATIVE_SUPPORT]);