$alert_id = $_POST['alert_id']; $count = mres($_POST['count']); $delay = mres($_POST['delay']); $interval = mres($_POST['interval']); $mute = mres($_POST['mute']); $invert = mres($_POST['invert']); $name = mres($_POST['name']); if (empty($rule)) { $update_message = "ERROR: No rule was generated - did you forget to click and / or?"; } elseif (validate_device_id($_POST['device_id']) || $_POST['device_id'] == '-1' || $_POST['device_id'][0] == ':') { $device_id = $_POST['device_id']; if (!is_numeric($count)) { $count = '-1'; } $delay_sec = convert_delay($delay); $interval_sec = convert_delay($interval); if ($mute == 'on') { $mute = true; } else { $mute = false; } if ($invert == 'on') { $invert = true; } else { $invert = false; } $extra = array('mute' => $mute, 'count' => $count, 'delay' => $delay_sec, 'invert' => $invert, 'interval' => $interval_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, 'name' => $name), 'alert_rules', 'id=?', array($alert_id)) >= 0) { $update_message = "Edited Rule: <i>{$name}: {$rule}</i>";
function add_edit_rule() { global $config; $app = \Slim\Slim::getInstance(); $data = json_decode(file_get_contents('php://input'), true); $status = 'error'; $message = ''; $code = 500; $rule_id = mres($data['rule_id']); $device_id = mres($data['device_id']); if (empty($device_id) && !isset($rule_id)) { $message = 'Missing the device id or global device id (-1)'; } elseif ($device_id == 0) { $device_id = '-1'; } $rule = $data['rule']; if (empty($rule)) { $message = 'Missing the alert rule'; } $name = mres($data['name']); if (empty($name)) { $message = 'Missing the alert rule name'; } $severity = mres($data['severity']); $sevs = array('ok', 'warning', 'critical'); if (!in_array($severity, $sevs)) { $message = 'Missing the severity'; } $disabled = mres($data['disabled']); if ($disabled != '0' && $disabled != '1') { $disabled = 0; } $count = mres($data['count']); $mute = mres($data['mute']); $delay = mres($data['delay']); $delay_sec = convert_delay($delay); if ($mute == 1) { $mute = true; } else { $mute = false; } $extra = array('mute' => $mute, 'count' => $count, 'delay' => $delay_sec); $extra_json = json_encode($extra); if (dbFetchCell('SELECT `name` FROM `alert_rules` WHERE `name`=?', array($name)) == $name) { $message = 'Name has already been used'; } if (empty($message)) { if (is_numeric($rule_id)) { if (dbUpdate(array('name' => $name, 'rule' => $rule, 'severity' => $severity, 'disabled' => $disabled, 'extra' => $extra_json), 'alert_rules', 'id=?', array($rule_id)) >= 0) { $status = 'ok'; $code = 200; } else { $message = 'Failed to update existing alert rule'; } } elseif (dbInsert(array('name' => $name, 'device_id' => $device_id, 'rule' => $rule, 'severity' => $severity, 'disabled' => $disabled, 'extra' => $extra_json), 'alert_rules')) { $status = 'ok'; $code = 200; } else { $message = 'Failed to create new alert rule'; } } $output = array('status' => $status, 'err-msg' => $message); $app->response->setStatus($code); $app->response->headers->set('Content-Type', 'application/json'); echo _json_encode($output); }
$rule = implode(" ", $_POST['rules']); $rule = rtrim($rule, '&&'); $rule = rtrim($rule, '||'); $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"; } elseif (validate_device_id($_POST['device_id']) || $_POST['device_id'] == '-1') { $device_id = $_POST['device_id']; if (!is_numeric($count)) { $count = '-1'; } $delay_sec = convert_delay($delay); if ($mute == 'on') { $mute = true; } else { $mute = false; } $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, 'name' => $name), 'alert_rules', 'id=?', array($alert_id)) >= 0) { $update_message = "Edited Rule: <i>{$name}: {$rule}</i>"; } else { $update_message = "ERROR: Failed to edit Rule: <i>" . $rule . "</i>"; } } else { if (dbInsert(array('device_id' => $device_id, 'rule' => $rule, 'severity' => mres($_POST['severity']), 'extra' => $extra_json, 'name' => $name), 'alert_rules')) {