From 5bee23815cd56c5214634ee7f40a1b8f52f0ac20 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 2 Jun 2022 11:06:10 -0400 Subject: [PATCH] SearchKit - Switch nav menu to mgd.php with new permission --- ext/search_kit/CRM/Search/Upgrader.php | 37 ------------------- .../managed/Navigation_search_kit.mgd.php | 36 ++++++++++++++++++ 2 files changed, 36 insertions(+), 37 deletions(-) create mode 100644 ext/search_kit/managed/Navigation_search_kit.mgd.php diff --git a/ext/search_kit/CRM/Search/Upgrader.php b/ext/search_kit/CRM/Search/Upgrader.php index 9d5f43a5c6..8451a3c491 100644 --- a/ext/search_kit/CRM/Search/Upgrader.php +++ b/ext/search_kit/CRM/Search/Upgrader.php @@ -6,32 +6,6 @@ use CRM_Search_ExtensionUtil as E; */ class CRM_Search_Upgrader extends CRM_Search_Upgrader_Base { - /** - * Add menu item when enabled. - */ - public function enable() { - \Civi\Api4\Navigation::create(FALSE) - ->addValue('parent_id:name', 'Search') - ->addValue('label', E::ts('Search Kit')) - ->addValue('name', 'search_kit') - ->addValue('url', 'civicrm/admin/search') - ->addValue('icon', 'crm-i fa-search-plus') - ->addValue('has_separator', 2) - ->addValue('weight', 99) - ->addValue('permission', ['administer CiviCRM data']) - ->execute(); - } - - /** - * Delete menu item when disabled. - */ - public function disable() { - \Civi\Api4\Navigation::delete(FALSE) - ->addWhere('name', '=', 'search_kit') - ->addWhere('domain_id', '=', 'current_domain') - ->execute(); - } - /** * Upgrade 1000 - install schema * @return bool @@ -42,7 +16,6 @@ class CRM_Search_Upgrader extends CRM_Search_Upgrader_Base { if (!CRM_Core_DAO::singleValueQuery("SHOW TABLES LIKE 'civicrm_search_display'")) { $this->executeSqlFile('sql/auto_install.sql'); } - CRM_Core_DAO::executeQuery("UPDATE civicrm_navigation SET url = 'civicrm/admin/search', name = 'search_kit' WHERE url = 'civicrm/search'"); return TRUE; } @@ -142,16 +115,6 @@ class CRM_Search_Upgrader extends CRM_Search_Upgrader_Base { return TRUE; } - /** - * Upgrade 1004 - fix menu permission. - * @return bool - */ - public function upgrade_1004(): bool { - $this->ctx->log->info('Applying update 1004 - fix menu permission.'); - CRM_Core_DAO::executeQuery("UPDATE civicrm_navigation SET permission = 'administer CiviCRM data' WHERE url = 'civicrm/admin/search'"); - return TRUE; - } - /** * Upgrade 1005 - add acl_bypass column. * @return bool diff --git a/ext/search_kit/managed/Navigation_search_kit.mgd.php b/ext/search_kit/managed/Navigation_search_kit.mgd.php new file mode 100644 index 0000000000..17a68969b6 --- /dev/null +++ b/ext/search_kit/managed/Navigation_search_kit.mgd.php @@ -0,0 +1,36 @@ +addSelect('id') + ->execute(); +foreach ($domains as $domain) { + $menuItems[] = [ + 'name' => 'Navigation_search_kit_domain_' . $domain['id'], + 'entity' => 'Navigation', + 'cleanup' => 'always', + 'update' => 'unmodified', + 'params' => [ + 'version' => 4, + 'values' => [ + 'label' => E::ts('Search Kit'), + 'name' => 'search_kit', + 'url' => 'civicrm/admin/search', + 'icon' => 'crm-i fa-search-plus', + 'permission' => [ + 'administer CiviCRM data', + 'administer search_kit', + ], + 'permission_operator' => 'OR', + 'parent_id.name' => 'Search', + 'is_active' => TRUE, + 'has_separator' => 2, + 'weight' => 13, + 'domain_id' => $domain['id'], + ], + 'match' => ['domain_id', 'name'], + ], + ]; +} +return $menuItems; -- 2.25.1