Fix hasPermissionForActivityType to use components function.
authoreileen <emcnaughton@wikimedia.org>
Wed, 24 Oct 2018 00:56:14 +0000 (13:56 +1300)
committereileen <emcnaughton@wikimedia.org>
Wed, 24 Oct 2018 02:54:35 +0000 (15:54 +1300)
commitc4937fe9dd5f2f44978b7116bd27b6cea871a9ff
tree6ba1f7a607ee0e8c7d851b6bf927d10a01a50d69
parent12e49740578a2d2c5847a6a92647f4bef3873d9e
Fix hasPermissionForActivityType to use components function.

This is a refactor step - not the final destination. I want to move from loading
all activities & then checking if each one can be accessed to determining a list
of activity types and then adding that filter to the sql query. 2 reasons
- performance
- because getcount actually hard fails when permissions are applied currently :-(

In this step I note the function activityComponents looks like it expected
the concept of showActivitiesInCore by components to take off but in
practice it is hard coded to 0 for CiviCase & CiviCase only. Oddly there is
acually handling for CiviCase in this function in a place unreachable
without the changes in this patch. In addition the few places that call this
function also do weird CiviCase handling. I've opted for relatively low
intervention since I think most places that call this function
are likely to change themselves in the short-medium term.

note this implements https://lab.civicrm.org/dev/core/issues/454 which slightly downgrades the relevant permission
CRM/Activity/BAO/Activity.php
tests/phpunit/api/v3/ACLPermissionTest.php