Fix for CRM-10331 group_id parameter ignored in API for GroupContact
authorRohan Katkar <rohan.katkar@webaccessglobal.com>
Tue, 23 Dec 2014 06:38:39 +0000 (12:08 +0530)
committerRohan Katkar <rohan.katkar@webaccessglobal.com>
Tue, 23 Dec 2014 06:38:39 +0000 (12:08 +0530)
CRM/Contact/BAO/GroupContact.php
api/v3/GroupContact.php

index 0c1425ca060e353c580e69c09007cafd67373216..b7d75d17cfc8a80f6a3a2da9af9004a70f0e9ff0 100644 (file)
@@ -334,7 +334,8 @@ class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
     $count            = FALSE,
     $ignorePermission = FALSE,
     $onlyPublicGroups = FALSE,
-    $excludeHidden    = TRUE
+    $excludeHidden    = TRUE,
+    $groupId          = NULL
   ) {
     if ($count) {
       $select = 'SELECT count(DISTINCT civicrm_group_contact.id)';
@@ -362,6 +363,10 @@ class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
       $where .= ' AND civicrm_group_contact.status = %2';
       $params[2] = array($status, 'String');
     }
+    if (!empty($groupId)) {
+      $where .= " AND civicrm_group.id = %3 ";
+      $params[3] = array($groupId, 'Integer');
+    }
     $tables = array(
       'civicrm_group_contact' => 1,
       'civicrm_group' => 1,
index 83282fde0e2913c622cba2b8056bdcd1db1a78e2..003baac60085a8a27b808e05d710bd0c4999bb43 100644 (file)
@@ -62,7 +62,8 @@ function civicrm_api3_group_contact_get($params) {
   }
   $status = CRM_Utils_Array::value('status', $params, 'Added');
 
-  $values = &CRM_Contact_BAO_GroupContact::getContactGroup($params['contact_id'], $status, NULL, FALSE, TRUE);
+  $groupId = CRM_Utils_Array::value('group_id', $params);
+  $values = &CRM_Contact_BAO_GroupContact::getContactGroup($params['contact_id'], $status, NULL, FALSE, TRUE, FALSE, TRUE, $groupId);
   return civicrm_api3_create_success($values, $params);
 }