From 79f05dc43ad6e4abccc07e81ce013693348d5c9b Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 4 Feb 2021 14:04:51 -0800 Subject: [PATCH] CiviReport - Use API for listing/searching available permissions. Use select2. --- CRM/Report/Form/Instance.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CRM/Report/Form/Instance.php b/CRM/Report/Form/Instance.php index 97744f6944..564f693b7a 100644 --- a/CRM/Report/Form/Instance.php +++ b/CRM/Report/Form/Instance.php @@ -102,10 +102,17 @@ class CRM_Report_Form_Instance { $form->freeze('is_reserved'); } + $getPerms = \Civi\Api4\Permission::get(0) + ->addWhere('is_active', '=', 1) + ->addWhere('group', 'IN', ['civicrm', 'cms', 'const']) + ->setOrderBy(['group' => 'ASC', 'name' => 'ASC']) + ->execute(); $form->addElement('select', 'permission', ts('Permission'), - ['0' => ts('Everyone (includes anonymous)')] + CRM_Core_Permission::basicPermissions() + // FIXME: Historically, CiviReport hard-coded an extra '0' option. This should change to the more general ALWAYS_ALLOW_PERMISSION (but may require testing/migration). + ['0' => ts('Everyone (includes anonymous)')] + array_combine($getPerms->column('name'), $getPerms->column('title')), + ['class' => 'crm-select2'] ); // prepare user_roles to save as names not as ids -- 2.25.1