1

I wanted to create several reports that are limited to specific CiviCRM ACL roles. But I can't, because when I view the "Access" tab for the report settings, there are no permission fields shown.

According to the docs (https://docs.civicrm.org/user/en/latest/reporting/set-up/#define-report-settings), I should see two fields "Permission" and "ACL Group/Role", but I do not have those on my screen. All other fields are present as shown in the docs.

Have I missed a configuration setting somewhere?

I'm using Joomla 3.9.13 and CiviCRM 5.18.2.

  • 1
    I can't reproduce on my Drupal version, I wonder if this is a limitation of the Joomla implementation? – Alan Dixon Dec 4 '19 at 19:12
  • 1
    have you checked your CMS permission? there have been new report permissions added in the recent past - in case you have upgraded and didn't spot that – petednz - fuzion Dec 4 '19 at 19:40
  • I have -- my Super User has every listed Joomla Civi-related permission set to "allowed". – minbori Dec 5 '19 at 12:59
  • According to the Drupal, Wordpress, and Joomla demos: Drupal has both Permissions and ACL Groups, Wordpress has only Permissions, and Joomla has neither. – minbori Dec 20 '19 at 8:59
1

So after doing some research, checking on the Drupal, Wordpress, and Joomla demos, it appears that Permissioning for individual reports indeed does NOT exist in the Joomla implementation. Very disappointing.

1

If you temporarily change the word Joomla in this line in the code to 'Joomla-temp' or something, does it then work as expected? This seems like an old restriction and maybe at one time Joomla didn't support it.

https://github.com/civicrm/civicrm-core/blob/5.20.2/templates/CRM/Report/Form/Tabs/Instance.tpl#L81

{if $config->userFramework neq 'Joomla'}

You may also have to do the same here but try just the above first (EDIT: as I look at this line of code it doesn't make any sense anyway - it's always true):

https://github.com/civicrm/civicrm-core/blob/5.20.2/CRM/Report/Form/Instance.php#L122

    if ($config->userFramework != 'Joomla' ||
      $config->userFramework != 'WordPress'
    ) {
  • Thanks for the suggestion, Demerit, but it doesn't seem to work. Adjusting the Instance.tpl does cause the "Permissions" selection dropdown to appear, but my testing shows the permission chosen there is simply ignored. The HTML for the ACL Group selection also appears, but it's empty -- and it seems on purpose, as the Instance.php code removes it for both Joomla AND Wordpress. So Drupal is, in fact, the only implementation that allows ACL Group permissioning in CiviReport. – minbori Dec 20 '19 at 8:52
  • So I'm back where I started -- this isn't supported in Joomla. And back to my original suggestions: Is it possible to add Joomla-level CiviCRM permissions to use with the menu blocks? Or am I stuck using the existing CiviCRM Joomla permissions in a very hacky/kludgey way? – minbori Dec 20 '19 at 8:52
  • 1
    Ok thanks for testing - there are probably more lines elsewhere that exclude Joomla. But it's not the Instance.php line - what I noted in my edit is that the line has faulty logic and so actually doesn't restrict any CMS. I made a PR to at least address that: github.com/civicrm/civicrm-core/pull/16122. I think the right full solution is to see where else Joomla is being excluded, but in the meantime it's reasonable to look for some alternate. It looks like Joomla lets you set menu permissions at Administer - Customize - Navigation, after adding the report to the menu. – Demerit Dec 20 '19 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.