From 053ceab22ffc9d59962180b17c8c454606b48ec9 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 15 Mar 2023 09:31:49 -0400 Subject: [PATCH] Afform - Fix validateBySavedSearch --- .../core/Civi/Api4/Action/Afform/AbstractProcessor.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php b/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php index ff7105d45f..707c160afe 100644 --- a/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php +++ b/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php @@ -112,7 +112,7 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction { $api4 = $this->_formDataModel->getSecureApi4($entity['name']); $idField = CoreUtil::getIdFieldName($entity['type']); - if ($ids && !empty($entity['fields'][$idField]['saved_search'])) { + if ($ids && !empty($entity['fields'][$idField]['defn']['saved_search'])) { $ids = $this->validateBySavedSearch($entity, $ids); } if (!$ids) { @@ -144,6 +144,14 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction { } } + /** + * Validate that given id(s) are actually returned by the Autocomplete API + * + * @param $entity + * @param array $ids + * @return array + * @throws \CRM_Core_Exception + */ private function validateBySavedSearch($entity, array $ids) { $idField = CoreUtil::getIdFieldName($entity['type']); $fetched = civicrm_api4($entity['type'], 'autocomplete', [ -- 2.25.1