From aaac0e0bd51fc2af20f9ec70b61d28c6ccfe6e9f Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Sat, 3 May 2014 07:39:00 -0700 Subject: [PATCH] CRM-14109 fix group page acl tests --- CRM/Contact/BAO/Group.php | 17 +- tests/phpunit/CRM/Group/Page/AjaxTest.php | 207 ++++++++------------ tests/phpunit/CiviTest/CiviUnitTestCase.php | 5 +- 3 files changed, 95 insertions(+), 134 deletions(-) diff --git a/CRM/Contact/BAO/Group.php b/CRM/Contact/BAO/Group.php index 21c5718bd5..18c848ada4 100644 --- a/CRM/Contact/BAO/Group.php +++ b/CRM/Contact/BAO/Group.php @@ -155,7 +155,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { * Get the count of a members in a group with the specific status * * @param int $id group id - * @param \enum|string $status status of members in group + * @param enum|string $status status of members in group * * @param bool $countChildGroups * @@ -615,18 +615,23 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { * * @internal param $clauses * + * @param bool $force + * * @return array */ - public static function getPermissionClause() { - static $clause; + public static function getPermissionClause($force = FALSE) { + static $clause = 1; static $retrieved = FALSE; - if (!$retrieved && !CRM_Core_Permission::check('view all contacts')) { + if ((!$retrieved || $force ) && !CRM_Core_Permission::check('view all contacts') && !CRM_Core_Permission::check('edit all contacts')) { //get the allowed groups for the current user $groups = CRM_ACL_API::group(CRM_ACL_API::VIEW); if (!empty($groups)) { $groupList = implode(', ', array_values($groups)); $clause = "groups.id IN ( $groupList ) "; } + else { + $clause = '1 = 0'; + } } $retrieved = TRUE; return $clause; @@ -1194,9 +1199,7 @@ WHERE {$whereClause}"; $clauses[] = 'groups.is_hidden = 0'; } ; - if(($permissionClause = self::getPermissionClause($clauses)) == TRUE) { - $clauses[] = $permissionClause; - } + $clauses[] = self::getPermissionClause(); return implode(' AND ', $clauses); diff --git a/tests/phpunit/CRM/Group/Page/AjaxTest.php b/tests/phpunit/CRM/Group/Page/AjaxTest.php index 50ae334f1e..67d0b42f00 100644 --- a/tests/phpunit/CRM/Group/Page/AjaxTest.php +++ b/tests/phpunit/CRM/Group/Page/AjaxTest.php @@ -15,6 +15,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { protected $hookClass; + protected $_params = array(); + function get_info() { return array( 'name' => 'Contact BAOs', @@ -51,12 +53,31 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { } /** - * retrieve groups as 'view all contacts' + * @param $permission */ - function testGroupListViewAllContacts() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); + function setPermissionAndRequest($permission) { + CRM_Core_Config::singleton()->userPermissionClass->permissions = array($permission); + CRM_Contact_BAO_Group::getPermissionClause(TRUE); + global $_REQUEST; + $_REQUEST = $this->_params; + } + + /** + * @param $permission + * @param $hook + */ + function setHookAndRequest($permission, $hook) { + CRM_Core_Config::singleton()->userPermissionClass->permissions = array($permission); + $this->hookClass->setHook('civicrm_aclGroup', array($this, $hook)); + CRM_Contact_BAO_Group::getPermissionClause(TRUE); global $_REQUEST; $_REQUEST = $this->_params; + } + /** + * retrieve groups as 'view all contacts' + */ + function testGroupListViewAllContacts() { + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, $total); $this->assertEquals('pick-me-active', $groups[2]['group_name']); @@ -69,10 +90,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * (if you do set default it is enabled only) */ function testGroupListViewAllContactsFoundTitle() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'p'; + $this->_params['title'] = 'p'; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, $total); $this->assertEquals('pick-me-active', $groups[2]['group_name']); @@ -83,10 +102,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListViewAllContactsNotFoundTitle() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'z'; + $this->_params['title'] = 'z'; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, $total); } @@ -94,9 +111,7 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'edit all contacts' */ function testGroupListEditAllContacts() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; + $this->setPermissionAndRequest('edit all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, $total); $this->assertEquals('pick-me-active', $groups[2]['group_name']); @@ -107,10 +122,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListViewAllContactsEnabled() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 1; + $this->_params['status'] = 1; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, $total); $this->assertEquals('pick-me-active', $groups[2]['group_name']); @@ -121,10 +134,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListViewAllContactsDisabled() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; + $this->_params['status'] = 2; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, $total); $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); @@ -135,11 +146,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListViewAllContactsDisabledNotFoundTitle() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; - $_REQUEST['title'] = 'n'; + $this->_params['status'] = 2; + $this->_params['title'] = 'n'; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, $total); $this->assertEquals('not-me-disabled', $groups[3]['group_name']); @@ -149,11 +158,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListViewAllContactsDisabledFoundTitle() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; - $_REQUEST['title'] = 'p'; + $this->_params['status'] = 2; + $this->_params['title'] = 'p'; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, $total); $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); @@ -163,10 +170,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListViewAllContactsAll() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 3; + $this->_params['status'] = 3; + $this->setPermissionAndRequest('view all contacts'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(4, $total); $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); @@ -180,9 +185,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListAccessCiviCRM() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - global $_REQUEST; - $_REQUEST = $this->_params; + $this->setPermissionAndRequest('access CiviCRM'); + $permissionClause = CRM_Contact_BAO_Group::getPermissionClause(TRUE); + $this->assertEquals('1 = 0', $permissionClause); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups)); $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); @@ -191,10 +196,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListAccessCiviCRMEnabled() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 1; + $this->_params['status'] = 1; + $this->setPermissionAndRequest('access CiviCRM'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups)); $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); @@ -203,10 +206,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListAccessCiviCRMDisabled() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; + $this->_params['status'] = 2; + $this->setPermissionAndRequest('access CiviCRM'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups)); $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); @@ -216,10 +217,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListAccessCiviCRMAll() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; + $this->_params['status'] = 2; + $this->setPermissionAndRequest('access CiviCRM'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups)); $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); @@ -229,10 +228,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListAccessCiviCRMFound() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'p'; + $this->_params['title'] = 'p'; + $this->setPermissionAndRequest('access CiviCRM'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups)); $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); @@ -242,10 +239,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * retrieve groups as 'view all contacts' */ function testGroupListAccessCiviCRMNotFound() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'z'; + $this->_params['title'] = 'z'; + $this->setPermissionAndRequest('access CiviCRM'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups)); $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); @@ -253,8 +248,6 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { function testTraditionalACL () { $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -262,20 +255,16 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { } function testTraditionalACLNotFoundTitle () { + $this->_params['title'] = 'n'; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'n'; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(0, $total, 'Total needs to be set correctly'); } function testTraditionalACLFoundTitle () { + $this->_params['title'] = 'p'; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'p'; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(2, $total, 'Total needs to be set correctly'); @@ -284,10 +273,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { } function testTraditionalACLDisabled () { + $this->_params['status'] = 2; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -295,11 +282,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { } function testTraditionalACLDisabledFoundTitle () { + $this->_params['status'] = 2; + $this->_params['title'] = 'p'; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; - $_REQUEST['title'] = 'p'; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -307,21 +292,17 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { } function testTraditionalACLDisabledNotFoundTitle () { + $this->_params['status'] = 2; + $this->_params['title'] = 'n'; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; - $_REQUEST['title'] = 'n'; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(0, $total, 'Total needs to be set correctly'); } function testTraditionalACLEnabled () { + $this->_params['status'] = 1; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 1; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -329,10 +310,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { } function testTraditionalACLAll () { + $this->_params['status'] = 3; $this->setupACL(); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 3; list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(2, $total, 'Total needs to be set correctly'); @@ -344,11 +323,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookDisabled() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; + $this->_params['status'] = 2; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -359,12 +335,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookDisabledFound() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; - $_REQUEST['title'] = 'p'; + $this->_params['status'] = 2; + $this->_params['title'] = 'p'; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -375,12 +348,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookDisabledNotFound() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 2; - $_REQUEST['title'] = 'n'; + $this->_params['status'] = 2; + $this->_params['title'] = 'n'; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(0, $total, 'Total needs to be set correctly'); @@ -391,10 +361,7 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHook() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -405,11 +372,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookTitleNotFound() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'n'; + $this->_params['title'] = 'n'; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(0, $total, 'Total needs to be set correctly'); $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); @@ -419,11 +383,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookTitleFound() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['title'] = 'p'; + $this->_params['title'] = 'p'; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(2, $total, 'Total needs to be set correctly'); @@ -435,11 +396,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookAll() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 3; + $this->_params['status'] = 3; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(2, $total, 'Total needs to be set correctly'); @@ -451,11 +409,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * ACL Group hook */ function testGroupListAclGroupHookEnabled() { - CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); - $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup')); - global $_REQUEST; - $_REQUEST = $this->_params; - $_REQUEST['status'] = 1; + $this->_params['status'] = 1; + $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); $this->assertEquals(1, $total, 'Total needs to be set correctly'); @@ -472,7 +427,7 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { * @param array $currentGroups */ function hook_civicrm_aclGroup($type, $contactID, $tableName, &$allGroups, &$currentGroups) { - //dont use api - you will get a loop + //don't use api - you will get a loop $sql = " SELECT * FROM civicrm_group WHERE name LIKE '%pick%'"; $groups = array(); $dao = CRM_Core_DAO::executeQuery($sql); diff --git a/tests/phpunit/CiviTest/CiviUnitTestCase.php b/tests/phpunit/CiviTest/CiviUnitTestCase.php index 64680ad682..31e618722d 100644 --- a/tests/phpunit/CiviTest/CiviUnitTestCase.php +++ b/tests/phpunit/CiviTest/CiviUnitTestCase.php @@ -2585,6 +2585,8 @@ AND ( TABLE_NAME LIKE 'civicrm_value_%' ) * */ function setupACL() { + global $_REQUEST; + $_REQUEST = $this->_params; CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM'); $optionGroupID = $this->callAPISuccessGetValue('option_group', array('return' => 'id', 'name' => 'acl_role')); $optionValue = $this->callAPISuccess('option_value', 'create', array('option_group_id' => $optionGroupID, @@ -2632,7 +2634,8 @@ AND ( TABLE_NAME LIKE 'civicrm_value_%' ) )); //flush cache CRM_ACL_BAO_Cache::resetCache(); - CRM_ACL_API::groupPermission('whatever', 9999, NULL, 'civicrm_saved_search', NULL, NULL, TRUE); + CRM_Contact_BAO_Group::getPermissionClause(TRUE); + CRM_ACL_API::groupPermission('whatever', 9999, NULL, 'civicrm_saved_search', NULL, NULL, TRUE); } /** -- 2.25.1