From 51c4748eb1495c6e49859cf98b8722ec47ee76c4 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Wed, 22 Feb 2017 08:17:17 +1100 Subject: [PATCH] CRM-20144 move special handling to API layer from BAO remove accidentally generated files --- CRM/Contact/BAO/Query.php | 12 ------------ api/v3/Contact.php | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/CRM/Contact/BAO/Query.php b/CRM/Contact/BAO/Query.php index fe4a03b77b..e4c08ed9b7 100644 --- a/CRM/Contact/BAO/Query.php +++ b/CRM/Contact/BAO/Query.php @@ -2942,18 +2942,6 @@ class CRM_Contact_BAO_Query { $regularGroupIDs = $smartGroupIDs = array(); foreach ((array) $value as $id) { - if (!is_numeric($id)) { - $check = civicrm_api3('group', 'get', array('name' => $id, 'options' => array('limit' => 1), 'sequential' => 1)); - if (!empty($check['values'])) { - $id = $check['values'][0]['id']; - } - else { - $check = civicrm_api3('group', 'get', array('title' => $id, 'options' => array('limit' => 1), 'sequential' => 1)); - if (!empty($check['values'])) { - $id = $check['values'][0]['id']; - } - } - } if (CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $id, 'saved_search_id')) { $smartGroupIDs[] = $id; } diff --git a/api/v3/Contact.php b/api/v3/Contact.php index af3028d59c..7dacabf067 100644 --- a/api/v3/Contact.php +++ b/api/v3/Contact.php @@ -376,6 +376,29 @@ function _civicrm_api3_contact_get_supportanomalies(&$params, &$options) { unset($params['filter.group_id']); $options['input_params']['group'] = $groups; } + if (isset($params['group'])) { + $groups = $params['group']; + $allGroups = CRM_Core_PseudoConstant::group(); + if (is_array($groups) && in_array(key($groups), CRM_Core_DAO::acceptedSQLOperators(), TRUE)) { + $groupsArray = $groups[key($groups)]; + foreach ($groupsArray as $group => &$ignore) { + if (!is_numeric($group) && array_search($group, $allGroups)) { + $group = array_search($group, $allGroups); + } + } + } + elseif (is_array($groups)) { + foreach ($groups as $k => &$group) { + if (array_search($group, $allGroups)) { + $group = array_search($group, $allGroups); + } + } + } + elseif (!is_numeric($groups) && array_search($groups, $allGroups)) { + $groups = array_search($groups, $allGroups); + } + $params['group'] = $groups; + } } /** -- 2.25.1