From bd36c10456014d8e9d51c25e5856e83e6f227b35 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 10 Apr 2023 09:31:50 -0400 Subject: [PATCH] CoreComponent - Fix errors when fetching component name/id --- CRM/Core/Component.php | 20 +++++++++----------- CRM/Core/Permission.php | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/CRM/Core/Component.php b/CRM/Core/Component.php index 490737e841..e3efbf286c 100644 --- a/CRM/Core/Component.php +++ b/CRM/Core/Component.php @@ -89,10 +89,12 @@ class CRM_Core_Component { } /** + * @deprecated * @return array * Array(string $name => int $id). */ public static function &getComponentIDs() { + CRM_Core_Error::deprecatedFunctionWarning('getComponents'); $componentIDs = []; $cr = new CRM_Core_DAO_Component(); @@ -193,32 +195,28 @@ class CRM_Core_Component { /** * @param string $componentName * - * @return mixed + * @return int|null */ public static function getComponentID($componentName) { - $info = self::_info(); + $info = self::getComponents(); if (!empty($info[$componentName])) { return $info[$componentName]->componentID; } + return NULL; } /** * @param int $componentID * - * @return int|null|string + * @return string|null */ public static function getComponentName($componentID) { - $info = self::_info(); - - $componentName = NULL; - foreach ($info as $compName => $component) { + foreach (self::getComponents() as $compName => $component) { if ($component->componentID == $componentID) { - $componentName = $compName; - break; + return $compName; } } - - return $componentName; + return NULL; } /** diff --git a/CRM/Core/Permission.php b/CRM/Core/Permission.php index 482ce48793..0144a06abf 100644 --- a/CRM/Core/Permission.php +++ b/CRM/Core/Permission.php @@ -527,7 +527,7 @@ class CRM_Core_Permission { // if component_id is present, ensure it is enabled if (!empty($item['component_id'])) { $componentName = CRM_Core_Component::getComponentName($item['component_id']); - if (!CRM_Core_Component::isEnabled($componentName)) { + if (!$componentName || !CRM_Core_Component::isEnabled($componentName)) { return FALSE; } } -- 2.25.1