tags if(isset($command['description'])) { $command['description'] = io_safe_input(str_replace("\r\n","
", io_safe_output($command['description']))); } // Get the html rows of the fields form // Descriptions are stored in json $fields_descriptions = empty($command['fields_descriptions']) ? '' : json_decode(io_safe_output($command['fields_descriptions']), true); // Fields values are stored in json $fields_values = empty($command['fields_values']) ? '' : json_decode(io_safe_output($command['fields_values']), true); $fields_rows = array(); for($i=1;$i<=10;$i++) { if(!empty($fields_descriptions[$i-1])) { $fdesc = $fields_descriptions[$i-1].'
'.sprintf(__('Field %s'), $i).''; } else { // If the macro hasn't description and doesnt appear in command, set with empty description to dont show it if(substr_count($command['command'], "_field$i_") > 0) { $fdesc = sprintf(__('Field %s'), $i); } else { $fdesc = ''; } } if(!empty($fields_values[$i-1])) { $fields_value_select = array(); $fv = $fields_values[$i-1]; $fv = explode(';', $fv); if(empty($fv)) { $fv = array(); } foreach($fv as $fv_option) { $fv_option = explode(',', $fv_option); $fields_value_select[$fv_option[0]] = $fv_option[1]; } $ffield = html_print_select($fields_value_select, 'field'.$i.'_value', '', '', '', 0, true, false, false); } else { $ffield = html_print_textarea ('field'.$i.'_value', 1, 1, '', 'style="min-height:40px" class="fields"', true); } // The empty descriptions will be ignored if($fdesc == '') { $fields_rows[$i] = ''; } else { $fields_rows[$i] = ' '.$fdesc.' '.$ffield.' '; } } $command['fields_rows'] = $fields_rows; echo json_encode ($command); } return; } // Header if (defined('METACONSOLE')) alerts_meta_print_header(); else ui_print_page_header (__('Alerts').' » '.__('Alert commands'), "images/gm_alerts.png", false, "alert_command", true); $update_command = (bool) get_parameter ('update_command'); $create_command = (bool) get_parameter ('create_command'); $delete_command = (bool) get_parameter ('delete_command'); if ($create_command) { $name = (string) get_parameter ('name'); $command = (string) get_parameter ('command'); $description = (string) get_parameter ('description'); $fields_descriptions = array(); $fields_values = array(); $info_fields = ''; $values = array(); for($i=1;$i<=10;$i++) { $fields_descriptions[] = (string) get_parameter ('field'.$i.'_description'); $fields_values[] = (string) get_parameter ('field'.$i.'_values'); $info_fields .= ' Field'.$i.': ' . $fields_values[$i - 1]; } $values['fields_values'] = json_encode($fields_values); $values['fields_descriptions'] = json_encode($fields_descriptions); $values['description'] = $description; $name_check = db_get_value ('name', 'talert_commands', 'name', $name); if (!$name_check) { $result = alerts_create_alert_command ($name, $command, $values); $info = 'Name: ' . $name . ' Command: ' . $command . ' Description: ' . $description. ' ' .$info_fields; } else { $result = ''; } if ($result) { db_pandora_audit("Command management", "Create alert command #" . $result, false, false, $info); } else { db_pandora_audit("Command management", "Fail try to create alert command", false, false); } ui_print_result_message ($result, __('Successfully created'), __('Could not be created')); } if ($update_command) { $id = (int) get_parameter ('id'); $alert = alerts_get_alert_command ($id); if ($alert['internal']) { db_pandora_audit("ACL Violation", "Trying to access Alert Management"); require ("general/noaccess.php"); exit; } $name = (string) get_parameter ('name'); $command = (string) get_parameter ('command'); $description = (string) get_parameter ('description'); $fields_descriptions = array(); $fields_values = array(); $info_fields = ''; $values = array(); for($i=1;$i<=10;$i++) { $fields_descriptions[] = (string) get_parameter ('field'.$i.'_description'); $fields_values[] = (string) get_parameter ('field'.$i.'_values'); $info_fields .= ' Field'.$i.': ' . $fields_values[$i - 1]; } $values['fields_values'] = json_encode($fields_values); $values['fields_descriptions'] = json_encode($fields_descriptions); $values['name'] = $name; $values['command'] = $command; $values['description'] = $description; //Check it the new name is used in the other command. $id_check = db_get_value ('id', 'talert_commands', 'name', $name); if (($id_check != $id) && (!empty($id_check))) { $result = ''; } else { $result = alerts_update_alert_command ($id, $values); $info = 'Name: ' . $name . ' Command: ' . $command . ' Description: ' . $description. ' ' .$info_fields; } if ($result) { db_pandora_audit("Command management", "Update alert command #" . $id, false, false, $info); } else { db_pandora_audit("Command management", "Fail to update alert command #" . $id, false, false); } ui_print_result_message ($result, __('Successfully updated'), __('Could not be updated')); } if ($delete_command) { $id = (int) get_parameter ('id'); // Internal commands cannot be deleted if (alerts_get_alert_command_internal ($id)) { db_pandora_audit("ACL Violation", "Trying to access Alert Management"); require ("general/noaccess.php"); return; } $result = alerts_delete_alert_command ($id); if ($result) { db_pandora_audit("Command management", "Delete alert command #" . $id); } else { db_pandora_audit("Command management", "Fail try to delete alert command #" . $id); } ui_print_result_message ($result, __('Successfully deleted'), __('Could not be deleted')); } $table->width = '98%'; $table->data = array (); $table->head = array (); $table->head[0] = __('Name'); $table->head[1] = __('ID'); $table->head[2] = __('Description'); $table->head[3] = __('Delete'); $table->style = array (); $table->style[0] = 'font-weight: bold'; $table->size = array (); $table->size[3] = '40px'; $table->align = array (); $table->align[3] = 'center'; $commands = db_get_all_rows_in_table ('talert_commands'); if ($commands === false) $commands = array (); foreach ($commands as $command) { $data = array (); $data[0] = ''; if (! $command['internal']) $data[0] .= ''. $command['name'].''; else $data[0] .= $command['name']; $data[0] .= ''; $data[1] = $command['id']; $data[2] = str_replace("\r\n","
",io_safe_output($command['description'])); $data[3] = ''; if (! $command['internal']) $data[3] = ''. html_print_image("images/cross.png", true) . ''; array_push ($table->data, $data); } if (isset($data)) { html_print_table ($table); } else { echo "
".__('No alert commands configured')."
"; } echo '
'; echo '
'; html_print_submit_button (__('Create'), 'create', false, 'class="sub next"'); html_print_input_hidden ('create_alert', 1); echo '
'; echo '
'; ?>