From 749ab6a356a66832cfecf717a6c1ad6e74606fae Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Sat, 11 Mar 2023 09:34:52 +0100 Subject: [PATCH] BasketSnapshotFieldResolver: dedicated exception.. ...for invalid baskets, referencing missing fields --- .../Automation/BasketSnapshotFieldResolver.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php b/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php index b5b63ae5..b047e17e 100644 --- a/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php +++ b/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php @@ -5,6 +5,7 @@ namespace Icinga\Module\Director\DirectorObject\Automation; use Icinga\Module\Director\Db; use Icinga\Module\Director\Objects\DirectorDatafield; use Icinga\Module\Director\Objects\IcingaObject; +use InvalidArgumentException; class BasketSnapshotFieldResolver { @@ -90,6 +91,11 @@ class BasketSnapshotFieldResolver $existingFields[(int) $mapping->datafield_id] = $mapping; } foreach ($object->fields as $field) { + if (! isset($fieldMap[(int) $field->datafield_id])) { + throw new InvalidArgumentException( + 'Basket Snapshot contains invalid field reference: ' . $field->datafield_id + ); + } $id = $fieldMap[(int) $field->datafield_id]; if (isset($existingFields[$id])) { unset($existingFields[$id]);