$groups = self::group($type, $contactID, $tableName, $allGroups, $includedGroups);
$cache[$key] = $groups;
}
+ if (empty($groups)) {
+ return FALSE;
+ }
return in_array($groupID, $groups) ? TRUE : FALSE;
}
*/
function civicrm_api3_group_get($params) {
$options = _civicrm_api3_get_options_from_params($params, TRUE, 'Group', 'get');
- if (empty($options['return']) || !in_array('member_count', $options['return'])) {
- return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, TRUE, 'Group');
- }
-
$groups = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE, 'Group');
foreach ($groups as $id => $group) {
- $groups[$id]['member_count'] = CRM_Contact_BAO_Group::memberCount($id);
+ $permission = CRM_Contact_BAO_Group::checkPermission($group['id']);
+ if (!$permission) {
+ unset($groups[$id]);
+ }
+ else if (!empty($options['return']) && in_array('member_count', $options['return'])) {
+ $groups[$id]['member_count'] = CRM_Contact_BAO_Group::memberCount($id);
+ }
}
+ $groups = array_values($groups);
return civicrm_api3_create_success($groups, $params, 'Group', 'get');
}