Afform - Fix validateBySavedSearch
authorColeman Watts <coleman@civicrm.org>
Wed, 15 Mar 2023 13:31:49 +0000 (09:31 -0400)
committerColeman Watts <coleman@civicrm.org>
Wed, 15 Mar 2023 13:31:49 +0000 (09:31 -0400)
ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php

index ff7105d45f74a21d766edfaef61ec80e94f8c4d5..707c160afe0b5373a5604fad8bd2bf5de3c2c48a 100644 (file)
@@ -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', [