From 5720fd5457a28e97c36db21ba05f0735809234c9 Mon Sep 17 00:00:00 2001 From: Jon goldberg Date: Mon, 27 Apr 2015 16:15:02 -0600 Subject: [PATCH] Enforce maximum value of 8 for minimum_report_severity; first crack at allowing strings via API --- CRM/Core/BAO/StatusPreference.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CRM/Core/BAO/StatusPreference.php b/CRM/Core/BAO/StatusPreference.php index 3b402b5c43..6ff4286354 100644 --- a/CRM/Core/BAO/StatusPreference.php +++ b/CRM/Core/BAO/StatusPreference.php @@ -34,7 +34,7 @@ */ /** - * This class contains functions for managing Action Logs + * This class contains functions for managing Status Preferences. */ class CRM_Core_BAO_StatusPreference extends CRM_Core_DAO_StatusPreference { @@ -48,6 +48,16 @@ class CRM_Core_BAO_StatusPreference extends CRM_Core_DAO_StatusPreference { public static function create($params) { $statusPreference = new CRM_Core_DAO_StatusPreference(); + // Severity can be either text ('critical') or an integer <= 8. + if (!CRM_Utils_Rule::integer($params['minimum_report_severity'])) { + $params['minimum_report_severity'] = CRM_Utils_Check::severityMap($params['minimum_report_severity']); + } + CRM_Core_Error::debug('severity', $params['minimum_report_severity']); + if ($params['minimum_report_severity'] > 8) { + CRM_Core_Error::fatal(ts('You can not pass a severity level higher than 8 (Emergency).')); + } + + // Check if this StatusPreference already exists. if (empty($params['id']) && CRM_Utils_Array::value('name', $params)) { $statusPreference->domain_id = CRM_Utils_Array::value('domain_id', $params, CRM_Core_Config::domainID()); $statusPreference->name = $params['name']; -- 2.25.1