#11705 new custom_field tevento
This commit is contained in:
parent
1ffebcf49c
commit
79fe89c3c5
|
@ -0,0 +1,6 @@
|
||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `tevento`
|
||||||
|
ADD COLUMN `custom_field` TEXT NULL AFTER `module_status`;
|
||||||
|
|
||||||
|
COMMIT;
|
|
@ -115,6 +115,7 @@ $fields_available['module_status'] = __('Module Status');
|
||||||
$fields_available['mini_severity'] = __('Severity mini');
|
$fields_available['mini_severity'] = __('Severity mini');
|
||||||
$fields_available['module_custom_id'] = __('Module custom ID');
|
$fields_available['module_custom_id'] = __('Module custom ID');
|
||||||
$fields_available['custom_data'] = __('Custom data');
|
$fields_available['custom_data'] = __('Custom data');
|
||||||
|
$fields_available['custom_field'] = __('Custom field');
|
||||||
|
|
||||||
|
|
||||||
// Remove fields already selected.
|
// Remove fields already selected.
|
||||||
|
|
|
@ -92,6 +92,7 @@ $get_id_source_event = get_parameter('get_id_source_event');
|
||||||
$node_id = (int) get_parameter('node_id', 0);
|
$node_id = (int) get_parameter('node_id', 0);
|
||||||
$settings_modal = get_parameter('settings', 0);
|
$settings_modal = get_parameter('settings', 0);
|
||||||
$parameters_modal = get_parameter('parameters', 0);
|
$parameters_modal = get_parameter('parameters', 0);
|
||||||
|
$update_custom_field = get_parameter('update_custom_field', 0);
|
||||||
// User private filter.
|
// User private filter.
|
||||||
$current_filter = get_parameter('current_filter', 0);
|
$current_filter = get_parameter('current_filter', 0);
|
||||||
$private_filter_event = get_parameter('private_filter_event', 0);
|
$private_filter_event = get_parameter('private_filter_event', 0);
|
||||||
|
@ -2759,3 +2760,50 @@ if ($draw_row_response_info === true) {
|
||||||
echo $output;
|
echo $output;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($update_custom_field) {
|
||||||
|
$custom_field = get_parameter('custom_field_value');
|
||||||
|
$event_id = get_parameter('event_id');
|
||||||
|
$server_id = 0;
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$server_id = (int) get_parameter('server_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Safe custom fields for hacks.
|
||||||
|
if (preg_match('/script/i', io_safe_output($custom_field))) {
|
||||||
|
$return = false;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node = new Node($server_id);
|
||||||
|
$node->connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = events_custom_field(
|
||||||
|
$event_id,
|
||||||
|
$custom_field
|
||||||
|
);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = false;
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ($return === true) ? 'update_ok' : 'update_error';
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
|
@ -17783,3 +17783,45 @@ function api_token_check(string $token)
|
||||||
return db_get_value('id_user', 'tusuario', 'api_token', $token);
|
return db_get_value('id_user', 'tusuario', 'api_token', $token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set custom field value in tevento
|
||||||
|
*
|
||||||
|
* @param mixed $id_event Event id.
|
||||||
|
* @param mixed $custom_field Custom field to set.
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function api_set_event_custom_field($id, $value)
|
||||||
|
{
|
||||||
|
// Get the event
|
||||||
|
$event = events_get_event($id, false, is_metaconsole());
|
||||||
|
// If event not exists, end the execution.
|
||||||
|
if ($event === false) {
|
||||||
|
returnError(
|
||||||
|
'event_not_exists',
|
||||||
|
'Event not exists'
|
||||||
|
);
|
||||||
|
$result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Safe custom fields for hacks.
|
||||||
|
if (preg_match('/script/i', io_safe_output($value))) {
|
||||||
|
$result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = events_custom_field(
|
||||||
|
$id,
|
||||||
|
$value
|
||||||
|
);
|
||||||
|
|
||||||
|
// If update results failed
|
||||||
|
if (empty($result) === true || $result === false) {
|
||||||
|
returnError(
|
||||||
|
'The event could not be updated'
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
returnData('string', ['data' => 'Event updated.']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -219,6 +219,7 @@ function events_get_all_fields()
|
||||||
$columns['module_status'] = __('Module status');
|
$columns['module_status'] = __('Module status');
|
||||||
$columns['module_custom_id'] = __('Module custom id');
|
$columns['module_custom_id'] = __('Module custom id');
|
||||||
$columns['custom_data'] = __('Custom data');
|
$columns['custom_data'] = __('Custom data');
|
||||||
|
$columns['custom_field'] = __('Custom field');
|
||||||
|
|
||||||
return $columns;
|
return $columns;
|
||||||
}
|
}
|
||||||
|
@ -322,6 +323,9 @@ function events_get_column_name($field, $table_alias=false)
|
||||||
case 'custom_data':
|
case 'custom_data':
|
||||||
return __('Custom data');
|
return __('Custom data');
|
||||||
|
|
||||||
|
case 'custom_field':
|
||||||
|
return __('Custom field');
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return __($field);
|
return __($field);
|
||||||
}
|
}
|
||||||
|
@ -4632,6 +4636,22 @@ function events_page_details($event, $server_id=0)
|
||||||
|
|
||||||
$table_details->data[] = $data;
|
$table_details->data[] = $data;
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
$data[0] = __('Custom Field');
|
||||||
|
$data[1] = '<div class="flex-row-center">'.html_print_input_text('custom_field', $event['custom_field'], '', false, 255, true, false, false, '', 'w60p');
|
||||||
|
$data[1] .= html_print_button(
|
||||||
|
__('Update'),
|
||||||
|
'update_custom_field',
|
||||||
|
false,
|
||||||
|
'update_custom_field('.$event['id_evento'].', '.$event['server_id'].');',
|
||||||
|
[
|
||||||
|
'icon' => 'next',
|
||||||
|
'mode' => 'link',
|
||||||
|
],
|
||||||
|
true
|
||||||
|
).'</div>';
|
||||||
|
$table_details->data[] = $data;
|
||||||
|
|
||||||
$details = '<div id="extended_event_details_page" class="extended_event_pages">'.html_print_table($table_details, true).'</div>';
|
$details = '<div id="extended_event_details_page" class="extended_event_pages">'.html_print_table($table_details, true).'</div>';
|
||||||
|
|
||||||
if (is_metaconsole() === true && empty($server_id) === false) {
|
if (is_metaconsole() === true && empty($server_id) === false) {
|
||||||
|
@ -6203,3 +6223,57 @@ function event_get_counter_extraId(array $event, ?array $filters)
|
||||||
|
|
||||||
return $counters;
|
return $counters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update event detail custom field
|
||||||
|
*
|
||||||
|
* @param mixed $id_event Event ID or array of events.
|
||||||
|
* @param string $custom_field Custom_field to be update.
|
||||||
|
*
|
||||||
|
* @return boolean Whether or not it was successful
|
||||||
|
*/
|
||||||
|
function events_custom_field(
|
||||||
|
$id_event,
|
||||||
|
$custom_field,
|
||||||
|
) {
|
||||||
|
global $config;
|
||||||
|
// Cleans up the selection for all unwanted values also casts any single
|
||||||
|
// values as an array.
|
||||||
|
$id_event = (array) safe_int($id_event, 1);
|
||||||
|
// Check ACL.
|
||||||
|
foreach ($id_event as $k => $id) {
|
||||||
|
$event_group = events_get_group($id);
|
||||||
|
if (check_acl($config['id_user'], $event_group, 'EW') == 0) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_ACL_VIOLATION,
|
||||||
|
'Attempted updating event #'.$id
|
||||||
|
);
|
||||||
|
|
||||||
|
unset($id_event[$k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($id_event) === true) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the current event comments.
|
||||||
|
$first_event = $id_event;
|
||||||
|
if (is_array($id_event) === true) {
|
||||||
|
$first_event = reset($id_event);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update comment.
|
||||||
|
$ret = db_process_sql_update(
|
||||||
|
'tevento',
|
||||||
|
['custom_field' => $custom_field],
|
||||||
|
['id_evento' => $first_event]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (($ret === false) || ($ret === 0)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
|
@ -492,6 +492,37 @@ function event_comment(current_event) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Save custom_field into an event.
|
||||||
|
function update_custom_field(event_id, server_id) {
|
||||||
|
var custom_field_value = $("#text-custom_field").val();
|
||||||
|
|
||||||
|
var params = {
|
||||||
|
page: "include/ajax/events",
|
||||||
|
update_custom_field: 1,
|
||||||
|
custom_field_value: custom_field_value,
|
||||||
|
event_id: event_id,
|
||||||
|
server_id: server_id
|
||||||
|
};
|
||||||
|
|
||||||
|
$("#button-update_custom_field").attr("disabled", "disabled");
|
||||||
|
$("#response_loading").show();
|
||||||
|
|
||||||
|
jQuery.ajax({
|
||||||
|
data: params,
|
||||||
|
type: "POST",
|
||||||
|
url: getUrlAjax(),
|
||||||
|
dataType: "html",
|
||||||
|
success: function(data) {
|
||||||
|
if (data === "update_error") {
|
||||||
|
alert("Custom field not valid");
|
||||||
|
}
|
||||||
|
$("#button-update_custom_field").removeAttr("disabled");
|
||||||
|
$("#response_loading").hide();
|
||||||
|
$("#button-events_form_search_bt").trigger("click");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
var processed = 0;
|
var processed = 0;
|
||||||
function update_event(table, id_evento, type, event_rep, row, server_id) {
|
function update_event(table, id_evento, type, event_rep, row, server_id) {
|
||||||
var inputs = $("#events_form :input");
|
var inputs = $("#events_form :input");
|
||||||
|
|
|
@ -837,6 +837,7 @@ class EventsListWidget extends Widget
|
||||||
'mini_severity' => __('Severity mini'),
|
'mini_severity' => __('Severity mini'),
|
||||||
'module_custom_id' => __('Module custom ID'),
|
'module_custom_id' => __('Module custom ID'),
|
||||||
'custom_data' => __('Custom data'),
|
'custom_data' => __('Custom data'),
|
||||||
|
'custom_field' => __('Custom field'),
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -377,6 +377,7 @@ if (is_ajax() === true) {
|
||||||
'te.owner_user',
|
'te.owner_user',
|
||||||
'if(te.ack_utimestamp > 0, te.ack_utimestamp,"") as ack_utimestamp',
|
'if(te.ack_utimestamp > 0, te.ack_utimestamp,"") as ack_utimestamp',
|
||||||
'te.custom_data',
|
'te.custom_data',
|
||||||
|
'te.custom_field',
|
||||||
'te.data',
|
'te.data',
|
||||||
'te.module_status',
|
'te.module_status',
|
||||||
'ta.alias as agent_name',
|
'ta.alias as agent_name',
|
||||||
|
|
|
@ -723,6 +723,7 @@ CREATE TABLE IF NOT EXISTS `tevento` (
|
||||||
`custom_data` TEXT,
|
`custom_data` TEXT,
|
||||||
`data` TINYTEXT,
|
`data` TINYTEXT,
|
||||||
`module_status` INT NOT NULL DEFAULT 0,
|
`module_status` INT NOT NULL DEFAULT 0,
|
||||||
|
`custom_field` TEXT,
|
||||||
PRIMARY KEY (`id_evento`),
|
PRIMARY KEY (`id_evento`),
|
||||||
KEY `idx_agente` (`id_agente`),
|
KEY `idx_agente` (`id_agente`),
|
||||||
KEY `idx_agentmodule` (`id_agentmodule`),
|
KEY `idx_agentmodule` (`id_agentmodule`),
|
||||||
|
|
Loading…
Reference in New Issue