Commit | Line | Data |
---|---|---|
3aab90bd | 1 | <?php |
2 | require_once 'CiviTest/CiviUnitTestCase.php'; | |
aba1cd8b EM |
3 | |
4 | /** | |
5 | * Class CRM_Group_Page_AjaxTest | |
6 | */ | |
3aab90bd | 7 | class CRM_Group_Page_AjaxTest extends CiviUnitTestCase { |
8 | /** | |
9 | * Permissioned group is used both as an active group the contact can see and as a group that allows | |
10 | * logged in user to see contacts | |
11 | * @var integer | |
12 | */ | |
13 | protected $_permissionedGroup; | |
14 | /** | |
15 | * AS disabled group the contact has permission to | |
16 | * @var unknown | |
17 | */ | |
18 | protected $_permissionedDisabledGroup; | |
19 | ||
5c2ad8fb EM |
20 | protected $hookClass; |
21 | ||
aaac0e0b EM |
22 | protected $_params = array(); |
23 | ||
00be9182 | 24 | public function setUp() { |
3aab90bd | 25 | parent::setUp(); |
26 | $this->_params = array( | |
27 | 'sEcho' => '1', | |
28 | 'page' => 1, | |
29 | 'rp' => 50, | |
30 | 'offset' => 0, | |
31 | 'rowCount' => 50, | |
32 | 'sort' => NULL, | |
33 | 'is_unit_test' => TRUE, | |
34 | ); | |
35 | $this->hookClass = CRM_Utils_Hook::singleton(); | |
36 | $this->createLoggedInUser(); | |
37 | $this->_permissionedDisabledGroup = $this->groupCreate(array('title' => 'pick-me-disabled', 'is_active' => 0, 'name' => 'pick-me-disabled')); | |
38 | $this->_permissionedGroup = $this->groupCreate(array('title' => 'pick-me-active', 'is_active' => 1, 'name' => 'pick-me-active')); | |
39 | $this->groupCreate(array('title' => 'not-me-disabled', 'is_active' => 0, 'name' => 'not-me-disabled')); | |
40 | $this->groupCreate(array('title' => 'not-me-active', 'is_active' => 1, 'name' => 'not-me-active')); | |
41 | } | |
42 | ||
00be9182 | 43 | public function tearDown() { |
3aab90bd | 44 | CRM_Utils_Hook::singleton()->reset(); |
45 | $this->quickCleanup(array('civicrm_group')); | |
46 | $config = CRM_Core_Config::singleton(); | |
47 | unset($config->userPermissionClass->permissions); | |
48 | parent::tearDown(); | |
49 | } | |
50 | ||
51 | /** | |
aaac0e0b | 52 | * @param $permission |
3aab90bd | 53 | */ |
00be9182 | 54 | public function setPermissionAndRequest($permission) { |
aaac0e0b EM |
55 | CRM_Core_Config::singleton()->userPermissionClass->permissions = array($permission); |
56 | CRM_Contact_BAO_Group::getPermissionClause(TRUE); | |
57 | global $_REQUEST; | |
58 | $_REQUEST = $this->_params; | |
59 | } | |
60 | ||
61 | /** | |
62 | * @param $permission | |
63 | * @param $hook | |
64 | */ | |
00be9182 | 65 | public function setHookAndRequest($permission, $hook) { |
aaac0e0b EM |
66 | CRM_Core_Config::singleton()->userPermissionClass->permissions = array($permission); |
67 | $this->hookClass->setHook('civicrm_aclGroup', array($this, $hook)); | |
68 | CRM_Contact_BAO_Group::getPermissionClause(TRUE); | |
3aab90bd | 69 | global $_REQUEST; |
70 | $_REQUEST = $this->_params; | |
aaac0e0b EM |
71 | } |
72 | /** | |
100fef9d | 73 | * Retrieve groups as 'view all contacts' |
aaac0e0b | 74 | */ |
00be9182 | 75 | public function testGroupListViewAllContacts() { |
aaac0e0b | 76 | $this->setPermissionAndRequest('view all contacts'); |
3aab90bd | 77 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
78 | $this->assertEquals(2, $total); | |
79 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
80 | $this->assertEquals('not-me-active', $groups[4]['group_name']); | |
81 | } | |
82 | ||
83 | /** | |
100fef9d | 84 | * Retrieve groups as 'view all contacts' permissioned user |
3aab90bd | 85 | * Without setting params the default is both enabled & disabled |
86 | * (if you do set default it is enabled only) | |
87 | */ | |
00be9182 | 88 | public function testGroupListViewAllContactsFoundTitle() { |
aaac0e0b EM |
89 | $this->_params['title'] = 'p'; |
90 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 91 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
92 | $this->assertEquals(2, $total); | |
93 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
94 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
95 | } | |
96 | ||
97 | /** | |
100fef9d | 98 | * Retrieve groups as 'view all contacts' |
3aab90bd | 99 | */ |
00be9182 | 100 | public function testGroupListViewAllContactsNotFoundTitle() { |
aaac0e0b EM |
101 | $this->_params['title'] = 'z'; |
102 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 103 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
104 | $this->assertEquals(0, $total); | |
105 | } | |
106 | /** | |
100fef9d | 107 | * Retrieve groups as 'edit all contacts' |
3aab90bd | 108 | */ |
00be9182 | 109 | public function testGroupListEditAllContacts() { |
aaac0e0b | 110 | $this->setPermissionAndRequest('edit all contacts'); |
3aab90bd | 111 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
112 | $this->assertEquals(2, $total); | |
113 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
114 | $this->assertEquals('not-me-active', $groups[4]['group_name']); | |
115 | } | |
116 | ||
117 | /** | |
100fef9d | 118 | * Retrieve groups as 'view all contacts' |
3aab90bd | 119 | */ |
00be9182 | 120 | public function testGroupListViewAllContactsEnabled() { |
aaac0e0b EM |
121 | $this->_params['status'] = 1; |
122 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 123 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
124 | $this->assertEquals(2, $total); | |
125 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
126 | $this->assertEquals('not-me-active', $groups[4]['group_name']); | |
127 | } | |
128 | ||
129 | /** | |
100fef9d | 130 | * Retrieve groups as 'view all contacts' |
3aab90bd | 131 | */ |
00be9182 | 132 | public function testGroupListViewAllContactsDisabled() { |
aaac0e0b EM |
133 | $this->_params['status'] = 2; |
134 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 135 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
136 | $this->assertEquals(2, $total); | |
137 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
138 | $this->assertEquals('not-me-disabled', $groups[3]['group_name']); | |
139 | } | |
140 | ||
141 | /** | |
100fef9d | 142 | * Retrieve groups as 'view all contacts' |
3aab90bd | 143 | */ |
00be9182 | 144 | public function testGroupListViewAllContactsDisabledNotFoundTitle() { |
aaac0e0b EM |
145 | $this->_params['status'] = 2; |
146 | $this->_params['title'] = 'n'; | |
147 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 148 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
149 | $this->assertEquals(1, $total); | |
150 | $this->assertEquals('not-me-disabled', $groups[3]['group_name']); | |
151 | } | |
152 | ||
153 | /** | |
100fef9d | 154 | * Retrieve groups as 'view all contacts' |
3aab90bd | 155 | */ |
00be9182 | 156 | public function testGroupListViewAllContactsDisabledFoundTitle() { |
aaac0e0b EM |
157 | $this->_params['status'] = 2; |
158 | $this->_params['title'] = 'p'; | |
159 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 160 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
161 | $this->assertEquals(1, $total); | |
162 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
163 | } | |
164 | ||
165 | /** | |
100fef9d | 166 | * Retrieve groups as 'view all contacts' |
3aab90bd | 167 | */ |
00be9182 | 168 | public function testGroupListViewAllContactsAll() { |
aaac0e0b EM |
169 | $this->_params['status'] = 3; |
170 | $this->setPermissionAndRequest('view all contacts'); | |
3aab90bd | 171 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
172 | $this->assertEquals(4, $total); | |
173 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
174 | $this->assertEquals('not-me-disabled', $groups[3]['group_name']); | |
175 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
176 | $this->assertEquals('not-me-active', $groups[4]['group_name']); | |
177 | } | |
178 | ||
179 | ||
180 | /** | |
100fef9d | 181 | * Retrieve groups as 'view all contacts' |
3aab90bd | 182 | */ |
00be9182 | 183 | public function testGroupListAccessCiviCRM() { |
aaac0e0b EM |
184 | $this->setPermissionAndRequest('access CiviCRM'); |
185 | $permissionClause = CRM_Contact_BAO_Group::getPermissionClause(TRUE); | |
186 | $this->assertEquals('1 = 0', $permissionClause); | |
3aab90bd | 187 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
188 | $this->assertEquals(0, count($groups)); | |
3aab90bd | 189 | $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); |
190 | } | |
191 | /** | |
100fef9d | 192 | * Retrieve groups as 'view all contacts' |
3aab90bd | 193 | */ |
00be9182 | 194 | public function testGroupListAccessCiviCRMEnabled() { |
aaac0e0b EM |
195 | $this->_params['status'] = 1; |
196 | $this->setPermissionAndRequest('access CiviCRM'); | |
3aab90bd | 197 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
198 | $this->assertEquals(0, count($groups)); | |
3aab90bd | 199 | $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); |
200 | } | |
201 | /** | |
100fef9d | 202 | * Retrieve groups as 'view all contacts' |
3aab90bd | 203 | */ |
00be9182 | 204 | public function testGroupListAccessCiviCRMDisabled() { |
aaac0e0b EM |
205 | $this->_params['status'] = 2; |
206 | $this->setPermissionAndRequest('access CiviCRM'); | |
3aab90bd | 207 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
208 | $this->assertEquals(0, count($groups)); | |
3aab90bd | 209 | $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); |
210 | } | |
211 | ||
212 | /** | |
100fef9d | 213 | * Retrieve groups as 'view all contacts' |
3aab90bd | 214 | */ |
00be9182 | 215 | public function testGroupListAccessCiviCRMAll() { |
aaac0e0b EM |
216 | $this->_params['status'] = 2; |
217 | $this->setPermissionAndRequest('access CiviCRM'); | |
3aab90bd | 218 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
219 | $this->assertEquals(0, count($groups)); | |
3aab90bd | 220 | $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); |
221 | } | |
222 | ||
223 | /** | |
100fef9d | 224 | * Retrieve groups as 'view all contacts' |
3aab90bd | 225 | */ |
00be9182 | 226 | public function testGroupListAccessCiviCRMFound() { |
aaac0e0b EM |
227 | $this->_params['title'] = 'p'; |
228 | $this->setPermissionAndRequest('access CiviCRM'); | |
3aab90bd | 229 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
230 | $this->assertEquals(0, count($groups)); | |
231 | $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); | |
232 | } | |
233 | ||
234 | /** | |
100fef9d | 235 | * Retrieve groups as 'view all contacts' |
3aab90bd | 236 | */ |
00be9182 | 237 | public function testGroupListAccessCiviCRMNotFound() { |
aaac0e0b EM |
238 | $this->_params['title'] = 'z'; |
239 | $this->setPermissionAndRequest('access CiviCRM'); | |
3aab90bd | 240 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
241 | $this->assertEquals(0, count($groups)); | |
242 | $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions'); | |
243 | } | |
244 | ||
00be9182 | 245 | public function testTraditionalACL () { |
3aab90bd | 246 | $this->setupACL(); |
3aab90bd | 247 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
248 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
249 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
250 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
251 | } | |
252 | ||
00be9182 | 253 | public function testTraditionalACLNotFoundTitle () { |
aaac0e0b | 254 | $this->_params['title'] = 'n'; |
3aab90bd | 255 | $this->setupACL(); |
3aab90bd | 256 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
257 | $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); | |
258 | $this->assertEquals(0, $total, 'Total needs to be set correctly'); | |
259 | } | |
260 | ||
00be9182 | 261 | public function testTraditionalACLFoundTitle () { |
aaac0e0b | 262 | $this->_params['title'] = 'p'; |
3aab90bd | 263 | $this->setupACL(); |
3aab90bd | 264 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
265 | $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); | |
266 | $this->assertEquals(2, $total, 'Total needs to be set correctly'); | |
267 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
268 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
269 | } | |
270 | ||
00be9182 | 271 | public function testTraditionalACLDisabled () { |
aaac0e0b | 272 | $this->_params['status'] = 2; |
3aab90bd | 273 | $this->setupACL(); |
3aab90bd | 274 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
275 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
276 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
277 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
278 | } | |
279 | ||
00be9182 | 280 | public function testTraditionalACLDisabledFoundTitle () { |
aaac0e0b EM |
281 | $this->_params['status'] = 2; |
282 | $this->_params['title'] = 'p'; | |
3aab90bd | 283 | $this->setupACL(); |
3aab90bd | 284 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
285 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
286 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
287 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
288 | } | |
289 | ||
00be9182 | 290 | public function testTraditionalACLDisabledNotFoundTitle () { |
aaac0e0b EM |
291 | $this->_params['status'] = 2; |
292 | $this->_params['title'] = 'n'; | |
3aab90bd | 293 | $this->setupACL(); |
3aab90bd | 294 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
295 | $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); | |
296 | $this->assertEquals(0, $total, 'Total needs to be set correctly'); | |
297 | } | |
298 | ||
00be9182 | 299 | public function testTraditionalACLEnabled () { |
aaac0e0b | 300 | $this->_params['status'] = 1; |
3aab90bd | 301 | $this->setupACL(); |
3aab90bd | 302 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
303 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
304 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
305 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
306 | } | |
307 | ||
00be9182 | 308 | public function testTraditionalACLAll () { |
aaac0e0b | 309 | $this->_params['status'] = 3; |
3aab90bd | 310 | $this->setupACL(); |
3aab90bd | 311 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
312 | $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); | |
313 | $this->assertEquals(2, $total, 'Total needs to be set correctly'); | |
314 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
315 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
316 | } | |
317 | ||
318 | /** | |
319 | * ACL Group hook | |
320 | */ | |
00be9182 | 321 | public function testGroupListAclGroupHookDisabled() { |
aaac0e0b EM |
322 | $this->_params['status'] = 2; |
323 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 324 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
325 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
326 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
327 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
328 | } | |
329 | ||
330 | /** | |
331 | * ACL Group hook | |
332 | */ | |
00be9182 | 333 | public function testGroupListAclGroupHookDisabledFound() { |
aaac0e0b EM |
334 | $this->_params['status'] = 2; |
335 | $this->_params['title'] = 'p'; | |
336 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 337 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
338 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
339 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
340 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
341 | } | |
342 | ||
343 | /** | |
344 | * ACL Group hook | |
345 | */ | |
00be9182 | 346 | public function testGroupListAclGroupHookDisabledNotFound() { |
aaac0e0b EM |
347 | $this->_params['status'] = 2; |
348 | $this->_params['title'] = 'n'; | |
349 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 350 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
351 | $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); | |
352 | $this->assertEquals(0, $total, 'Total needs to be set correctly'); | |
353 | } | |
354 | ||
355 | ||
356 | /** | |
357 | * ACL Group hook | |
358 | */ | |
00be9182 | 359 | public function testGroupListAclGroupHook() { |
aaac0e0b | 360 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); |
3aab90bd | 361 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
362 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
363 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
364 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
365 | } | |
366 | ||
367 | /** | |
368 | * ACL Group hook | |
369 | */ | |
00be9182 | 370 | public function testGroupListAclGroupHookTitleNotFound() { |
aaac0e0b EM |
371 | $this->_params['title'] = 'n'; |
372 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 373 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
374 | $this->assertEquals(0, $total, 'Total needs to be set correctly'); | |
375 | $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default'); | |
376 | } | |
377 | ||
378 | /** | |
379 | * ACL Group hook | |
380 | */ | |
00be9182 | 381 | public function testGroupListAclGroupHookTitleFound() { |
aaac0e0b EM |
382 | $this->_params['title'] = 'p'; |
383 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 384 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
385 | $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); | |
386 | $this->assertEquals(2, $total, 'Total needs to be set correctly'); | |
387 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
388 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
389 | } | |
390 | ||
391 | /** | |
392 | * ACL Group hook | |
393 | */ | |
00be9182 | 394 | public function testGroupListAclGroupHookAll() { |
aaac0e0b EM |
395 | $this->_params['status'] = 3; |
396 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 397 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
398 | $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default'); | |
399 | $this->assertEquals(2, $total, 'Total needs to be set correctly'); | |
400 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
401 | $this->assertEquals('pick-me-disabled', $groups[1]['group_name']); | |
402 | } | |
403 | ||
404 | /** | |
405 | * ACL Group hook | |
406 | */ | |
00be9182 | 407 | public function testGroupListAclGroupHookEnabled() { |
aaac0e0b EM |
408 | $this->_params['status'] = 1; |
409 | $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup'); | |
3aab90bd | 410 | list($groups, $total) = CRM_Group_Page_AJAX::getGroupList(); |
411 | $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default'); | |
412 | $this->assertEquals(1, $total, 'Total needs to be set correctly'); | |
413 | $this->assertEquals('pick-me-active', $groups[2]['group_name']); | |
414 | } | |
415 | ||
416 | /** | |
6c6e6187 TO |
417 | * Implements ACLGroup hook |
418 | * aclGroup function returns a list of permitted groups | |
419 | * @param string $type | |
420 | * @param int $contactID | |
421 | * @param string $tableName | |
422 | * @param array $allGroups | |
423 | * @param array $currentGroups | |
424 | */ | |
00be9182 | 425 | public function hook_civicrm_aclGroup($type, $contactID, $tableName, &$allGroups, &$currentGroups) { |
aaac0e0b | 426 | //don't use api - you will get a loop |
3aab90bd | 427 | $sql = " SELECT * FROM civicrm_group WHERE name LIKE '%pick%'"; |
428 | $groups = array(); | |
429 | $dao = CRM_Core_DAO::executeQuery($sql); | |
430 | while ($dao->fetch()) { | |
431 | $groups[] = $dao->id; | |
432 | } | |
433 | ||
22e263ad | 434 | if (!empty($allGroups)) { |
3aab90bd | 435 | //all groups is empty if we really mean all groups but if a filter like 'is_disabled' is already applied |
436 | // it is populated, ajax calls from Manage Groups will leave empty but calls from New Mailing pass in a filtered list | |
437 | $currentGroups = array_intersect($groups, array_flip($allGroups)); | |
438 | } | |
439 | else { | |
440 | $currentGroups = $groups; | |
441 | } | |
442 | } | |
443 | } |