CRM-16836 - make Basic Search form group select respect ACLs #11013
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
See full description at CRM-16836 Basic Search form group select does not respect ACLs.
The group selector on the Basic Search form is showing all groups, for an ACL'd user who should only be able to see a restricted set of groups.
This was a regression between 4.4.14 and 4.6.4
Before
For an ACL'd user who should only be able to see a restricted set of groups, the group selector on the Basic Search form shows all groups.
After
For an ACL'd user who should only be able to see a restricted set of groups, the group selector on the Basic Search form shows only the groups they are permitted to see.
Technical Details
This is fixing a regression. The simplest way to fix was to revert the relevant part of the commit that caused the issue, but discussion on JIRA seemed to favour retaining the change from
$this->add('select', 'group', ...
to
$this->addSelect('group', ...
So I followed @eileenmcnaughton's suggestion to specify 'options' in the call to addSelect(). I populated options using the same CRM_Contact_BAO_Group::getGroupsHierarchy() call that is used in Advanced Search, which respects ACLs.
Comments
See discussion in comments on JIRA.