From 33b1c0ab8f560664feb21c10bdb8ed6bc24f21df Mon Sep 17 00:00:00 2001 From: Daniel Barbero Date: Thu, 3 Nov 2022 12:00:58 +0100 Subject: [PATCH] add new filter pandora_enterprise#9135 --- pandora_console/extras/mr/59.sql | 5 + .../godmode/events/event_edit_filter.php | 94 +++++++++++-------- pandora_console/include/ajax/events.php | 7 ++ pandora_console/include/functions_events.php | 11 ++- pandora_console/operation/events/events.php | 18 ++++ pandora_console/pandoradb.sql | 1 + 6 files changed, 98 insertions(+), 38 deletions(-) create mode 100644 pandora_console/extras/mr/59.sql diff --git a/pandora_console/extras/mr/59.sql b/pandora_console/extras/mr/59.sql new file mode 100644 index 0000000000..69f93d9e8a --- /dev/null +++ b/pandora_console/extras/mr/59.sql @@ -0,0 +1,5 @@ +START TRANSACTION; + +ALTER TABLE `tevent_filter` ADD COLUMN `owner_user` INT NOT NULL DEFAULT 0; + +COMMIT; \ No newline at end of file diff --git a/pandora_console/godmode/events/event_edit_filter.php b/pandora_console/godmode/events/event_edit_filter.php index af086d55d7..c796feaa90 100644 --- a/pandora_console/godmode/events/event_edit_filter.php +++ b/pandora_console/godmode/events/event_edit_filter.php @@ -73,6 +73,7 @@ if ($id) { $pagination = $filter['pagination']; $event_view_hr = $filter['event_view_hr']; $id_user_ack = $filter['id_user_ack']; + $owner_user = $filter['owner_user']; $group_rep = $filter['group_rep']; $date_from = str_replace('-', '/', $filter['date_from']); $date_to = str_replace('-', '/', $filter['date_to']); @@ -119,6 +120,7 @@ if ($id) { $pagination = ''; $event_view_hr = ''; $id_user_ack = ''; + $owner_user = ''; $group_rep = ''; $date_from = ''; $date_to = ''; @@ -157,6 +159,7 @@ if ($update || $create) { $pagination = get_parameter('pagination', ''); $event_view_hr = get_parameter('event_view_hr', ''); $id_user_ack = get_parameter('id_user_ack', ''); + $owner_user = get_parameter('owner_user', ''); $group_rep = get_parameter('group_rep', ''); $date_from = get_parameter('date_from', ''); $date_to = get_parameter('date_to', ''); @@ -191,6 +194,7 @@ if ($update || $create) { 'pagination' => $pagination, 'event_view_hr' => $event_view_hr, 'id_user_ack' => $id_user_ack, + 'owner_user' => $owner_user, 'group_rep' => $group_rep, 'tag_with' => $tag_with_json, 'tag_without' => $tag_without_json, @@ -420,7 +424,12 @@ $table->data[9][1] = html_print_input_text( true ); -$table->data[10][0] = ''.__('User ack.').''.' '.ui_print_help_tip(__('Choose between the users who have validated an event. '), true); +$table->data[10][0] = ''.__('User ack.').''; +$table->data[10][0] .= ' '; +$table->data[10][0] .= ui_print_help_tip( + __('Choose between the users who have validated an event. '), + true +); if ($strict_user) { $users = [$config['id_user'] => $config['id_user']]; @@ -442,14 +451,25 @@ $table->data[10][1] = html_print_select( true ); +$table->data[11][0] = ''.__('Owner.').''; +$table->data[11][1] = html_print_select( + $users, + 'owner_user', + $owner_user, + '', + __('Any'), + 0, + true +); + $repeated_sel = [ EVENT_GROUP_REP_ALL => __('All events'), EVENT_GROUP_REP_EVENTS => __('Group events'), EVENT_GROUP_REP_AGENTS => __('Group agents'), EVENT_GROUP_REP_EXTRAIDS => __('Group extra id'), ]; -$table->data[11][0] = ''.__('Repeated').''; -$table->data[11][1] = html_print_select( +$table->data[12][0] = ''.__('Repeated').''; +$table->data[12][1] = html_print_select( $repeated_sel, 'group_rep', $group_rep, @@ -459,11 +479,11 @@ $table->data[11][1] = html_print_select( true ); -$table->data[12][0] = ''.__('Date from').''; -$table->data[12][1] = html_print_input_text('date_from', $date_from, '', 15, 10, true); +$table->data[13][0] = ''.__('Date from').''; +$table->data[13][1] = html_print_input_text('date_from', $date_from, '', 15, 10, true); -$table->data[13][0] = ''.__('Date to').''; -$table->data[13][1] = html_print_input_text('date_to', $date_to, '', 15, 10, true); +$table->data[14][0] = ''.__('Date to').''; +$table->data[14][1] = html_print_input_text('date_to', $date_to, '', 15, 10, true); $tag_with = json_decode($tag_with_json_clean, true); if (empty($tag_with)) { @@ -502,9 +522,9 @@ $remove_with_tag_disabled = empty($tag_with_temp); $add_without_tag_disabled = empty($tags_select_without); $remove_without_tag_disabled = empty($tag_without_temp); -$table->colspan[14][0] = '2'; -$table->data[14][0] = ''.__('Events with following tags').''; -$table->data[15][0] = html_print_select( +$table->colspan[15][0] = '2'; +$table->data[15][0] = ''.__('Events with following tags').''; +$table->data[16][0] = html_print_select( $tags_select_with, 'select_with', '', @@ -518,7 +538,7 @@ $table->data[15][0] = html_print_select( false, 'width: 220px;' ); -$table->data[15][1] = html_print_button( +$table->data[16][1] = html_print_button( __('Add'), 'add_whith', $add_with_tag_disabled, @@ -527,7 +547,7 @@ $table->data[15][1] = html_print_button( true ); -$table->data[16][0] = html_print_select( +$table->data[17][0] = html_print_select( $tag_with_temp, 'tag_with_temp', [], @@ -541,12 +561,12 @@ $table->data[16][0] = html_print_select( false, 'width: 220px; height: 50px;' ); -$table->data[16][0] .= html_print_input_hidden( +$table->data[17][0] .= html_print_input_hidden( 'tag_with', $tag_with_base64, true ); -$table->data[16][1] = html_print_button( +$table->data[17][1] = html_print_button( __('Remove'), 'remove_whith', $remove_with_tag_disabled, @@ -555,9 +575,9 @@ $table->data[16][1] = html_print_button( true ); -$table->colspan[17][0] = '2'; -$table->data[17][0] = ''.__('Events without following tags').''; -$table->data[18][0] = html_print_select( +$table->colspan[18][0] = '2'; +$table->data[18][0] = ''.__('Events without following tags').''; +$table->data[19][0] = html_print_select( $tags_select_without, 'select_without', '', @@ -571,7 +591,7 @@ $table->data[18][0] = html_print_select( false, 'width: 220px;' ); -$table->data[18][1] = html_print_button( +$table->data[19][1] = html_print_button( __('Add'), 'add_whithout', $add_without_tag_disabled, @@ -580,7 +600,7 @@ $table->data[18][1] = html_print_button( true ); -$table->data[19][0] = html_print_select( +$table->data[20][0] = html_print_select( $tag_without_temp, 'tag_without_temp', [], @@ -594,12 +614,12 @@ $table->data[19][0] = html_print_select( false, 'width: 220px; height: 50px;' ); -$table->data[19][0] .= html_print_input_hidden( +$table->data[20][0] .= html_print_input_hidden( 'tag_without', $tag_without_base64, true ); -$table->data[19][1] = html_print_button( +$table->data[20][1] = html_print_button( __('Remove'), 'remove_whithout', $remove_without_tag_disabled, @@ -608,8 +628,8 @@ $table->data[19][1] = html_print_button( true ); -$table->data[20][0] = ''.__('Alert events').''; -$table->data[20][1] = html_print_select( +$table->data[21][0] = ''.__('Alert events').''; +$table->data[21][1] = html_print_select( [ '-1' => __('All'), '0' => __('Filter alert events'), @@ -624,8 +644,8 @@ $table->data[20][1] = html_print_select( ); if (!is_metaconsole()) { - $table->data[21][0] = ''.__('Module search').''; - $table->data[21][1] .= html_print_autocomplete_modules( + $table->data[22][0] = ''.__('Module search').''; + $table->data[22][1] .= html_print_autocomplete_modules( 'module_search', $text_module, false, @@ -637,17 +657,17 @@ if (!is_metaconsole()) { ); } -$table->data[22][0] = ''.__('Source').''; -$table->data[22][1] = html_print_input_text('source', $source, '', 35, 255, true); +$table->data[23][0] = ''.__('Source').''; +$table->data[23][1] = html_print_input_text('source', $source, '', 35, 255, true); -$table->data[23][0] = ''.__('Extra ID').''; -$table->data[23][1] = html_print_input_text('id_extra', $id_extra, '', 11, 255, true); +$table->data[24][0] = ''.__('Extra ID').''; +$table->data[24][1] = html_print_input_text('id_extra', $id_extra, '', 11, 255, true); -$table->data[24][0] = ''.__('Comment').''; -$table->data[24][1] = html_print_input_text('user_comment', $user_comment, '', 35, 255, true); +$table->data[25][0] = ''.__('Comment').''; +$table->data[25][1] = html_print_input_text('user_comment', $user_comment, '', 35, 255, true); -$table->data[25][0] = ''.__('Custom data filter type').''; -$table->data[25][1] = html_print_select( +$table->data[26][0] = ''.__('Custom data filter type').''; +$table->data[26][1] = html_print_select( [ '0' => __('Filter custom data by name field'), '1' => __('Filter custom data by value field'), @@ -660,12 +680,12 @@ $table->data[25][1] = html_print_select( true ); -$table->data[26][0] = ''.__('Custom data').''; -$table->data[26][1] = html_print_input_text('custom_data', $custom_data, '', 35, 255, true); +$table->data[27][0] = ''.__('Custom data').''; +$table->data[27][1] = html_print_input_text('custom_data', $custom_data, '', 35, 255, true); if (is_metaconsole()) { - $table->data[27][0] = ''.__('Id souce event').''; - $table->data[27][1] = html_print_input_text( + $table->data[28][0] = ''.__('Id souce event').''; + $table->data[28][1] = html_print_input_text( 'id_source_event', $id_source_event, '', diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index 5cb86d027e..9de1b29988 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -357,6 +357,7 @@ if ($save_event_filter) { $values['pagination'] = get_parameter('pagination'); $values['event_view_hr'] = get_parameter('event_view_hr'); $values['id_user_ack'] = get_parameter('id_user_ack'); + $values['owner_user'] = get_parameter('owner_user'); $values['group_rep'] = get_parameter('group_rep'); $values['tag_with'] = get_parameter('tag_with', io_json_mb_encode([])); $values['tag_without'] = get_parameter( @@ -415,6 +416,7 @@ if ($update_event_filter) { $values['pagination'] = get_parameter('pagination'); $values['event_view_hr'] = get_parameter('event_view_hr'); $values['id_user_ack'] = get_parameter('id_user_ack'); + $values['owner_user'] = get_parameter('owner_user'); $values['group_rep'] = get_parameter('group_rep'); $values['tag_with'] = get_parameter('tag_with', io_json_mb_encode([])); $values['tag_without'] = get_parameter( @@ -481,6 +483,7 @@ if ($get_filter_values) { 'user_comment' => '', 'id_extra' => '', 'id_user_ack' => '', + 'owner_user' => '', 'date_from' => '', 'time_from' => '', 'date_to' => '', @@ -654,6 +657,8 @@ function load_form_filter() { $("#text-event_view_hr").val(val); if (i == 'id_user_ack') $("#id_user_ack").val(val); + if (i == 'owner_user') + $("#owner_user").val(val); if (i == 'group_rep') $("#group_rep").val(val); if (i == 'tag_with') @@ -904,6 +909,7 @@ function save_new_filter() { "pagination" : $("#pagination").val(), "event_view_hr" : $("#text-event_view_hr").val(), "id_user_ack" : $("#id_user_ack").val(), + "owner_user" : $("#owner_user").val(), "group_rep" : $("#group_rep").val(), "tag_with": Base64.decode($("#hidden-tag_with").val()), "tag_without": Base64.decode($("#hidden-tag_without").val()), @@ -981,6 +987,7 @@ function save_update_filter() { "pagination" : $("#pagination").val(), "event_view_hr" : $("#text-event_view_hr").val(), "id_user_ack" : $("#id_user_ack").val(), + "owner_user" : $("#owner_user").val(), "group_rep" : $("#group_rep").val(), "tag_with" : Base64.decode($("#hidden-tag_with").val()), "tag_without" : Base64.decode($("#hidden-tag_without").val()), diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 3aa121ec6a..0f41ef9574 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -645,6 +645,7 @@ function events_update_status($id_evento, $status, $filter=null) * 'user_comment' * 'source' * 'id_user_ack' + * 'owner_user' * 'tag_with' * 'tag_without' * 'filter_only_alert' @@ -1153,11 +1154,19 @@ function events_get_all( // Validated or in process by. if (empty($filter['id_user_ack']) === false) { $sql_filters[] = sprintf( - ' AND te.owner_user like lower("%%%s%%") ', + ' AND te.id_usuario like lower("%%%s%%") ', $filter['id_user_ack'] ); } + // Owner by. + if (empty($filter['owner_user']) === false) { + $sql_filters[] = sprintf( + ' AND te.owner_user like lower("%%%s%%") ', + $filter['owner_user'] + ); + } + $tag_names = []; // With following tags. if (empty($filter['tag_with']) === false) { diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index e95f16b355..a74ffd9eae 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -153,6 +153,10 @@ $id_user_ack = get_parameter( 'filter[id_user_ack]', ($filter['id_user_ack'] ?? '') ); +$owner_user = get_parameter( + 'filter[owner_user]', + ($filter['owner_user'] ?? '') +); $group_rep = get_parameter( 'filter[group_rep]', ($filter['group_rep'] ?? '') @@ -1089,6 +1093,7 @@ if ($loaded_filter !== false && $from_event_graph != 1 && isset($fb64) === false $pagination = $filter['pagination']; $event_view_hr = $filter['event_view_hr']; $id_user_ack = $filter['id_user_ack']; + $owner_user = $filter['owner_user']; $group_rep = $filter['group_rep']; $tag_with = json_decode(io_safe_output($filter['tag_with'])); $tag_without = json_decode(io_safe_output($filter['tag_without'])); @@ -1914,6 +1919,19 @@ $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; +$data = html_print_select( + $user_users, + 'owner_user', + $owner_user, + '', + __('Any'), + 0, + true +); +$in = '
'; +$in .= $data.'
'; +$adv_inputs[] = $in; + // Only alert events. $data = html_print_select( [ diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 48768a9508..08a42f8ad6 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1258,6 +1258,7 @@ CREATE TABLE IF NOT EXISTS `tevent_filter` ( `time_to` TIME NULL, `custom_data` VARCHAR(500) DEFAULT '', `custom_data_filter_type` TINYINT UNSIGNED DEFAULT 0, + `owner_user` TEXT, PRIMARY KEY (`id_filter`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;