From b249a14869e683620fcce08ebc1f813daa44058e Mon Sep 17 00:00:00 2001 From: Michael Devery Date: Tue, 15 May 2018 12:02:44 +0100 Subject: [PATCH] dev/core#55 Remove option to delete option value for locked groups --- CRM/Core/OptionValue.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CRM/Core/OptionValue.php b/CRM/Core/OptionValue.php index 33860b52c8..b22bd0097a 100644 --- a/CRM/Core/OptionValue.php +++ b/CRM/Core/OptionValue.php @@ -72,14 +72,14 @@ class CRM_Core_OptionValue { */ public static function getRows($groupParams, $links, $orderBy = 'weight', $skipEmptyComponents = TRUE) { $optionValue = array(); - $optionGroupID = NULL; + $isGroupLocked = FALSE; + if (!isset($groupParams['id']) || !$groupParams['id']) { if ($groupParams['name']) { - $config = CRM_Core_Config::singleton(); - $optionGroup = CRM_Core_BAO_OptionGroup::retrieve($groupParams, $dnc); $optionGroupID = $optionGroup->id; + $isGroupLocked = (bool) $optionGroup->is_locked; } } else { @@ -146,6 +146,11 @@ class CRM_Core_OptionValue { } } + // disallow deletion of option values for locked groups + if ($isGroupLocked) { + $action -= CRM_Core_Action::DELETE; + } + $optionValue[$dao->id]['label'] = htmlspecialchars($optionValue[$dao->id]['label']); $optionValue[$dao->id]['order'] = $optionValue[$dao->id]['weight']; $optionValue[$dao->id]['icon'] = CRM_Utils_Array::value('icon', $optionValue[$dao->id], ''); -- 2.25.1