Enforce maximum value of 8 for minimum_report_severity; first crack at allowing strin...
authorJon goldberg <jon@palantetech.coop>
Mon, 27 Apr 2015 22:15:02 +0000 (16:15 -0600)
committerJon goldberg <jon@palantetech.coop>
Tue, 21 Jul 2015 20:37:37 +0000 (16:37 -0400)
CRM/Core/BAO/StatusPreference.php

index 3b402b5c43d2ff676f9a65ecb10726daff8c6ff4..6ff42863541aa8cdde85b71649c31550c9e181d9 100644 (file)
@@ -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'];