From 51616844bc1dff1e0c07ca8c83c73e81a8eb965c Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Sun, 21 Dec 2014 15:44:50 +0000 Subject: [PATCH] Added ability to name alert rules --- html/forms/create-alert-item.inc.php | 9 +++++---- html/forms/parse-alert-rule.inc.php | 2 +- html/includes/modal/new_alert_rule.inc.php | 7 +++++++ html/includes/print-alert-rules.php | 6 ++++-- sql-schema/037.sql | 2 ++ 5 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 sql-schema/037.sql diff --git a/html/forms/create-alert-item.inc.php b/html/forms/create-alert-item.inc.php index cc7cb2bb85..a1ed1f5808 100644 --- a/html/forms/create-alert-item.inc.php +++ b/html/forms/create-alert-item.inc.php @@ -23,6 +23,7 @@ $alert_id = $_POST['alert_id']; $count = mres($_POST['count']); $delay = mres($_POST['delay']); $mute = mres($_POST['mute']); +$name = mres($_POST['name']); if(empty($rule)) { $update_message = "ERROR: No rule was generated"; @@ -40,14 +41,14 @@ if(empty($rule)) { $extra = array('mute'=>$mute,'count'=>$count,'delay'=>$delay_sec); $extra_json = json_encode($extra); if(is_numeric($alert_id) && $alert_id > 0) { - if(dbUpdate(array('rule' => $rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json), 'alert_rules', 'id=?',array($alert_id)) >= 0) { - $update_message = "Edited Rule: ".$rule.""; + if(dbUpdate(array('rule' => $rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json,'name'=>$name), 'alert_rules', 'id=?',array($alert_id)) >= 0) { + $update_message = "Edited Rule: $name: $rule"; } else { $update_message = "ERROR: Failed to edit Rule: ".$rule.""; } } else { - if( dbInsert(array('device_id'=>$device_id,'rule'=>$rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json),'alert_rules') ) { - $update_message = "Added Rule: ".$rule.$mute.""; + if( dbInsert(array('device_id'=>$device_id,'rule'=>$rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json,'name'=>$name),'alert_rules') ) { + $update_message = "Added Rule: $name: $rule"; } else { $update_message = "ERROR: Failed to add Rule: ".$rule.""; } diff --git a/html/forms/parse-alert-rule.inc.php b/html/forms/parse-alert-rule.inc.php index 9f33138f08..8e599d2ebd 100644 --- a/html/forms/parse-alert-rule.inc.php +++ b/html/forms/parse-alert-rule.inc.php @@ -23,6 +23,6 @@ if(is_numeric($alert_id) && $alert_id > 0) { $rule_split = preg_split('/([a-zA-Z0-9_\-\.\=\%\ \"\'\!\~]+[&&||]+)/',$rule['rule'], -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); $count = count($rule_split) - 1; $rule_split[$count] = $rule_split[$count].'&&'; - $output = array('severity'=>$rule['severity'],'extra'=>$rule['extra'],'rules'=>$rule_split); + $output = array('severity'=>$rule['severity'],'extra'=>$rule['extra'],'name'=>$rule['name'],'rules'=>$rule_split); echo _json_encode($output); } diff --git a/html/includes/modal/new_alert_rule.inc.php b/html/includes/modal/new_alert_rule.inc.php index 60a7b32d9f..7e3fca1c63 100644 --- a/html/includes/modal/new_alert_rule.inc.php +++ b/html/includes/modal/new_alert_rule.inc.php @@ -100,6 +100,12 @@ if(is_admin() === false) { +
+ +
+ +
+
@@ -157,6 +163,7 @@ $('#create-alert').on('show.bs.modal', function (event) { if(extra['mute']) { $('#mute').click(); } + $('#name').val(output['name']); } }); }); diff --git a/html/includes/print-alert-rules.php b/html/includes/print-alert-rules.php index ed02b801a9..9d2f1c72da 100644 --- a/html/includes/print-alert-rules.php +++ b/html/includes/print-alert-rules.php @@ -22,6 +22,7 @@ echo '
+ @@ -30,7 +31,7 @@ echo '
'; -echo ('"; echo ""; + echo ""; echo ""; echo ""; echo " - + '); } echo '
#Name Rule Severity StatusAction
'); +echo (''); if ($_SESSION['userlevel'] == '10') { echo(''); } @@ -100,6 +101,7 @@ foreach( dbFetchRows($full_query, $param) as $rule ) { $rule_extra = json_decode($rule['extra'],TRUE); echo "
#".((int) $rulei++)."".$rule['name']."".htmlentities($rule['rule'])."".$rule['severity']." "; @@ -122,7 +124,7 @@ foreach( dbFetchRows($full_query, $param) as $rule ) { } if($count % $results > 0) { echo('
'. generate_pagination($count,$results,$page_number) .''. generate_pagination($count,$results,$page_number) .'
diff --git a/sql-schema/037.sql b/sql-schema/037.sql new file mode 100644 index 0000000000..cd8bf0e9a7 --- /dev/null +++ b/sql-schema/037.sql @@ -0,0 +1,2 @@ +-- Adds name column to alert_rules table +ALTER TABLE `alert_rules` ADD `name` VARCHAR( 255 ) NOT NULL ;