__('None'), SNMP_TRAP_TYPE_COLD_START => __('Cold start (0)'), SNMP_TRAP_TYPE_WARM_START => __('Warm start (1)'), SNMP_TRAP_TYPE_LINK_DOWN => __('Link down (2)'), SNMP_TRAP_TYPE_LINK_UP => __('Link up (3)'), SNMP_TRAP_TYPE_AUTHENTICATION_FAILURE => __('Authentication failure (4)'), SNMP_TRAP_TYPE_OTHER => __('Other'), ]; // Form submitted // ============= $update_alert = (bool) get_parameter('update_alert', false); $create_alert = (bool) get_parameter('create_alert', false); $save_alert = (bool) get_parameter('save_alert', false); $modify_alert = (bool) get_parameter('modify_alert', false); $delete_alert = (bool) get_parameter('delete_alert', false); $multiple_delete = (bool) get_parameter('multiple_delete', false); $add_action = (bool) get_parameter('add_alert', 0); $delete_action = get_parameter('delete_action', 0); $duplicate_alert = get_parameter('duplicate_alert', 0); if ($add_action) { $values['id_alert_snmp'] = (int) get_parameter('id_alert_snmp'); $values['alert_type'] = (int) get_parameter('alert_type'); $values[db_escape_key_identifier('al_field1')] = get_parameter('field1_value'); $values[db_escape_key_identifier('al_field2')] = get_parameter('field2_value'); $values[db_escape_key_identifier('al_field3')] = get_parameter('field3_value'); $values[db_escape_key_identifier('al_field4')] = get_parameter('field4_value'); $values[db_escape_key_identifier('al_field5')] = get_parameter('field5_value'); $values[db_escape_key_identifier('al_field6')] = get_parameter('field6_value'); $values[db_escape_key_identifier('al_field7')] = get_parameter('field7_value'); $values[db_escape_key_identifier('al_field8')] = get_parameter('field8_value'); $values[db_escape_key_identifier('al_field9')] = get_parameter('field9_value'); $values[db_escape_key_identifier('al_field10')] = get_parameter('field10_value'); $values[db_escape_key_identifier('al_field11')] = get_parameter('field11_value'); $values[db_escape_key_identifier('al_field12')] = get_parameter('field12_value'); $values[db_escape_key_identifier('al_field13')] = get_parameter('field13_value'); $values[db_escape_key_identifier('al_field14')] = get_parameter('field14_value'); $values[db_escape_key_identifier('al_field15')] = get_parameter('field15_value'); $values[db_escape_key_identifier('al_field16')] = get_parameter('field16_value'); $values[db_escape_key_identifier('al_field17')] = get_parameter('field17_value'); $values[db_escape_key_identifier('al_field18')] = get_parameter('field18_value'); $values[db_escape_key_identifier('al_field19')] = get_parameter('field19_value'); $values[db_escape_key_identifier('al_field20')] = get_parameter('field20_value'); $result = db_process_sql_insert('talert_snmp_action', $values); } if ($delete_action) { $action_id = get_parameter('action_id'); $result = db_process_sql_delete('talert_snmp_action', ['id' => $action_id]); } if ($update_alert || $modify_alert) { ui_print_page_header( __('SNMP Console').' » '.__('Update alert'), 'images/op_snmp.png', false, 'snmp_alert_update_tab', false ); } else if ($create_alert || $save_alert) { ui_print_page_header( __('SNMP Console').' » '.__('Create alert'), 'images/op_snmp.png', false, 'snmp_alert_overview_tab', false ); } else { ui_print_page_header( __('SNMP Console').' » '.__('Alert overview'), 'images/op_snmp.png', false, '', false ); } if ($save_alert || $modify_alert) { $id_as = (int) get_parameter('id_alert_snmp', -1); $source_ip = (string) get_parameter_post('source_ip'); $alert_type = (int) get_parameter_post('alert_type'); // Event, e-mail $description = (string) get_parameter_post('description'); $oid = (string) get_parameter_post('oid'); $custom_value = (string) get_parameter_post('custom_value'); $time_threshold = (int) get_parameter_post('time_threshold', SECONDS_5MINUTES); $time_other = (int) get_parameter_post('time_other', -1); $al_field1 = (string) get_parameter_post('field1_value'); $al_field2 = (string) get_parameter_post('field2_value'); $al_field3 = (string) get_parameter_post('field3_value'); $al_field4 = (string) get_parameter_post('field4_value'); $al_field5 = (string) get_parameter_post('field5_value'); $al_field6 = (string) get_parameter_post('field6_value'); $al_field7 = (string) get_parameter_post('field7_value'); $al_field8 = (string) get_parameter_post('field8_value'); $al_field9 = (string) get_parameter_post('field9_value'); $al_field10 = (string) get_parameter_post('field10_value'); $al_field11 = (string) get_parameter_post('field11_value'); $al_field12 = (string) get_parameter_post('field12_value'); $al_field13 = (string) get_parameter_post('field13_value'); $al_field14 = (string) get_parameter_post('field14_value'); $al_field15 = (string) get_parameter_post('field15_value'); $al_field16 = (string) get_parameter_post('field16_value'); $al_field17 = (string) get_parameter_post('field17_value'); $al_field18 = (string) get_parameter_post('field18_value'); $al_field19 = (string) get_parameter_post('field19_value'); $al_field20 = (string) get_parameter_post('field20_value'); $max_alerts = (int) get_parameter_post('max_alerts', 1); $min_alerts = (int) get_parameter_post('min_alerts', 0); $priority = (int) get_parameter_post('priority', 0); $custom_oid_data_1 = (string) get_parameter('custom_oid_data_1'); $custom_oid_data_2 = (string) get_parameter('custom_oid_data_2'); $custom_oid_data_3 = (string) get_parameter('custom_oid_data_3'); $custom_oid_data_4 = (string) get_parameter('custom_oid_data_4'); $custom_oid_data_5 = (string) get_parameter('custom_oid_data_5'); $custom_oid_data_6 = (string) get_parameter('custom_oid_data_6'); $custom_oid_data_7 = (string) get_parameter('custom_oid_data_7'); $custom_oid_data_8 = (string) get_parameter('custom_oid_data_8'); $custom_oid_data_9 = (string) get_parameter('custom_oid_data_9'); $custom_oid_data_10 = (string) get_parameter('custom_oid_data_10'); $custom_oid_data_11 = (string) get_parameter('custom_oid_data_11'); $custom_oid_data_12 = (string) get_parameter('custom_oid_data_12'); $custom_oid_data_13 = (string) get_parameter('custom_oid_data_13'); $custom_oid_data_14 = (string) get_parameter('custom_oid_data_14'); $custom_oid_data_15 = (string) get_parameter('custom_oid_data_15'); $custom_oid_data_16 = (string) get_parameter('custom_oid_data_16'); $custom_oid_data_17 = (string) get_parameter('custom_oid_data_17'); $custom_oid_data_18 = (string) get_parameter('custom_oid_data_18'); $custom_oid_data_19 = (string) get_parameter('custom_oid_data_19'); $custom_oid_data_20 = (string) get_parameter('custom_oid_data_20'); $order_1 = (int) get_parameter('order_1', 1); $order_2 = (int) get_parameter('order_2', 2); $order_3 = (int) get_parameter('order_3', 3); $order_4 = (int) get_parameter('order_4', 4); $order_5 = (int) get_parameter('order_5', 5); $order_6 = (int) get_parameter('order_6', 6); $order_7 = (int) get_parameter('order_7', 7); $order_8 = (int) get_parameter('order_8', 8); $order_9 = (int) get_parameter('order_9', 9); $order_10 = (int) get_parameter('order_10', 10); $order_11 = (int) get_parameter('order_11', 11); $order_12 = (int) get_parameter('order_12', 12); $order_13 = (int) get_parameter('order_13', 13); $order_14 = (int) get_parameter('order_14', 14); $order_15 = (int) get_parameter('order_15', 15); $order_16 = (int) get_parameter('order_16', 16); $order_17 = (int) get_parameter('order_17', 17); $order_18 = (int) get_parameter('order_18', 18); $order_19 = (int) get_parameter('order_19', 19); $order_20 = (int) get_parameter('order_20', 20); $trap_type = (int) get_parameter('trap_type', -1); $single_value = (string) get_parameter('single_value'); $position = (int) get_parameter('position'); $disable_event = (int) get_parameter('disable_event'); $group = (int) get_parameter('group'); if ($time_threshold == -1) { $time_threshold = $time_other; } if ($save_alert) { $values = [ 'id_alert' => $alert_type, 'al_field1' => $al_field1, 'al_field2' => $al_field2, 'al_field3' => $al_field3, 'al_field4' => $al_field4, 'al_field5' => $al_field5, 'al_field6' => $al_field6, 'al_field7' => $al_field7, 'al_field8' => $al_field8, 'al_field9' => $al_field9, 'al_field10' => $al_field10, 'al_field11' => $al_field11, 'al_field12' => $al_field12, 'al_field13' => $al_field13, 'al_field14' => $al_field14, 'al_field15' => $al_field15, 'al_field16' => $al_field16, 'al_field17' => $al_field17, 'al_field18' => $al_field18, 'al_field19' => $al_field19, 'al_field20' => $al_field20, 'description' => $description, 'agent' => $source_ip, 'custom_oid' => $custom_value, 'oid' => $oid, 'time_threshold' => $time_threshold, 'max_alerts' => $max_alerts, 'min_alerts' => $min_alerts, 'priority' => $priority, db_escape_key_identifier('_snmp_f1_') => $custom_oid_data_1, db_escape_key_identifier('_snmp_f2_') => $custom_oid_data_2, db_escape_key_identifier('_snmp_f3_') => $custom_oid_data_3, db_escape_key_identifier('_snmp_f4_') => $custom_oid_data_4, db_escape_key_identifier('_snmp_f5_') => $custom_oid_data_5, db_escape_key_identifier('_snmp_f6_') => $custom_oid_data_6, db_escape_key_identifier('_snmp_f7_') => $custom_oid_data_7, db_escape_key_identifier('_snmp_f8_') => $custom_oid_data_8, db_escape_key_identifier('_snmp_f9_') => $custom_oid_data_9, db_escape_key_identifier('_snmp_f10_') => $custom_oid_data_10, db_escape_key_identifier('_snmp_f11_') => $custom_oid_data_11, db_escape_key_identifier('_snmp_f12_') => $custom_oid_data_12, db_escape_key_identifier('_snmp_f13_') => $custom_oid_data_13, db_escape_key_identifier('_snmp_f14_') => $custom_oid_data_14, db_escape_key_identifier('_snmp_f15_') => $custom_oid_data_15, db_escape_key_identifier('_snmp_f16_') => $custom_oid_data_16, db_escape_key_identifier('_snmp_f17_') => $custom_oid_data_17, db_escape_key_identifier('_snmp_f18_') => $custom_oid_data_18, db_escape_key_identifier('_snmp_f19_') => $custom_oid_data_19, db_escape_key_identifier('_snmp_f20_') => $custom_oid_data_20, 'order_1' => $order_1, 'order_2' => $order_2, 'order_3' => $order_3, 'order_4' => $order_4, 'order_5' => $order_5, 'order_6' => $order_6, 'order_7' => $order_7, 'order_8' => $order_8, 'order_9' => $order_9, 'order_10' => $order_10, 'order_11' => $order_11, 'order_12' => $order_12, 'order_13' => $order_13, 'order_14' => $order_14, 'order_15' => $order_15, 'order_16' => $order_16, 'order_17' => $order_17, 'order_18' => $order_18, 'order_19' => $order_19, 'order_20' => $order_20, 'trap_type' => $trap_type, 'single_value' => $single_value, 'position' => $position, 'disable_event' => $disable_event, 'id_group' => $group, ]; $result = db_process_sql_insert('talert_snmp', $values); if (!$result) { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, 'Fail try to create snmp alert' ); ui_print_error_message(__('There was a problem creating the alert')); } else { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Create snmp alert #$result" ); ui_print_success_message(__('Successfully created')); } } else { $sql = sprintf( "UPDATE talert_snmp SET priority = %d, id_alert = %d, al_field1 = '%s', al_field2 = '%s', al_field3 = '%s', al_field4 = '%s', al_field5 = '%s', al_field6 = '%s',al_field7 = '%s', al_field8 = '%s', al_field9 = '%s',al_field10 = '%s', al_field11 = '%s', al_field12 = '%s', al_field13 = '%s', al_field14 = '%s', al_field15 = '%s', al_field16 = '%s', al_field17 = '%s', al_field18 = '%s', al_field19 = '%s', al_field20 = '%s', description = '%s', agent = '%s', custom_oid = '%s', oid = '%s', time_threshold = %d, max_alerts = %d, min_alerts = %d, ".db_escape_key_identifier('_snmp_f1_')."= '%s', ".db_escape_key_identifier('_snmp_f2_')."= '%s', ".db_escape_key_identifier('_snmp_f3_')."= '%s', ".db_escape_key_identifier('_snmp_f4_')."= '%s', ".db_escape_key_identifier('_snmp_f5_')."= '%s', ".db_escape_key_identifier('_snmp_f6_')."= '%s', ".db_escape_key_identifier('_snmp_f7_')."= '%s', ".db_escape_key_identifier('_snmp_f8_')."= '%s', ".db_escape_key_identifier('_snmp_f9_')."= '%s', ".db_escape_key_identifier('_snmp_f10_')." = '%s', ".db_escape_key_identifier('_snmp_f11_')." = '%s', ".db_escape_key_identifier('_snmp_f12_')." = '%s', ".db_escape_key_identifier('_snmp_f13_')." = '%s', ".db_escape_key_identifier('_snmp_f14_')." = '%s', ".db_escape_key_identifier('_snmp_f15_')." = '%s', ".db_escape_key_identifier('_snmp_f16_')." = '%s', ".db_escape_key_identifier('_snmp_f17_')." = '%s', ".db_escape_key_identifier('_snmp_f18_')." = '%s', ".db_escape_key_identifier('_snmp_f19_')." = '%s', ".db_escape_key_identifier('_snmp_f20_')." = '%s', order_1 = '%d', order_2 = '%d', order_3 = '%d', order_4 = '%d', order_5 = '%d', order_6 = '%d', order_7 = '%d', order_8 = '%d', order_9 = '%d', order_10 = '%d', order_11 = '%d', order_12 = '%d', order_13 = '%d', order_14 = '%d', order_15 = '%d', order_16 = '%d', order_17 = '%d', order_18 = '%d', order_19 = '%d', order_20 = '%d', trap_type = %d, single_value = '%s', position = '%s', disable_event = %d, id_group ='%s' WHERE id_as = %d", $priority, $alert_type, $al_field1, $al_field2, $al_field3, $al_field4, $al_field5, $al_field6, $al_field7, $al_field8, $al_field9, $al_field10, $al_field11, $al_field12, $al_field13, $al_field14, $al_field15, $al_field16, $al_field17, $al_field18, $al_field19, $al_field20, $description, $source_ip, $custom_value, $oid, $time_threshold, $max_alerts, $min_alerts, $custom_oid_data_1, $custom_oid_data_2, $custom_oid_data_3, $custom_oid_data_4, $custom_oid_data_5, $custom_oid_data_6, $custom_oid_data_7, $custom_oid_data_8, $custom_oid_data_9, $custom_oid_data_10, $custom_oid_data_11, $custom_oid_data_12, $custom_oid_data_13, $custom_oid_data_14, $custom_oid_data_15, $custom_oid_data_16, $custom_oid_data_17, $custom_oid_data_18, $custom_oid_data_19, $custom_oid_data_20, $order_1, $order_2, $order_3, $order_4, $order_5, $order_6, $order_7, $order_8, $order_9, $order_10, $order_11, $order_12, $order_13, $order_14, $order_15, $order_16, $order_17, $order_18, $order_19, $order_20, $trap_type, $single_value, $position, $disable_event, $group, $id_as ); $result = db_process_sql($sql); if (!$result) { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Fail try to update snmp alert #$id_as" ); ui_print_error_message(__('There was a problem updating the alert')); } else { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Update snmp alert #$id_as" ); ui_print_success_message(__('Successfully updated')); } } } // From variable init // ================== if ($update_alert || $duplicate_alert) { $id_as = (int) get_parameter('id_alert_snmp', -1); $alert = db_get_row('talert_snmp', 'id_as', $id_as); $id_as = $alert['id_as']; $id_alert = $alert['id_alert']; $source_ip = $alert['agent']; $alert_type = $alert['id_alert']; $description = $alert['description']; $oid = $alert['oid']; $custom_value = $alert['custom_oid']; $time_threshold = $alert['time_threshold']; $times_fired = $alert['times_fired']; $last_fired = $alert['last_fired']; $internal_counter = $alert['internal_counter']; $al_field1 = $alert['al_field1']; $al_field2 = $alert['al_field2']; $al_field3 = $alert['al_field3']; $al_field4 = $alert['al_field4']; $al_field5 = $alert['al_field5']; $al_field6 = $alert['al_field6']; $al_field7 = $alert['al_field7']; $al_field8 = $alert['al_field8']; $al_field9 = $alert['al_field9']; $al_field10 = $alert['al_field10']; $al_field11 = $alert['al_field11']; $al_field12 = $alert['al_field12']; $al_field13 = $alert['al_field13']; $al_field14 = $alert['al_field14']; $al_field15 = $alert['al_field15']; $al_field16 = $alert['al_field16']; $al_field17 = $alert['al_field17']; $al_field18 = $alert['al_field18']; $al_field19 = $alert['al_field19']; $al_field20 = $alert['al_field20']; $max_alerts = $alert['max_alerts']; $min_alerts = $alert['min_alerts']; $priority = $alert['priority']; $custom_oid_data_1 = $alert['_snmp_f1_']; $custom_oid_data_2 = $alert['_snmp_f2_']; $custom_oid_data_3 = $alert['_snmp_f3_']; $custom_oid_data_4 = $alert['_snmp_f4_']; $custom_oid_data_5 = $alert['_snmp_f5_']; $custom_oid_data_6 = $alert['_snmp_f6_']; $custom_oid_data_7 = $alert['_snmp_f7_']; $custom_oid_data_8 = $alert['_snmp_f8_']; $custom_oid_data_9 = $alert['_snmp_f9_']; $custom_oid_data_10 = $alert['_snmp_f10_']; $custom_oid_data_11 = $alert['_snmp_f11_']; $custom_oid_data_12 = $alert['_snmp_f12_']; $custom_oid_data_13 = $alert['_snmp_f13_']; $custom_oid_data_14 = $alert['_snmp_f14_']; $custom_oid_data_15 = $alert['_snmp_f15_']; $custom_oid_data_16 = $alert['_snmp_f16_']; $custom_oid_data_17 = $alert['_snmp_f17_']; $custom_oid_data_18 = $alert['_snmp_f18_']; $custom_oid_data_19 = $alert['_snmp_f19_']; $custom_oid_data_20 = $alert['_snmp_f20_']; $order_1 = $alert['order_1']; $order_2 = $alert['order_2']; $order_3 = $alert['order_3']; $order_4 = $alert['order_4']; $order_5 = $alert['order_5']; $order_6 = $alert['order_6']; $order_7 = $alert['order_7']; $order_8 = $alert['order_8']; $order_9 = $alert['order_9']; $order_10 = $alert['order_10']; $order_11 = $alert['order_11']; $order_12 = $alert['order_12']; $order_13 = $alert['order_13']; $order_14 = $alert['order_14']; $order_15 = $alert['order_15']; $order_16 = $alert['order_16']; $order_17 = $alert['order_17']; $order_18 = $alert['order_18']; $order_19 = $alert['order_19']; $order_20 = $alert['order_20']; $trap_type = $alert['trap_type']; $single_value = $alert['single_value']; $position = $alert['position']; $disable_event = $alert['disable_event']; $group = $alert['id_group']; if (!check_acl_restricted_all($config['id_user'], $group, 'LW')) { db_pandora_audit( AUDIT_LOG_ACL_VIOLATION, 'Trying to access SNMP Alert Management' ); include 'general/noaccess.php'; return; } } else if ($create_alert) { // Variable init $id_as = -1; $source_ip = ''; $alert_type = 1; // Event, e-mail $description = ''; $oid = ''; $custom_value = ''; $time_threshold = SECONDS_5MINUTES; $al_field1 = ''; $al_field2 = ''; $al_field3 = ''; $al_field4 = ''; $al_field5 = ''; $al_field6 = ''; $al_field7 = ''; $al_field8 = ''; $al_field9 = ''; $al_field10 = ''; $al_field11 = ''; $al_field12 = ''; $al_field13 = ''; $al_field14 = ''; $al_field15 = ''; $al_field16 = ''; $al_field17 = ''; $al_field18 = ''; $al_field19 = ''; $al_field20 = ''; $max_alerts = 1; $min_alerts = 0; $priority = 0; $custom_oid_data_1 = ''; $custom_oid_data_2 = ''; $custom_oid_data_3 = ''; $custom_oid_data_4 = ''; $custom_oid_data_5 = ''; $custom_oid_data_6 = ''; $custom_oid_data_7 = ''; $custom_oid_data_8 = ''; $custom_oid_data_9 = ''; $custom_oid_data_10 = ''; $custom_oid_data_11 = ''; $custom_oid_data_12 = ''; $custom_oid_data_13 = ''; $custom_oid_data_14 = ''; $custom_oid_data_15 = ''; $custom_oid_data_16 = ''; $custom_oid_data_17 = ''; $custom_oid_data_18 = ''; $custom_oid_data_19 = ''; $custom_oid_data_20 = ''; $order_1 = 1; $order_2 = 2; $order_3 = 3; $order_4 = 4; $order_5 = 5; $order_6 = 6; $order_7 = 7; $order_8 = 8; $order_9 = 9; $order_10 = 10; $order_11 = 11; $order_12 = 12; $order_13 = 13; $order_14 = 14; $order_15 = 15; $order_16 = 16; $order_17 = 17; $order_18 = 18; $order_19 = 19; $order_20 = 20; $trap_type = -1; $single_value = ''; $position = 0; $disable_event = 0; $group = 0; } // Duplicate alert snmp if ($duplicate_alert) { $values_duplicate = $alert; if (!empty($values_duplicate)) { unset($values_duplicate['id_as']); $result = db_process_sql_insert('talert_snmp', $values_duplicate); if (!$result) { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Fail try to duplicate snmp alert #$id_as" ); ui_print_error_message(__('There was a problem duplicating the alert')); } else { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Duplicate snmp alert #$id_as" ); ui_print_success_message(__('Successfully Duplicate')); } } else { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Fail try to duplicate snmp alert #$id_as" ); ui_print_error_message(__('There was a problem duplicating the alert')); } } // Header // Alert Delete // ============= if ($delete_alert) { // Delete alert $alert_delete = (int) get_parameter_get('delete_alert', 0); $result = db_process_sql_delete( 'talert_snmp', ['id_as' => $alert_delete] ); if ($result === false) { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Fail try to delete snmp alert #$alert_delete" ); ui_print_error_message(__('There was a problem deleting the alert')); } else { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Delete snmp alert #$alert_delete" ); ui_print_success_message(__('Successfully deleted')); } } if ($multiple_delete) { $delete_ids = get_parameter('delete_ids', []); $total = count($delete_ids); $count = 0; foreach ($delete_ids as $alert_delete) { $result = db_process_sql_delete( 'talert_snmp', ['id_as' => $alert_delete] ); if ($result !== false) { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Delete snmp alert #$alert_delete" ); $count++; } else { db_pandora_audit( AUDIT_LOG_SNMP_MANAGEMENT, "Fail try to delete snmp alert #$alert_delete" ); } } if ($count == $total) { ui_print_success_message( __('Successfully deleted alerts (%s / %s)', $count, $total) ); } else { ui_print_error_message( __('Unsuccessfully deleted alerts (%s / %s)', $count, $total) ); } } $user_groups = users_get_groups($config['id_user'], 'AR', true); $str_user_groups = ''; $i = 0; foreach ($user_groups as $id => $name) { if ($i == 0) { $str_user_groups .= $id; } else { $str_user_groups .= ','.$id; } $i++; } // Alert form if ($create_alert || $update_alert) { // if (isset ($_GET["update_alert"])) { // the update_alert means the form should be displayed. If update_alert > 1 then an existing alert is updated echo '
'; html_print_input_hidden('id_alert_snmp', $id_as); if ($create_alert) { html_print_input_hidden('save_alert', 1); } if ($update_alert) { html_print_input_hidden('modify_alert', 1); } // SNMP alert filters echo ''; // Description echo ''.''.''.''; // echo ''; // OID echo ''.''.''; // Custom echo ''; // SNMP Agent echo ''; $return_all_group = false; if (users_can_manage_group_all('LW') === true) { $return_all_group = true; } // Group echo ''; // Trap type echo ''; // Single value echo ''; // Variable bindings/Data #1 echo ''.''; // Variable bindings/Data #2 echo ''; // Variable bindings/Data #3 echo ''; // Variable bindings/Data #4 echo ''.''; // Variable bindings/Data #5 echo ''.''; // Variable bindings/Data #6 echo ''.''; // Variable bindings/Data #7 echo ''.''; // Variable bindings/Data #8 echo ''.''; // Variable bindings/Data #9 echo ''.''; // Variable bindings/Data #10 echo ''.''; // Variable bindings/Data #11 echo ''.''; // Variable bindings/Data #12 echo ''.''; // Variable bindings/Data #13 echo ''; // Variable bindings/Data #14 echo ''; // Variable bindings/Data #15 echo ''; // Variable bindings/Data #16 echo ''; // Variable bindings/Data #17 echo ''; // Variable bindings/Data #18 echo ''; // Variable bindings/Data #19 echo ''; // Variable bindings/Data #20 echo ''; // Alert fields $al = [ 'al_field1' => $al_field1, 'al_field2' => $al_field2, 'al_field3' => $al_field3, 'al_field4' => $al_field4, 'al_field5' => $al_field5, 'al_field6' => $al_field6, 'al_field7' => $al_field7, 'al_field8' => $al_field8, 'al_field9' => $al_field9, 'al_field10' => $al_field10, 'al_field11' => $al_field11, 'al_field12' => $al_field12, 'al_field13' => $al_field13, 'al_field14' => $al_field14, 'al_field15' => $al_field15, 'al_field16' => $al_field16, 'al_field17' => $al_field17, 'al_field18' => $al_field18, 'al_field19' => $al_field19, 'al_field20' => $al_field20, ]; // Hidden div with help hint to fill with javascript html_print_div(['id' => 'help_snmp_alert_hint', 'content' => ui_print_help_icon('snmp_alert_field1', true), 'hidden' => true]); for ($i = 1; $i <= $config['max_macro_fields']; $i++) { echo ''; } // Max / Min alerts echo ''; // Time Threshold echo ''; // Priority echo ''; // Alert type (e-mail, event etc.). echo ''; echo ''; echo ''; echo '
'.__('Description').''; html_print_textarea('description', 3, 2, $description, 'class="w400px"'); echo '
' . __('Alert filters') . ui_print_help_icon("snmp_alert_filters", true) . '
'.__('Enterprise String').ui_print_help_tip(__('Matches substrings. End the string with $ for exact matches.'), true).''; html_print_input_text('oid', $oid, '', 50, 255); echo '
'.__('Custom Value/OID'); echo ''; html_print_textarea('custom_value', 2, 2, $custom_value, 'class="w400px"'); echo '
'.__('SNMP Agent').' (IP)'; html_print_input_text('source_ip', $source_ip, '', 20); echo '
'.__('Group').''; echo '
'; html_print_select_groups( $config['id_user'], 'AR', $return_all_group, 'group', $group, '', '', 0, false, false, false, '', false, false, false, false, 'id_grupo', false ); echo '
'; echo '
'.__('Trap type').''; echo html_print_select($trap_types, 'trap_type', $trap_type, '', '', '', false, false, false); echo '
'.__('Single value').''; html_print_input_text('single_value', $single_value, '', 20); echo '
'.__('Variable bindings/Data').''; echo '#'; html_print_input_text('order_1', $order_1, '', 4); html_print_input_text('custom_oid_data_1', $custom_oid_data_1, '', 60); echo '
'.__('Variable bindings/Data'); // echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; echo '#'; html_print_input_text('order_2', $order_2, '', 4); html_print_input_text('custom_oid_data_2', $custom_oid_data_2, '', 60); echo '
'.__('Variable bindings/Data'); // echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; echo '#'; html_print_input_text('order_3', $order_3, '', 4); html_print_input_text('custom_oid_data_3', $custom_oid_data_3, '', 60); echo '
'.__('Variable bindings/Data'); // echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; echo '#'; html_print_input_text('order_4', $order_4, '', 4); html_print_input_text('custom_oid_data_4', $custom_oid_data_4, '', 60); echo '
'.__('Variable bindings/Data'); // echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; echo '#'; html_print_input_text('order_5', $order_5, '', 4); html_print_input_text('custom_oid_data_5', $custom_oid_data_5, '', 60); echo '
'.__('Variable bindings/Data'); // echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; echo '#'; html_print_input_text('order_6', $order_6, '', 4); html_print_input_text('custom_oid_data_6', $custom_oid_data_6, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_7', $order_7, '', 4); html_print_input_text('custom_oid_data_7', $custom_oid_data_7, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_8', $order_8, '', 4); html_print_input_text('custom_oid_data_8', $custom_oid_data_8, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_9', $order_9, '', 4); html_print_input_text('custom_oid_data_9', $custom_oid_data_9, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_10', $order_10, '', 4); html_print_input_text('custom_oid_data_10', $custom_oid_data_10, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_11', $order_11, '', 4); html_print_input_text('custom_oid_data_11', $custom_oid_data_11, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_12', $order_12, '', 4); html_print_input_text('custom_oid_data_12', $custom_oid_data_12, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_13', $order_13, '', 4); html_print_input_text('custom_oid_data_13', $custom_oid_data_13, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_14', $order_14, '', 4); html_print_input_text('custom_oid_data_14', $custom_oid_data_14, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_15', $order_15, '', 4); html_print_input_text('custom_oid_data_15', $custom_oid_data_15, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_16', $order_16, '', 4); html_print_input_text('custom_oid_data_16', $custom_oid_data_16, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_17', $order_17, '', 4); html_print_input_text('custom_oid_data_17', $custom_oid_data_17, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_18', $order_18, '', 4); html_print_input_text('custom_oid_data_18', $custom_oid_data_18, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_19', $order_19, '', 4); html_print_input_text('custom_oid_data_19', $custom_oid_data_19, '', 60); echo '
'.__('Variable bindings/Data'); echo ''; echo '#'; html_print_input_text('order_20', $order_20, '', 4); html_print_input_text('custom_oid_data_20', $custom_oid_data_20, '', 60); echo '
'.html_print_image('images/spinner.gif', true); echo ''.html_print_image('images/spinner.gif', true); html_print_input_hidden('field'.$i.'_value', isset($al['al_field'.$i]) ? $al['al_field'.$i] : ''); echo '
'.__('Min. number of alerts').''; html_print_input_text('min_alerts', $min_alerts, '', 3); echo '
'.__('Max. number of alerts').''; html_print_input_text('max_alerts', $max_alerts, '', 3); echo '
'.__('Time threshold').''; $fields = []; $fields[$time_threshold] = human_time_description_raw($time_threshold); $fields[SECONDS_5MINUTES] = human_time_description_raw(SECONDS_5MINUTES); $fields[SECONDS_10MINUTES] = human_time_description_raw(SECONDS_10MINUTES); $fields[SECONDS_15MINUTES] = human_time_description_raw(SECONDS_15MINUTES); $fields[SECONDS_30MINUTES] = human_time_description_raw(SECONDS_30MINUTES); $fields[SECONDS_1HOUR] = human_time_description_raw(SECONDS_1HOUR); $fields[SECONDS_2HOUR] = human_time_description_raw(SECONDS_2HOUR); $fields[SECONDS_5HOUR] = human_time_description_raw(SECONDS_5HOUR); $fields[SECONDS_12HOURS] = human_time_description_raw(SECONDS_12HOURS); $fields[SECONDS_1DAY] = human_time_description_raw(SECONDS_1DAY); $fields[SECONDS_1WEEK] = human_time_description_raw(SECONDS_1WEEK); $fields[-1] = __('Other value'); html_print_select($fields, 'time_threshold', $time_threshold, '', '', '0', false, false, false, '" class="mrgn_right_60px'); echo '
'.__('Priority').''; echo html_print_select(get_priorities(), 'priority', $priority, '', '', '0', false, false, false); echo '
'.__('Alert action').''; html_print_select_from_sql( 'SELECT id, name FROM talert_actions ORDER BY name', 'alert_type', $alert_type, '', '', 0, false, false, false ); echo '
'.__('Position').''; html_print_input_text('position', $position, '', 3); echo '
'.__('Disable event').''; html_print_checkbox('disable_event', 1, $disable_event, false); echo '
'; echo ""; echo '
'; if ($id_as > 0) { html_print_submit_button(__('Update'), 'submit', false, 'class="sub upd"', false); } else { html_print_submit_button(__('Create'), 'submit', false, 'class="sub wand"', false); } echo '
'; echo ''; echo '
'; } else { include_once 'include/functions_alerts.php'; $free_search = (string) get_parameter('free_search', ''); $trap_type_filter = (int) get_parameter('trap_type_filter', SNMP_TRAP_TYPE_NONE); $priority_filter = (int) get_parameter('priority_filter', -1); $filter_param = (bool) get_parameter('filter', false); $offset = (int) get_parameter('offset'); $table_filter = new stdClass(); $table_filter->width = '100%'; $table_filter->class = 'databox filters'; $table_filter->data = []; $table_filter->data[0][0] = __('Free search').ui_print_help_tip( __('Search by these fields description, OID, Custom Value, SNMP Agent (IP), Single value, each Variable bindings/Datas.'), true ); $table_filter->data[0][1] = html_print_input_text('free_search', $free_search, '', 30, 100, true); $table_filter->data[0][2] = __('Trap type'); $table_filter->data[0][3] = html_print_select($trap_types, 'trap_type_filter', $trap_type_filter, '', '', '', true, false, false); $table_filter->data[0][4] = __('Priority'); $table_filter->data[0][5] = html_print_select(get_priorities(), 'priority_filter', $priority_filter, '', __('None'), '-1', true, false, false); ; $form_filter = '
'; $form_filter .= html_print_input_hidden('filter', 1, true); $form_filter .= html_print_table($table_filter, true); $form_filter .= '
'; $form_filter .= html_print_submit_button(__('Filter'), 'filter_button', false, 'class="sub filter"', true); $form_filter .= '
'; $form_filter .= '
'; // echo "
"; ui_toggle($form_filter, __('Alert SNMP control filter'), __('Toggle filter(s)')); $filter = []; $offset = (int) get_parameter('offset'); $limit = (int) $config['block_size']; if ($filter_param) { // Move the first page $offset = 0; $url_pagination = 'index.php?'.'sec=snmpconsole&'.'sec2=godmode/snmpconsole/snmp_alert&'.'free_search='.$free_search.'&'.'trap_type_filter='.$trap_type_filter.'&'.'priority_filter='.$priority_filter; } else { $url_pagination = 'index.php?'.'sec=snmpconsole&'.'sec2=godmode/snmpconsole/snmp_alert&'.'free_search='.$free_search.'&'.'trap_type_filter='.$trap_type_filter.'&'.'priority_filter='.$priority_filter.'&'.'offset='.$offset; } $where_sql = ''; if (!empty($free_search)) { switch ($config['dbtype']) { case 'mysql': case 'postgresql': // $where_sql = ' 1 = 1'; if ($trap_type_filter != SNMP_TRAP_TYPE_NONE) { $where_sql .= ' AND `trap_type` = '.$trap_type_filter; } if ($priority_filter != -1) { $where_sql .= ' AND `priority` = '.$priority_filter; } $where_sql .= " AND (`single_value` LIKE '%".$free_search."%' OR `_snmp_f10_` LIKE '%".$free_search."%' OR `_snmp_f9_` LIKE '%".$free_search."%' OR `_snmp_f8_` LIKE '%".$free_search."%' OR `_snmp_f7_` LIKE '%".$free_search."%' OR `_snmp_f6_` LIKE '%".$free_search."%' OR `_snmp_f5_` LIKE '%".$free_search."%' OR `_snmp_f4_` LIKE '%".$free_search."%' OR `_snmp_f3_` LIKE '%".$free_search."%' OR `_snmp_f2_` LIKE '%".$free_search."%' OR `_snmp_f1_` LIKE '%".$free_search."%' OR `oid` LIKE '%".$free_search."%' OR `custom_oid` LIKE '%".$free_search."%' OR `agent` LIKE '%".$free_search."%' OR `description` LIKE '%".$free_search."%')"; break; case 'oracle': // $where_sql = ' 1 = 1'; if ($trap_type_filter != SNMP_TRAP_TYPE_NONE) { $where_sql .= ' AND trap_type = '.$trap_type_filter; } if ($priority_filter != -1) { $where_sql .= ' AND priority = '.$priority_filter; } $where_sql .= " AND (single_value LIKE '%".$free_search."%' OR \"_snmp_f10_\" LIKE '%".$free_search."%' OR \"_snmp_f9_\" LIKE '%".$free_search."%' OR \"_snmp_f8_\" LIKE '%".$free_search."%' OR \"_snmp_f7_\" LIKE '%".$free_search."%' OR \"_snmp_f6_\" LIKE '%".$free_search."%' OR \"_snmp_f5_\" LIKE '%".$free_search."%' OR \"_snmp_f4_\" LIKE '%".$free_search."%' OR \"_snmp_f3_\" LIKE '%".$free_search."%' OR \"_snmp_f2_\" LIKE '%".$free_search."%' OR \"_snmp_f1_\" LIKE '%".$free_search."%' OR oid LIKE '%".$free_search."%' OR custom_oid LIKE '%".$free_search."%' OR agent LIKE '%".$free_search."%' OR description LIKE '%".$free_search."%')"; break; } } $count = db_get_value_sql( "SELECT COUNT(*) FROM talert_snmp WHERE id_group IN ($str_user_groups) ".$where_sql ); $result = []; // Overview if ($count == 0) { $result = []; ui_print_info_message(['no_close' => true, 'message' => __('There are no SNMP alerts') ]); } else { ui_pagination($count, $url_pagination); switch ($config['dbtype']) { case 'mysql': case 'postgresql': $where_sql .= ' LIMIT '.$limit.' OFFSET '.$offset; $result = db_get_all_rows_sql( "SELECT * FROM talert_snmp WHERE id_group IN ($str_user_groups) ".$where_sql ); break; case 'oracle': $sql = "SELECT * FROM talert_snmp WHERE id_group IN ($str_user_groups) ".$where_sql; $set = []; if (isset($offset) && isset($limit)) { $set['limit'] = $limit; $set['offset'] = $offset; } $result = oracle_recode_query($sql, $set, 'AND', false); break; } } $table = new stdClass(); $table->data = []; $table->head = []; $table->size = []; $table->cellpadding = 4; $table->cellspacing = 4; $table->width = '100%'; $table->class = 'databox data'; $table->align = []; $table->head[0] = ''.__('P.').''; $table->align[0] = 'left'; $table->head[1] = __('Alert action'); $table->head[2] = __('SNMP Agent'); $table->size[2] = '90px'; $table->align[2] = 'left'; $table->head[3] = __('Enterprise String'); $table->align[3] = 'left'; $table->head[4] = __('Custom Value/Enterprise String'); $table->align[4] = 'left'; $table->head[5] = __('Description'); $table->head[6] = ''.__('TF.').''; $table->size[6] = '50px'; $table->align[6] = 'left'; $table->head[7] = __('Last fired'); $table->align[7] = 'left'; $table->head[8] = __('Action'); $table->size[8] = '120px'; $table->align[8] = 'left'; $table->head[9] = html_print_checkbox('all_delete_box', '1', false, true); $table->size[9] = '10px'; $table->align[9] = 'left'; foreach ($result as $row) { $data = []; $data[0] = $row['position']; $url = 'index.php?'.'sec=snmpconsole&'.'sec2=godmode/snmpconsole/snmp_alert&'.'id_alert_snmp='.$row['id_as'].'&'.'update_alert=1'; $data[1] = ''; $data[1] .= ''; if (check_acl_restricted_all($config['id_user'], $row['id_group'], 'LW')) { $data[1] .= ''.alerts_get_alert_action_name($row['id_alert']).''; } else { $data[1] .= alerts_get_alert_action_name($row['id_alert']); } $other_actions = db_get_all_rows_filter('talert_snmp_action', ['id_alert_snmp' => $row['id_as']]); $data[1] .= ''; if ($other_actions != false) { foreach ($other_actions as $action) { $data[1] .= ''; $data[1] .= ''; $data[1] .= ''; $data[1] .= ''; } } $data[1] .= '
'.alerts_get_alert_action_name($action['alert_type']).' '.html_print_image( 'images/cross.png', true, [ 'border' => '0', 'alt' => __('Delete'), ] ).'
'; $data[2] = $row['agent']; $data[3] = $row['oid']; $data[4] = $row['custom_oid']; $data[5] = $row['description']; $data[6] = $row['times_fired']; if (($row['last_fired'] != '1970-01-01 00:00:00') and ($row['last_fired'] != '01-01-1970 00:00:00')) { $data[7] = ui_print_timestamp($row['last_fired'], true); } else { $data[7] = __('Never'); } if (check_acl_restricted_all($config['id_user'], $row['id_group'], 'LW')) { $data[8] = ''.html_print_image( 'images/copy.png', true, [ 'alt' => __('Duplicate'), 'title' => __('Duplicate'), ] ).''.''.html_print_image( 'images/config.png', true, [ 'border' => '0', 'alt' => __('Update'), ] ).''.''.html_print_image( 'images/add.png', true, [ 'title' => __('Add action'), ] ).''.''.html_print_image( 'images/cross.png', true, [ 'border' => '0', 'alt' => __('Delete'), ] ).''; $data[9] = html_print_checkbox_extended( 'delete_ids[]', $row['id_as'], false, false, false, 'class="chk_delete"', true ); } else { $data[8] = ''; $data[9] = ''; } $idx = count($table->data); // The current index of the table is 1 less than the count of table data so we count before adding to table->data array_push($table->data, $data); $table->rowclass[$idx] = get_priority_class($row['priority']); } // DIALOG ADD MORE ACTIONS echo ''; // END DIALOG ADD MORE ACTIONS if (!empty($table->data)) { echo '
'; html_print_table($table); ui_pagination($count, $url_pagination); echo '
'; html_print_input_hidden('multiple_delete', 1); html_print_submit_button(__('Delete selected'), 'delete_button', false, 'class="sub delete mrgn_btn_10px"'); echo '
'; echo '
'; } echo '
'; echo '
'; html_print_input_hidden('create_alert', 1); html_print_submit_button(__('Create'), 'alert', false, 'class="sub next"'); echo '
'; echo '
'; echo '

'.__('Legend').'

'; foreach (get_priorities() as $num => $name) { echo ''.$name.''; echo '
'; } echo '
'; unset($table); } ui_require_javascript_file('pandora', 'include/javascript/', true); ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/'); ?>