From 8ad6d350affff90359dc2d976a55b90773c0d2ce Mon Sep 17 00:00:00 2001 From: Daniel Barbero Martin Date: Wed, 15 Jun 2022 13:06:10 +0200 Subject: [PATCH] refactor events meta pandora_enterprise#9086 --- pandora_console/include/ajax/events.php | 541 ++++++++++-------- pandora_console/include/functions_events.php | 258 ++++----- .../include/graphs/flot/pandora.flot.js | 33 -- .../include/javascript/pandora_events.js | 81 +-- pandora_console/operation/events/events.php | 12 +- 5 files changed, 448 insertions(+), 477 deletions(-) diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index aac24d3210..e566c4fa5e 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -55,7 +55,6 @@ if (! check_acl($config['id_user'], 0, 'ER') return; } -$get_events_details = (bool) get_parameter('get_events_details'); $get_extended_event = (bool) get_parameter('get_extended_event'); $change_status = (bool) get_parameter('change_status'); $change_owner = (bool) get_parameter('change_owner'); @@ -66,7 +65,6 @@ $get_response = (bool) get_parameter('get_response'); $get_response_target = (bool) get_parameter('get_response_target'); $get_response_params = (bool) get_parameter('get_response_params'); $get_response_description = (bool) get_parameter('get_response_description'); -$get_event_name = (bool) get_parameter('get_event_name'); $meta = get_parameter('meta', 0); $history = get_parameter('history', 0); $table_events = get_parameter('table_events', 0); @@ -79,9 +77,9 @@ $load_filter_modal = get_parameter('load_filter_modal', 0); $get_filter_values = get_parameter('get_filter_values', 0); $update_event_filter = get_parameter('update_event_filter', 0); $save_event_filter = get_parameter('save_event_filter', 0); -$in_process_event = get_parameter('in_process_event', 0); -$validate_event = get_parameter('validate_event', 0); -$delete_event = get_parameter('delete_event', 0); +$in_process_event = (bool) get_parameter('in_process_event', 0); +$validate_event = (bool) get_parameter('validate_event', 0); +$delete_event = (bool) get_parameter('delete_event', 0); $get_event_filters = get_parameter('get_event_filters', 0); $get_comments = (bool) get_parameter('get_comments', false); $get_events_fired = (bool) get_parameter('get_events_fired'); @@ -169,37 +167,47 @@ if ($get_event_filters) { } // Delete event (filtered or not). -if ($delete_event) { +if ($delete_event === true) { $filter = get_parameter('filter', []); - $id_evento = get_parameter('id_evento', 0); + $id_evento = (int) get_parameter('id_evento', 0); + $server_id = (int) get_parameter('server_id', 0); $event_rep = get_parameter('event_rep', 0); - if ($event_rep === 0) { - // Disable group by when there're result is unique. - $filter['group_rep'] = 0; - } - - // Check acl. - if (! check_acl($config['id_user'], 0, 'EM')) { - echo 'unauthorized'; - return; - } - - if ($node_id > 0) { - try { - $node = new Node($node_id); + try { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node = new Node($server_id); $node->connect(); - $r = events_delete($id_evento, $filter, false, true); - } catch (\Exception $e) { - // Unexistent agent. - $node->disconnect(); - $success = false; - echo 'owner_error'; - } finally { + } + + if ($event_rep === 0) { + // Disable group by when there're result is unique. + $filter['group_rep'] = 0; + } + + // Check acl. + if (! check_acl($config['id_user'], 0, 'EM')) { + echo 'unauthorized'; + return; + } + + $r = events_delete($id_evento, $filter, false, true); + } catch (\Exception $e) { + // Unexistent agent. + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + + $r = false; + } finally { + if (is_metaconsole() === true + && $server_id > 0 + ) { $node->disconnect(); } - } else { - $r = events_delete($id_evento, $filter); } if ($r === false) { @@ -212,23 +220,53 @@ if ($delete_event) { } // Validates an event (filtered or not). -if ($validate_event) { +if ($validate_event === true) { $filter = get_parameter('filter', []); - $id_evento = get_parameter('id_evento', 0); + $id_evento = (int) get_parameter('id_evento', 0); + $server_id = (int) get_parameter('server_id', 0); $event_rep = get_parameter('event_rep', 0); - if ($event_rep === 0) { - // Disable group by when there're result is unique. - $filter['group_rep'] = 0; + try { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node = new Node($server_id); + $node->connect(); + } + + if ($event_rep === 0) { + // Disable group by when there're result is unique. + $filter['group_rep'] = 0; + } + + // Check acl. + if (!check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + + $r = events_update_status( + $id_evento, + EVENT_VALIDATE, + $filter + ); + } catch (\Exception $e) { + // Unexistent agent. + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + + $r = false; + } finally { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } } - // Check acl. - if (! check_acl($config['id_user'], 0, 'EW')) { - echo 'unauthorized'; - return; - } - - $r = events_update_status($id_evento, EVENT_VALIDATE, $filter); if ($r === false) { echo 'Failed'; } else { @@ -239,23 +277,53 @@ if ($validate_event) { } // Sets status to in progress. -if ($in_process_event) { +if ($in_process_event === true) { $filter = get_parameter('filter', []); - $id_evento = get_parameter('id_evento', 0); + $id_evento = (int) get_parameter('id_evento', 0); + $server_id = (int) get_parameter('server_id', 0); $event_rep = get_parameter('event_rep', 0); - if ($event_rep === 0) { - // Disable group by when there're result is unique. - $filter['group_rep'] = 0; + try { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node = new Node($server_id); + $node->connect(); + } + + if ($event_rep === 0) { + // Disable group by when there're result is unique. + $filter['group_rep'] = 0; + } + + // Check acl. + if (! check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + + $r = events_update_status( + $id_evento, + EVENT_PROCESS, + $filter + ); + } catch (\Exception $e) { + // Unexistent agent. + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + + $r = false; + } finally { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } } - // Check acl. - if (! check_acl($config['id_user'], 0, 'EW')) { - echo 'unauthorized'; - return; - } - - $r = events_update_status($id_evento, EVENT_PROCESS, $filter); if ($r === false) { echo 'Failed'; } else { @@ -415,7 +483,13 @@ if ($get_filter_values) { 'filter_id' => 0, ]; } else { - $event_filter['module_search'] = io_safe_output(db_get_value_filter('nombre', 'tagente_modulo', ['id_agente_modulo' => $event_filter['id_agent_module']])); + $event_filter['module_search'] = io_safe_output( + db_get_value_filter( + 'nombre', + 'tagente_modulo', + ['id_agente_modulo' => $event_filter['id_agent_module']] + ) + ); $a = array_keys(users_get_groups(false)); $event_filter['group_name'] = ''; foreach ($a as $key => $value) { @@ -969,24 +1043,6 @@ $(document).ready(function (){ } -if ($get_event_name) { - $event_id = get_parameter('event_id'); - - if ($meta) { - $name = events_meta_get_event_name($event_id, $history); - } else { - $name = db_get_value('evento', 'tevento', 'id_evento', $event_id); - } - - if ($name === false) { - return; - } - - ui_print_truncate_text(strip_tags(io_safe_output($name)), 75, false, false, false, '...'); - - return; -} - if ($get_response_description) { $response_id = get_parameter('response_id'); @@ -1023,7 +1079,7 @@ if ($get_response_params) { return; } -if ($get_response_target) { +if ($get_response_target === true) { if (! check_acl($config['id_user'], 0, 'EW')) { echo 'unauthorized'; return; @@ -1033,28 +1089,81 @@ if ($get_response_target) { $event_id = (int) get_parameter('event_id'); $server_id = (int) get_parameter('server_id'); - $event_response = db_get_row('tevent_response', 'id', $response_id); + try { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node = new Node($server_id); + $node->connect(); + } + + $event_response = db_get_row('tevent_response', 'id', $response_id); + + if (empty($event_response) === true) { + return; + } + + echo events_get_response_target($event_id, $response_id); + } catch (\Exception $e) { + // Unexistent agent. + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } - if (empty($event_response)) { return; + } finally { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } } - echo events_get_response_target($event_id, $response_id, $server_id); - return; } -if ($get_response) { +if ($get_response === true) { if (! check_acl($config['id_user'], 0, 'EW')) { echo 'unauthorized'; return; } $response_id = get_parameter('response_id'); + $server_id = (int) get_parameter('server_id'); - $event_response = db_get_row('tevent_response', 'id', $response_id); + try { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node = new Node($server_id); + $node->connect(); + } - if (empty($event_response)) { + $event_response = db_get_row( + 'tevent_response', + 'id', + $response_id + ); + } catch (\Exception $e) { + // Unexistent agent. + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + + return; + } finally { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + } + + if (empty($event_response) === true) { return; } @@ -1063,7 +1172,7 @@ if ($get_response) { return; } -if ($perform_event_response) { +if ($perform_event_response === true) { global $config; if (! check_acl($config['id_user'], 0, 'EW')) { @@ -1076,17 +1185,45 @@ if ($perform_event_response) { $event_id = (int) get_parameter('event_id'); $server_id = (int) get_parameter('server_id', 0); - if (empty($target)) { - $command = events_get_response_target($event_id, $response_id, $server_id); + if (empty($target) === true) { + try { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node = new Node($server_id); + $node->connect(); + } + + $event_response = db_get_row('tevent_response', 'id', $response_id); + + if (empty($event_response) === true) { + return; + } + + $command = events_get_response_target($event_id, $response_id, $server_id); + + $command_timeout = ($event_response !== false) ? $event_response['command_timeout'] : 90; + } catch (\Exception $e) { + // Unexistent agent. + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + + return; + } finally { + if (is_metaconsole() === true + && $server_id > 0 + ) { + $node->disconnect(); + } + } } else { $command = $target; } - $event_response = db_get_row('tevent_response', 'id', $response_id); - - $command_timeout = $event_response !== false ? $event_response['command_timeout'] : 90; - - if (enterprise_installed()) { + if (enterprise_installed() === true) { if ($event_response['server_to_exec'] != 0 && $event_response['type'] == 'command') { $commandExclusions = [ 'vi', @@ -1231,14 +1368,22 @@ if ($dialogue_event_response) { } else { echo "
"; - echo $prompt."Executing command: $command_str"; + echo $prompt.'Executing command: '.$command_str; echo '

'; - echo "'; + echo "'; echo "


"; echo "
'; } @@ -1306,12 +1451,16 @@ if ($add_comment === true) { if ($change_status === true) { $event_ids = get_parameter('event_ids'); $new_status = get_parameter('new_status'); + $server_id = 0; + if (is_metaconsole() === true) { + $server_id = (int) get_parameter('server_id'); + } try { if (is_metaconsole() === true - && $node_id > 0 + && $server_id > 0 ) { - $node = new Node($node_id); + $node = new Node($server_id); $node->connect(); } @@ -1322,7 +1471,7 @@ if ($change_status === true) { } catch (\Exception $e) { // Unexistent agent. if (is_metaconsole() === true - && $node_id > 0 + && $server_id > 0 ) { $node->disconnect(); } @@ -1331,7 +1480,7 @@ if ($change_status === true) { echo 'owner_error'; } finally { if (is_metaconsole() === true - && $node_id > 0 + && $server_id > 0 ) { $node->disconnect(); } @@ -1375,20 +1524,20 @@ if ($change_status === true) { return; } -if ($change_owner) { - $new_owner = get_parameter('new_owner'); - $event_id = get_parameter('event_id'); - $similars = true; +if ($change_owner === true) { + $new_owner = get_parameter('new_owner', ''); + $event_id = (int) get_parameter('event_id', 0); + $server_id = (int) get_parameter('server_id', 0); - if ($new_owner == -1) { + if ($new_owner === -1) { $new_owner = ''; } try { if (is_metaconsole() === true - && $node_id > 0 + && $server_id > 0 ) { - $node = new Node($node_id); + $node = new Node($server_id); $node->connect(); } @@ -1400,7 +1549,7 @@ if ($change_owner) { } catch (\Exception $e) { // Unexistent agent. if (is_metaconsole() === true - && $node_id > 0 + && $server_id > 0 ) { $node->disconnect(); } @@ -1408,7 +1557,7 @@ if ($change_owner) { $return = false; } finally { if (is_metaconsole() === true - && $node_id > 0 + && $server_id > 0 ) { $node->disconnect(); } @@ -1438,19 +1587,7 @@ if ($get_extended_event) { $event_id = $event['id_evento']; $readonly = false; - if (!$meta - && isset($config['event_replication']) - && $config['event_replication'] == 1 - && $config['show_events_in_local'] == 1 - || enterprise_hook( - 'enterprise_acl', - [ - $config['id_user'], - 'eventos', - 'execute_event_responses', - ] - ) === false - ) { + if (enterprise_hook('enterprise_acl', [$config['id_user'], 'eventos', 'execute_event_responses']) === false) { $readonly = true; } @@ -1458,7 +1595,7 @@ if ($get_extended_event) { $event['clean_tags'] = events_clean_tags($event['tags']); // If the event is not found, we abort. - if (empty($event)) { + if (empty($event) === true) { ui_print_error_message('Event not found'); return false; } @@ -1471,7 +1608,7 @@ if ($get_extended_event) { $timestamp_first = $event['timestamp_first']; $timestamp_last = $event['timestamp_last']; $server_id = $event['server_id']; - if (empty($server_id) && !empty($event['server_name']) && is_metaconsole()) { + if (empty($server_id) === true && empty($event['server_name']) === false && is_metaconsole() === true) { $server_id = metaconsole_get_id_server($event['server_name']); } @@ -1479,7 +1616,7 @@ if ($get_extended_event) { $event['similar_ids'] = $similar_ids; - if (!isset($comments)) { + if (isset($comments) === false) { $comments = $event['user_comment']; } @@ -1646,28 +1783,25 @@ if ($get_extended_event) { [] ))) ) { - $responses = events_page_responses($event); + $responses = events_page_responses($event, $server_id); } else { $responses = ''; } $console_url = ''; - // If metaconsole switch to node to get details and custom fields. - if ($meta || (is_metaconsole() && !empty($server_id))) { - $server = metaconsole_get_connection_by_id($server_id); - } else { - $server = ''; - } - - $details = events_page_details($event, $server); + $details = events_page_details($event, $server_id); $related = ''; if (events_has_extended_info($event['id_evento']) === true) { - $related = events_page_related($event, $server); + $related = events_page_related( + $event, + $server + ); } $connected = true; - if ($meta || (is_metaconsole() && !empty($server_id))) { + if (is_metaconsole() === true && empty($server_id) === false) { + $server = metaconsole_get_connection_by_id($server_id); if (metaconsole_connect($server) === NOERR) { $connected = true; } else { @@ -1680,7 +1814,7 @@ if ($get_extended_event) { $custom_data = events_page_custom_data($event); } - if ($meta && $connected === true) { + if (is_metaconsole() === true && empty($server_id) === false) { metaconsole_restore_db(); } @@ -1688,13 +1822,55 @@ if ($get_extended_event) { $comments = '
'; - $notifications = '
'.ui_print_error_message(__('Error adding comment'), '', true).'
'; - $notifications .= '
'.ui_print_success_message(__('Comment added successfully'), '', true).'
'; - $notifications .= '
'.ui_print_error_message(__('Error changing event status'), '', true).'
'; - $notifications .= '
'.ui_print_success_message(__('Event status changed successfully'), '', true).'
'; - $notifications .= '
'.ui_print_error_message(__('Error changing event owner'), '', true).'
'; - $notifications .= '
'.ui_print_success_message(__('Event owner changed successfully'), '', true).'
'; - $notifications .= '
'.ui_print_error_message(__('Error deleting event'), '', true).'
'; + $notifications = '
'; + $notifications .= ui_print_error_message( + __('Error adding comment'), + '', + true + ); + $notifications .= '
'; + $notifications .= '
'; + $notifications .= ui_print_success_message( + __('Comment added successfully'), + '', + true + ); + $notifications .= '
'; + $notifications .= '
'; + $notifications .= ui_print_error_message( + __('Error changing event status'), + '', + true + ); + $notifications .= '
'; + $notifications .= '
'; + $notifications .= ui_print_success_message( + __('Event status changed successfully'), + '', + true + ); + $notifications .= '
'; + $notifications .= '
'; + $notifications .= ui_print_error_message( + __('Error changing event owner'), + '', + true + ); + $notifications .= '
'; + $notifications .= '
'; + $notifications .= ui_print_success_message( + __('Event owner changed successfully'), + '', + true + ); + $notifications .= '
'; + $notifications .= '
'; + $notifications .= ui_print_error_message( + __('Error deleting event'), + '', + true + ); + $notifications .= '
'; $loading = '
'.html_print_image('images/spinner.gif', true).'
'; @@ -1796,91 +1972,6 @@ if ($get_extended_event) { echo $out.$js; } -if ($get_events_details) { - $event_ids = explode(',', get_parameter('event_ids')); - $events = db_get_all_rows_filter( - 'tevento', - [ - 'id_evento' => $event_ids, - 'order' => 'utimestamp ASC', - ], - [ - 'evento', - 'utimestamp', - 'estado', - 'criticity', - 'id_usuario', - ], - 'AND', - true - ); - - $out = ''; - $out .= ''; - foreach ($events as $event) { - switch ($event['estado']) { - case 0: - $img = ui_get_full_url('images/star.png', false, false, false); - $title = __('New event'); - break; - - case 1: - $img = ui_get_full_url('images/tick.png', false, false, false); - $title = __('Event validated'); - break; - - case 2: - $img = ui_get_full_url('images/hourglass.png', false, false, false); - $title = __('Event in process'); - break; - - default: - // Ignore. - break; - } - - $out .= ''; - $out .= ''; - - $out .= ''; - $out .= ''; - $out .= ''; - - $out .= ''; - $out .= ''; - $out .= ''; - - $out .= ''; - } - - $out .= '
'; - $out .= io_safe_output($event['evento']); - $out .= '
'; - $out .= html_print_image(ui_get_full_url('images/clock.png', false, false, false), true, ['title' => __('Timestamp'), 'class' => 'invert_filter'], false, true); - - $out .= ''; - $out .= date($config['date_format'], $event['utimestamp']); - $out .= '
'; - $out .= html_print_image($img, true, ['title' => $title], false, true); - $out .= ''; - $out .= $title; - if ($event['estado'] == 1) { - if (empty($event['id_usuario'])) { - $ack_user = ''.__('Auto').''; - } else { - $ack_user = $event['id_usuario']; - } - - $out .= ' ('.$ack_user.')'; - } - - $out .= '
'; - $out .= '
'; - $out .= '
'; - - echo $out; -} - if ($table_events) { include_once 'include/functions_events.php'; include_once 'include/functions_graph.php'; diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 2731c48bf2..245813a46c 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -466,16 +466,14 @@ function events_update_status($id_evento, $status, $filter=null) global $config; if (!$status) { - error_log('No hay estado'); return false; } - if (!isset($id_evento) || $id_evento <= 0) { - error_log('No hay id_evento'); + if (isset($id_evento) === false || $id_evento <= 0) { return false; } - if (!isset($filter) || !is_array($filter)) { + if (isset($filter) === false || is_array($filter) === false) { $filter = ['group_rep' => 0]; } @@ -510,7 +508,7 @@ function events_update_status($id_evento, $status, $filter=null) // Sort_field. null, // Historical table. - $history, + false, // Return_sql. true ); @@ -1475,6 +1473,10 @@ function events_get_all( $having ); + if ($return_sql === true) { + return $sql; + } + if (!$user_is_admin) { // XXX: Confirm there's no extra grants unhandled!. $can_manage = '0 as user_can_manage'; @@ -1646,10 +1648,6 @@ function events_get_all( } } - if ($return_sql) { - return $sql; - } - return db_get_all_rows_sql($sql); } @@ -1870,8 +1868,6 @@ function events_change_status( * owner will be set, if empty, will be cleaned. * @param boolean $force Flag to force the change or not (not force is * change only when it hasn't owner). - * @param boolean $meta Metaconsole mode flag. - * @param boolean $history History mode flag. * * @return boolean Whether or not it was successful. */ @@ -3057,17 +3053,13 @@ function events_get_event_filter_select($manage=true) * Events pages functions to load modal window with advanced view of an event. * Called from include/ajax/events.php. * - * @param mixed $event Event. - * @param array $childrens_ids Children_ids. + * @param mixed $event Event. * * @return string HTML. */ -function events_page_responses($event, $childrens_ids=[]) +function events_page_responses($event) { global $config; - // - // Responses. - // $table_responses = new StdClass(); $table_responses->cellspacing = 2; $table_responses->cellpadding = 2; @@ -3079,51 +3071,47 @@ function events_page_responses($event, $childrens_ids=[]) $table_responses->style[2] = 'text-align:right;'; $table_responses->class = 'table_modal_alternate'; - if (tags_checks_event_acl($config['id_user'], $event['id_grupo'], 'EM', $event['clean_tags'], $childrens_ids)) { + $acl_tags_event_manager = tags_checks_event_acl( + $config['id_user'], + $event['id_grupo'], + 'EM', + $event['clean_tags'] + ); + + if ($acl_tags_event_manager === true) { // Owner. $data = []; $data[0] = __('Change owner'); // Owner change can be done to users that belong to the event group // with ER permission. - $profiles_view_events = db_get_all_rows_filter('tperfil', ['event_view' => '1'], 'id_perfil'); + $profiles_view_events = db_get_all_rows_filter( + 'tperfil', + ['event_view' => '1'], + 'id_perfil' + ); + foreach ($profiles_view_events as $k => $v) { $profiles_view_events[$k] = reset($v); } - // Juanma (05/05/2014) Fix : Propagate ACL. $_user_groups = array_keys( - users_get_groups($config['id_user'], 'ER', users_can_manage_group_all()) + users_get_groups( + $config['id_user'], + 'ER', + users_can_manage_group_all() + ) ); - $strict_user = db_get_value( - 'strict_acl', - 'tusuario', - 'id_user', - $config['id_user'] + $users = groups_get_users( + $_user_groups, + ['id_perfil' => $profiles_view_events], + true ); - if ($strict_user) { - $user_name = db_get_value( - 'id_user', - 'tusuario', - 'id_user', - $config['id_user'] - ); - - $users = []; - $users[0]['id_user'] = $config['id_user']; - $users[0]['fullname'] = $user_name; - } else { - $users = groups_get_users( - $_user_groups, - ['id_perfil' => $profiles_view_events], - true - ); - } foreach ($users as $u) { $owners[$u['id_user']] = $u['id_user']; } - if ($event['owner_user'] == '') { + if (empty($event['owner_user']) === true) { $owner_name = __('None'); } else { $owner_name = db_get_value( @@ -3153,7 +3141,7 @@ function events_page_responses($event, $childrens_ids=[]) __('Update'), 'owner_button', false, - 'event_change_owner();', + 'event_change_owner('.$event['id_evento'].', '.$event['server_id'].');', 'class="sub next w70p"', true ); @@ -3171,8 +3159,7 @@ function events_page_responses($event, $childrens_ids=[]) $config['id_user'], $event['id_grupo'], 'EM', - $event['clean_tags'], - $childrens_ids + $event['clean_tags'] ) ) { // If the user has manager acls, the status can be changed to all @@ -3243,14 +3230,12 @@ function events_page_responses($event, $childrens_ids=[]) $config['id_user'], $event['id_grupo'], 'EM', - $event['clean_tags'], - $childrens_ids + $event['clean_tags'] )) || (tags_checks_event_acl( $config['id_user'], $event['id_grupo'], 'EW', - $event['clean_tags'], - $childrens_ids + $event['clean_tags'] )) ) { $table_responses->data[] = $data; @@ -3275,8 +3260,7 @@ function events_page_responses($event, $childrens_ids=[]) $config['id_user'], $event['id_grupo'], 'EM', - $event['clean_tags'], - $childrens_ids + $event['clean_tags'] ) ) { // Delete. @@ -3357,17 +3341,16 @@ function events_page_responses($event, $childrens_ids=[]) var params = get_response_params(id_response); var description = get_response_description(id_response); $('.params_rows').remove(); - $('#responses_table') .append('".__('Description')."'+description+''); - + if (params.length == 1 && params[0] == '') { return; } - + $('#responses_table') .append('".__('Parameters')."'); - + for (i = 0; i < params.length; i++) { add_row_param('responses_table',params[i]); } @@ -3383,20 +3366,15 @@ function events_page_responses($event, $childrens_ids=[]) /** * Replace macros in the target of a response and return it. - * If server_id > 0, it's a metaconsole query. * * @param integer $event_id Event identifier. * @param integer $response_id Event response identifier. - * @param integer $server_id Node identifier (for metaconsole). - * @param boolean $history Use the history database or not. * * @return string The response text with the macros applied. */ function events_get_response_target( int $event_id, - int $response_id, - int $server_id=0, - bool $history=false + int $response_id ) { global $config; @@ -3408,59 +3386,28 @@ function events_get_response_target( $eventObjt = new PandoraFMS\Event(); } - // If server_id > 0, it's a metaconsole query. - $meta = $server_id > 0 || is_metaconsole(); - $event_table = 'tevento'; - $event = db_get_row($event_table, 'id_evento', $event_id); - + $event = db_get_row('tevento', 'id_evento', $event_id); $event_response = db_get_row('tevent_response', 'id', $response_id); $target = io_safe_output($event_response['target']); if (strpos($target, '_agent_alias_') !== false) { - if ($meta) { - $agente_table_name = 'tmetaconsole_agent'; - $filter = [ - 'id_tagente' => $event['id_agente'], - 'id_tmetaconsole_setup' => $server_id, - ]; - } else { - $agente_table_name = 'tagente'; - $filter = ['id_agente' => $event['id_agente']]; - } - + $agente_table_name = 'tagente'; + $filter = ['id_agente' => $event['id_agente']]; $alias = db_get_value_filter('alias', $agente_table_name, $filter); $target = str_replace('_agent_alias_', io_safe_output($alias), $target); } if (strpos($target, '_agent_name_') !== false) { - if ($meta) { - $agente_table_name = 'tmetaconsole_agent'; - $filter = [ - 'id_tagente' => $event['id_agente'], - 'id_tmetaconsole_setup' => $server_id, - ]; - } else { - $agente_table_name = 'tagente'; - $filter = ['id_agente' => $event['id_agente']]; - } - + $agente_table_name = 'tagente'; + $filter = ['id_agente' => $event['id_agente']]; $name = db_get_value_filter('nombre', $agente_table_name, $filter); $target = str_replace('_agent_name_', io_safe_output($name), $target); } // Substitute each macro. if (strpos($target, '_agent_address_') !== false) { - if ($meta) { - $agente_table_name = 'tmetaconsole_agent'; - $filter = [ - 'id_tagente' => $event['id_agente'], - 'id_tmetaconsole_setup' => $server_id, - ]; - } else { - $agente_table_name = 'tagente'; - $filter = ['id_agente' => $event['id_agente']]; - } - + $agente_table_name = 'tagente'; + $filter = ['id_agente' => $event['id_agente']]; $ip = db_get_value_filter('direccion', $agente_table_name, $filter); // If agent has not an IP, display N/A. if ($ip === false || $ip === '') { @@ -3478,18 +3425,21 @@ function events_get_response_target( || (strpos($target, '_module_name_') !== false) ) { if ($event['id_agentmodule'] !== 0) { - if ($meta) { - $server = metaconsole_get_connection_by_id($server_id); - metaconsole_connect($server); - } - - $module = db_get_row('tagente_modulo', 'id_agente_modulo', $event['id_agentmodule']); - if (empty($module['ip_target'])) { + $module = db_get_row( + 'tagente_modulo', + 'id_agente_modulo', + $event['id_agentmodule'] + ); + if (empty($module['ip_target']) === true) { $module['ip_target'] = __('N/A'); } - $target = str_replace('_module_address_', $module['ip_target'], $target); - if (empty($module['nombre'])) { + $target = str_replace( + '_module_address_', + $module['ip_target'], + $target + ); + if (empty($module['nombre']) === true) { $module['nombre'] = __('N/A'); } @@ -3498,10 +3448,6 @@ function events_get_response_target( io_safe_output($module['nombre']), $target ); - - if ($meta) { - metaconsole_restore_db(); - } } else { $target = str_replace('_module_address_', __('N/A'), $target); $target = str_replace('_module_name_', __('N/A'), $target); @@ -3513,7 +3459,7 @@ function events_get_response_target( } if (strpos($target, '_user_id_') !== false) { - if (!empty($event['id_usuario'])) { + if (empty($event['id_usuario']) === false) { $target = str_replace('_user_id_', $event['id_usuario'], $target); } else { $target = str_replace('_user_id_', __('N/A'), $target); @@ -3567,13 +3513,17 @@ function events_get_response_target( if (strpos($target, '_alert_id_') !== false) { $target = str_replace( '_alert_id_', - empty($event['id_alert_am']) ? __('N/A') : $event['id_alert_am'], + (empty($event['id_alert_am']) === true) ? __('N/A') : $event['id_alert_am'], $target ); } if (strpos($target, '_event_severity_id_') !== false) { - $target = str_replace('_event_severity_id_', $event['criticity'], $target); + $target = str_replace( + '_event_severity_id_', + $event['criticity'], + $target + ); } if (strpos($target, '_event_severity_text_') !== false) { @@ -3593,15 +3543,27 @@ function events_get_response_target( } if (strpos($target, '_event_extra_id_') !== false) { - if (empty($event['id_extra'])) { - $target = str_replace('_event_extra_id_', __('N/A'), $target); + if (empty($event['id_extra']) === true) { + $target = str_replace( + '_event_extra_id_', + __('N/A'), + $target + ); } else { - $target = str_replace('_event_extra_id_', $event['id_extra'], $target); + $target = str_replace( + '_event_extra_id_', + $event['id_extra'], + $target + ); } } if (strpos($target, '_event_source_') !== false) { - $target = str_replace('_event_source_', $event['source'], $target); + $target = str_replace( + '_event_source_', + $event['source'], + $target + ); } if (strpos($target, '_event_instruction_') !== false) { @@ -3673,7 +3635,7 @@ function events_get_response_target( } if (strpos($target, '_owner_user_') !== false) { - if (empty($event['owner_user'])) { + if (empty($event['owner_user']) === true) { $target = str_replace('_owner_user_', __('N/A'), $target); } else { $target = str_replace('_owner_user_', $event['owner_user'], $target); @@ -3894,18 +3856,21 @@ function events_page_related($event, $server='') /** * Generates the 'details' page in event view. * - * @param array $event To be displayed. - * @param string $server Server (if in metaconsole environment). + * @param array $event To be displayed. + * @param integer $server Server (if in metaconsole environment). * * @return string HTML to be displayed. */ -function events_page_details($event, $server='') +function events_page_details($event, $server_id=0) { global $img_sev; global $config; - // If server is provided, get the hash parameters. - if (!empty($server) && is_metaconsole()) { + // If metaconsole switch to node to get details and custom fields. + $hashstring = ''; + $serverstring = ''; + if (is_metaconsole() === true && empty($server_id) === false) { + $server = metaconsole_get_connection_by_id($server_id); $hashdata = metaconsole_get_server_hashdata($server); $hashstring = '&loginhash=auto&loginhash_data='.$hashdata.'&loginhash_user='.str_rot13($config['id_user']); $serverstring = $server['server_url'].'/'; @@ -3913,9 +3878,6 @@ function events_page_details($event, $server='') if (metaconsole_connect($server) !== NOERR) { return ui_print_error_message(__('There was an error connecting to the node'), '', true); } - } else { - $hashstring = ''; - $serverstring = ''; } $table_class = 'table_modal_alternate'; @@ -3929,21 +3891,6 @@ function events_page_details($event, $server='') $table_details->cellpadding = 0; $table_details->class = $table_class; - /* - * Useless switch. - - switch ($event['event_type']) { - case 'going_unknown': - case 'going_up_warning': - case 'going_down_warning': - case 'going_up_critical': - case 'going_down_critical': - default: - // Ignore. - break; - } - */ - if ($event['id_agente'] != 0) { $agent = db_get_row('tagente', 'id_agente', $event['id_agente']); } else { @@ -3954,7 +3901,7 @@ function events_page_details($event, $server='') $data[1] = empty($agent) ? ''.__('N/A').'' : ''; $table_details->data[] = $data; - if (!empty($agent)) { + if (empty($agent) === false) { $data = []; $data[0] = '
'.__('Name').'
'; if (can_user_access_node() && is_metaconsole() && empty($event['server_id']) === true) { @@ -3996,7 +3943,7 @@ function events_page_details($event, $server='') $data = []; $data[0] = '
'.__('OS').'
'; $data[1] = ui_print_os_icon($agent['id_os'], true, true); - if (!empty($agent['os_version'])) { + if (empty($agent['os_version']) === false) { $data[1] .= ' ('.$agent['os_version'].')'; } @@ -4042,7 +3989,7 @@ function events_page_details($event, $server='') $data[1] = empty($module) ? ''.__('N/A').'' : ''; $table_details->data[] = $data; - if (!empty($module)) { + if (empty($module) === false) { // Module name. $data = []; $data[0] = '
'.__('Name').'
'; @@ -4071,14 +4018,7 @@ function events_page_details($event, $server='') // ACL. $acl_graph = false; - $strict_user = (bool) db_get_value( - 'strict_acl', - 'tusuario', - 'id_user', - $config['id_user'] - ); - - if (!empty($agent['id_grupo'])) { + if (empty($agent['id_grupo']) === false) { $acl_graph = check_acl( $config['id_user'], $agent['id_grupo'], @@ -4114,7 +4054,7 @@ function events_page_details($event, $server='') 'refresh' => SECONDS_10MINUTES, ]; - if (defined('METACONSOLE')) { + if (is_metaconsole() === true && empty($server_id) === false) { // Set the server id. $graph_params['server'] = $server['id']; } @@ -4229,7 +4169,7 @@ function events_page_details($event, $server='') $details = '
'.html_print_table($table_details, true).'
'; - if (!empty($server) && is_metaconsole()) { + if (is_metaconsole() === true && empty($server_id) === false) { metaconsole_restore_db(); } diff --git a/pandora_console/include/graphs/flot/pandora.flot.js b/pandora_console/include/graphs/flot/pandora.flot.js index 3e286acddd..2270c0276f 100644 --- a/pandora_console/include/graphs/flot/pandora.flot.js +++ b/pandora_console/include/graphs/flot/pandora.flot.js @@ -2945,39 +2945,6 @@ function set_watermark(graph_id, plot, watermark_src) { ); } -function get_event_details(event_ids) { - table = ""; - if (typeof event_ids != "undefined") { - var inputs = []; - var table; - inputs.push("get_events_details=1"); - inputs.push("event_ids=" + event_ids); - inputs.push("page=include/ajax/events"); - - // Autologin - if ($("#hidden-loginhash").val() != undefined) { - inputs.push("loginhash=" + $("#hidden-loginhash").val()); - inputs.push("loginhash_data=" + $("#hidden-loginhash_data").val()); - inputs.push("loginhash_user=" + $("#hidden-loginhash_user").val()); - } - - jQuery.ajax({ - data: inputs.join("&"), - type: "GET", - url: (action = "../../ajax.php"), - timeout: 10000, - dataType: "html", - async: false, - success: function(data) { - table = data; - //forced_title_callback(); - } - }); - } - - return table; -} - //Ajusta la grafica pequenña con el desplazamiento del eje y function adjust_left_width_canvas(adapter_id, adapted_id) { var adapter_left_margin = $("#" + adapter_id + " .yAxis .tickLabel").width(); diff --git a/pandora_console/include/javascript/pandora_events.js b/pandora_console/include/javascript/pandora_events.js index b30049ae3b..c8dfcbc1e5 100644 --- a/pandora_console/include/javascript/pandora_events.js +++ b/pandora_console/include/javascript/pandora_events.js @@ -1,4 +1,4 @@ -/*global jQuery,$,forced_title_callback,Base64, dt_events*/ +/*global jQuery, $, forced_title_callback, dt_events, confirmDialog*/ // Show the modal window of an event function show_event_dialog(event, dialog_page, result) { @@ -117,7 +117,7 @@ function show_event_dialog(event, dialog_page, result) { function execute_response(event_id, server_id) { var response_id = $("#select_custom_response option:selected").val(); - var response = get_response(response_id); + var response = get_response(response_id, server_id); // If cannot get response abort it if (response == null) { @@ -232,13 +232,14 @@ function show_massive_response_dialog( } // Get an event response from db -function get_response(response_id) { +function get_response(response_id, server_id) { var response = ""; var params = []; params.push("page=include/ajax/events"); params.push("get_response=1"); params.push("response_id=" + response_id); + params.push("server_id=" + server_id); jQuery.ajax({ data: params.join("&"), @@ -300,31 +301,6 @@ function get_response_description(response_id) { return response_description; } -// Get an event response description from db -function get_event_name(event_id, meta, history) { - var name = ""; - - var params = []; - params.push("page=include/ajax/events"); - params.push("get_event_name=1"); - params.push("event_id=" + event_id); - params.push("meta=" + meta); - params.push("history=" + history); - - jQuery.ajax({ - data: params.join("&"), - type: "POST", - url: $("#hidden-ajax_file").val(), - async: false, - dataType: "html", - success: function(data) { - name = data; - } - }); - - return name; -} - function add_row_param(id_table, param) { $("#" + id_table).append( '' + @@ -458,7 +434,7 @@ function perform_response_massive(response, response_id, out_iterator) { } // Change the status of an event to new, in process or validated. -function event_change_status(event_ids, node_id) { +function event_change_status(event_ids, server_id) { var new_status = $("#estado").val(); $("#button-status_button").attr("disabled", "disabled"); @@ -470,7 +446,7 @@ function event_change_status(event_ids, node_id) { change_status: 1, event_ids: event_ids, new_status: new_status, - node_id: node_id + server_id: server_id }, type: "POST", url: $("#hidden-ajax_file").val(), @@ -517,12 +493,8 @@ function event_change_status(event_ids, node_id) { } // Change te owner of an event to one user of empty -function event_change_owner() { - var event_id = $("#hidden-id_event").val(); +function event_change_owner(event_id, server_id) { var new_owner = $("#id_owner").val(); - var meta = $("#hidden-meta").val(); - var history = $("#hidden-history").val(); - var node_id = $("#hidden-node_id").val(); $("#button-owner_button").attr("disabled", "disabled"); $("#response_loading").show(); @@ -532,10 +504,8 @@ function event_change_owner() { page: "include/ajax/events", change_owner: 1, event_id: event_id, - new_owner: new_owner, - meta: meta, - node_id: node_id, - history: history + server_id: server_id, + new_owner: new_owner }, type: "POST", url: $("#hidden-ajax_file").val(), @@ -588,11 +558,6 @@ function event_comment(current_event) { var comment = $("#textarea_comment").val(); - var history = 0; - if ($("#hidden-history").val() != undefined) { - history = $("#hidden-history").val(); - } - if (comment == "") { show_event_dialog(current_event, "comments", "comment_error"); return false; @@ -608,7 +573,6 @@ function event_comment(current_event) { } params.push("comment=" + comment); params.push("server_id=" + event.server_id); - params.push("history=" + history); $("#button-comment_button").attr("disabled", "disabled"); $("#response_loading").show(); @@ -617,9 +581,8 @@ function event_comment(current_event) { data: params.join("&"), type: "POST", url: $("#hidden-ajax_file").val(), - async: true, dataType: "html", - success: function(data) { + success: function() { $("#button-comment_button").removeAttr("disabled"); $("#response_loading").hide(); $("#link_comments").click(); @@ -678,7 +641,7 @@ function show_event_response_command_dialog(id, response, total_checked) { } var processed = 0; -function update_event(table, id_evento, type, event_rep, row) { +function update_event(table, id_evento, type, event_rep, row, server_id) { var inputs = $("#events_form :input"); var values = {}; var redraw = false; @@ -697,6 +660,7 @@ function update_event(table, id_evento, type, event_rep, row) { in_process_event: type.in_process_event, delete_event: type.delete_event, id_evento: id_evento, + server_id: server_id, event_rep: event_rep, filter: values }, @@ -726,7 +690,7 @@ function update_event(table, id_evento, type, event_rep, row) { } // Update events matching current filters and id_evento selected. -function validate_event(table, id_evento, event_rep, row) { +function validate_event(table, id_evento, event_rep, row, server_id) { var button = document.getElementById("val-" + id_evento); if (!button) { // Button does not exist. Ignore. @@ -736,10 +700,17 @@ function validate_event(table, id_evento, event_rep, row) { button.children[0]; button.children[0].src = "images/spinner.gif"; - return update_event(table, id_evento, { validate_event: 1 }, event_rep, row); + return update_event( + table, + id_evento, + { validate_event: 1 }, + event_rep, + row, + server_id + ); } -function in_process_event(table, id_evento, event_rep, row) { +function in_process_event(table, id_evento, event_rep, row, server_id) { var button = document.getElementById("proc-" + id_evento); if (!button) { // Button does not exist. Ignore. @@ -754,11 +725,12 @@ function in_process_event(table, id_evento, event_rep, row) { id_evento, { in_process_event: 1 }, event_rep, - row + row, + server_id ); } -function delete_event(table, id_evento, event_rep, row) { +function delete_event(table, id_evento, event_rep, row, server_id) { var button = document.getElementById("del-" + id_evento); if (!button) { // Button does not exist. Ignore. @@ -779,7 +751,8 @@ function delete_event(table, id_evento, event_rep, row) { id_evento, { delete_event: 1 }, event_rep, - row + row, + server_id ); }, onDeny: function() { diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index 5d174d8274..8b807338e1 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -2209,10 +2209,10 @@ function process_datatables_item(item) { // Validate. item.options += ''; + item.options += item.max_id_evento+', '+ item.event_rep +', this, '+item.server_id+')" id="val-'+item.max_id_evento+'">'; item.options += ' __('Validate events'), 'class' => 'invert_filter']); ?>'; } else { - item.options += item.id_evento+', 0, this)" id="val-'+item.id_evento+'">'; + item.options += item.id_evento+', 0, this, '+item.server_id+')" id="val-'+item.id_evento+'">'; item.options += ' __('Validate event'), 'class' => 'invert_filter']); ?>'; } } @@ -2221,9 +2221,9 @@ function process_datatables_item(item) { // In process. item.options += ''; + item.options += item.max_id_evento+', '+ item.event_rep +', this, '+item.server_id+')" id="proc-'+item.max_id_evento+'">'; } else { - item.options += item.id_evento+', 0, this)" id="proc-'+item.id_evento+'">'; + item.options += item.id_evento+', 0, this, '+item.server_id+')" id="proc-'+item.id_evento+'">'; } item.options += ' __('Change to in progress status'), 'class' => 'invert_filter']); ?>'; } @@ -2233,10 +2233,10 @@ function process_datatables_item(item) { // Delete. item.options += ''; + item.options += item.max_id_evento+', '+ item.event_rep +', this, '+item.server_id+')" id="del-'+item.max_id_evento+'">'; item.options += ' __('Delete events'), 'class' => 'invert_filter']); ?>'; } else { - item.options += item.id_evento+', 0, this)" id="del-'+item.id_evento+'">'; + item.options += item.id_evento+', 0, this, '+item.server_id+')" id="del-'+item.id_evento+'">'; item.options += ' __('Delete event'), 'class' => 'invert_filter']); ?>'; } }