#10065 Added the option to create-edit a private event filter.
This commit is contained in:
parent
67dab1dfb1
commit
3429e0d190
|
@ -0,0 +1,5 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE tevent_filter ADD private_filter_user text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL;
|
||||
|
||||
COMMIT;
|
|
@ -61,6 +61,9 @@ if ($id) {
|
|||
$filter = events_get_event_filter($id);
|
||||
$id_group_filter = $filter['id_group_filter'];
|
||||
$id_group = $filter['id_group'];
|
||||
// Get owner user private filter.
|
||||
$private_filter = ($filter['private_filter_user'] === null || $filter['private_filter_user'] === '') ? 0 : 1;
|
||||
$private_filter_user = $filter['private_filter_user'];
|
||||
$id_name = $filter['id_name'];
|
||||
$event_type = $filter['event_type'];
|
||||
$severity = explode(',', $filter['severity']);
|
||||
|
@ -113,6 +116,7 @@ if ($id) {
|
|||
$server_id = ($filter['server_id'] ?? '');
|
||||
} else {
|
||||
$id_group = '';
|
||||
$private_filter = 0;
|
||||
$id_group_filter = '';
|
||||
$id_name = '';
|
||||
$event_type = '';
|
||||
|
@ -167,8 +171,8 @@ if ($update || $create) {
|
|||
$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', '');
|
||||
$date_from = get_parameter('date_from', '0000-00-00');
|
||||
$date_to = get_parameter('date_to', '0000-00-00');
|
||||
$source = get_parameter('source');
|
||||
$id_extra = get_parameter('id_extra');
|
||||
$user_comment = get_parameter('user_comment');
|
||||
|
@ -192,6 +196,16 @@ if ($update || $create) {
|
|||
$server_id = implode(',', $servers_array);
|
||||
}
|
||||
|
||||
// Get private filter from user.
|
||||
$private_filter = get_parameter_switch('private_filter_event', 0);
|
||||
if ((int) $private_filter === 1 && $create) {
|
||||
$private_filter_user = $_SESSION['id_usuario'];
|
||||
} else if ((int) $private_filter === 1 && $update) {
|
||||
$private_filter_user = ($private_filter_user === $_SESSION['id_usuario']) ? $private_filter_user : $_SESSION['id_usuario'];
|
||||
} else if ((int) $private_filter === 0) {
|
||||
$private_filter_user = null;
|
||||
}
|
||||
|
||||
$values = [
|
||||
'id_name' => $id_name,
|
||||
'id_group_filter' => $id_group_filter,
|
||||
|
@ -222,6 +236,7 @@ if ($update || $create) {
|
|||
'custom_data' => $custom_data,
|
||||
'custom_data_filter_type' => $custom_data_filter_type,
|
||||
'server_id' => $server_id,
|
||||
'private_filter_user' => $private_filter_user,
|
||||
];
|
||||
|
||||
$severity = explode(',', $severity);
|
||||
|
@ -293,6 +308,17 @@ $table->data[0][0] = html_print_label_input_block(
|
|||
false,
|
||||
'',
|
||||
'w100p'
|
||||
).html_print_label_input_block(
|
||||
__('Private event'),
|
||||
html_print_checkbox_switch(
|
||||
'private_filter_event',
|
||||
$private_filter,
|
||||
$private_filter,
|
||||
true,
|
||||
false,
|
||||
'checked_slide_events(this);',
|
||||
true
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
@ -133,6 +133,18 @@ $filters = db_get_all_rows_sql($sql);
|
|||
|
||||
if ($filters === false) {
|
||||
$filters = [];
|
||||
} else {
|
||||
foreach ($filters as $key => $filter) {
|
||||
$permission = check_acl($config['id_user'], 0, 'PM');
|
||||
// Validate permission and private filter user.
|
||||
if ($permission || $filter['private_filter_user'] === $config['id_user']) {
|
||||
if ($filter['private_filter_user'] !== null) {
|
||||
$filters[$key]['id_name'] = $filter['id_name'].' (P)';
|
||||
}
|
||||
} else if ($filter['private_filter_user'] !== null) {
|
||||
unset($filters[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
|
|
|
@ -337,6 +337,14 @@ if ($save_event_filter) {
|
|||
$values['custom_data'] = get_parameter('custom_data');
|
||||
$values['custom_data_filter_type'] = get_parameter('custom_data_filter_type');
|
||||
|
||||
// Get private filter from user.
|
||||
$private_filter = get_parameter_switch('private_filter_user', 0);
|
||||
if ((int) $private_filter === 1) {
|
||||
$values['private_filter_user'] = $config['id_user'];
|
||||
} else {
|
||||
$values['private_filter_user'] = null;
|
||||
}
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
$values['server_id'] = implode(',', get_parameter('server_id'));
|
||||
}
|
||||
|
@ -397,6 +405,17 @@ if ($update_event_filter) {
|
|||
$values['custom_data'] = get_parameter('custom_data');
|
||||
$values['custom_data_filter_type'] = get_parameter('custom_data_filter_type');
|
||||
|
||||
// Get private filter from user.
|
||||
$private_filter = get_parameter('private_filter_user', 0);
|
||||
$user_private_filter = events_get_event_filter($id);
|
||||
if ((int) $private_filter === 1 && $user_private_filter['private_filter_user'] === null) {
|
||||
$values['private_filter_user'] = $config['id_user'];
|
||||
} else if ($private_filter === $user_private_filter['private_filter_user'] && $user_private_filter['private_filter_user'] !== $config['id_user']) {
|
||||
$values['private_filter_user'] = $user_private_filter['private_filter_user'];
|
||||
} else {
|
||||
$values['private_filter_user'] = null;
|
||||
}
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
$values['server_id'] = implode(',', get_parameter('server_id'));
|
||||
}
|
||||
|
@ -936,7 +955,8 @@ function save_new_filter() {
|
|||
"id_source_event": $("#text-id_source_event").val(),
|
||||
"server_id": $("#server_id").val(),
|
||||
"custom_data": $("#text-custom_data").val(),
|
||||
"custom_data_filter_type": $("#custom_data_filter_type").val()
|
||||
"custom_data_filter_type": $("#custom_data_filter_type").val(),
|
||||
"private_filter_user": $("#checkbox-private_filter_event").val()
|
||||
},
|
||||
function (data) {
|
||||
$("#info_box").hide();
|
||||
|
@ -1015,7 +1035,8 @@ function save_update_filter() {
|
|||
"id_source_event": $("#text-id_source_event").val(),
|
||||
"server_id": $("#server_id").val(),
|
||||
"custom_data": $("#text-custom_data").val(),
|
||||
"custom_data_filter_type": $("#custom_data_filter_type").val()
|
||||
"custom_data_filter_type": $("#custom_data_filter_type").val(),
|
||||
"private_filter_user": $("#checkbox-private_filter_event").val()
|
||||
|
||||
},
|
||||
function (data) {
|
||||
|
|
|
@ -3343,7 +3343,7 @@ function events_get_event_filter_select($manage=true)
|
|||
}
|
||||
|
||||
$sql = '
|
||||
SELECT id_filter, id_name
|
||||
SELECT id_filter, id_name, private_filter_user
|
||||
FROM tevent_filter
|
||||
WHERE id_group_filter IN (0, '.implode(',', array_keys($user_groups)).')';
|
||||
|
||||
|
@ -3354,7 +3354,20 @@ function events_get_event_filter_select($manage=true)
|
|||
} else {
|
||||
$result = [];
|
||||
foreach ($event_filters as $event_filter) {
|
||||
$result[$event_filter['id_filter']] = $event_filter['id_name'];
|
||||
$permission = check_acl($config['id_user'], 0, 'PM');
|
||||
if ($permission || $event_filter['private_filter_user'] === $config['id_user']) {
|
||||
if ($event_filter['private_filter_user'] !== null) {
|
||||
$filter_name = $event_filter['id_name'].' (P)';
|
||||
} else {
|
||||
$filter_name = $event_filter['id_name'];
|
||||
}
|
||||
|
||||
$result[$event_filter['id_filter']] = $filter_name;
|
||||
}
|
||||
|
||||
if ($event_filter['private_filter_user'] === null) {
|
||||
$result[$event_filter['id_filter']] = $event_filter['id_name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -196,6 +196,10 @@ $search_recursive_groups = get_parameter(
|
|||
'filter[search_recursive_groups]',
|
||||
($filter['search_recursive_groups'] ?? '')
|
||||
);
|
||||
$search_recursive_groups = get_parameter(
|
||||
'filter[private_filter_event]',
|
||||
($filter['private_filter_event'] ?? '')
|
||||
);
|
||||
$id_group_filter = get_parameter(
|
||||
'filter[id_group_filter]',
|
||||
($filter['id_group'] ?? '')
|
||||
|
@ -1322,6 +1326,7 @@ if ($loaded_filter !== false && $from_event_graph != 1 && isset($fb64) === false
|
|||
|
||||
$filter_only_alert = $filter['filter_only_alert'];
|
||||
$search_secondary_groups = ($filter['search_secondary_groups'] ?? 0);
|
||||
$private_filter_event = ($filter['private_filter_user'] ?? 0);
|
||||
$search_recursive_groups = ($filter['search_recursive_groups'] ?? 0);
|
||||
$id_group_filter = $filter['id_group_filter'];
|
||||
$date_from = $filter['date_from'];
|
||||
|
@ -1938,6 +1943,25 @@ $in_sec_group .= '</label>';
|
|||
$in_sec_group .= '</div>';
|
||||
$in .= $in_sec_group;
|
||||
|
||||
// User private filter.
|
||||
$data = html_print_checkbox_switch(
|
||||
'private_filter_event',
|
||||
$private_filter_event,
|
||||
$private_filter_event,
|
||||
true,
|
||||
false,
|
||||
'checked_slide_events(this);',
|
||||
true
|
||||
);
|
||||
|
||||
$in_third_group = '<div class="display-initial">';
|
||||
$in_third_group .= $data;
|
||||
$in_third_group .= '<label class="vert-align-bottom">';
|
||||
$in_third_group .= __('Private event');
|
||||
$in_third_group .= '</label>';
|
||||
$in_third_group .= '</div>';
|
||||
$in .= $in_third_group;
|
||||
|
||||
$in .= '</div>';
|
||||
$inputs[] = $in;
|
||||
|
||||
|
|
Loading…
Reference in New Issue