Merge from develop
Former-commit-id: 043b38c0e4ea96e0e39cc2480420164dd0f5d3b7
This commit is contained in:
commit
b1aa0fe2f2
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.731-190208
|
||||
Version: 7.0NG.731-190222
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.731-190208"
|
||||
pandora_version="7.0NG.731-190222"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -42,7 +42,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.731';
|
||||
use constant AGENT_BUILD => '190208';
|
||||
use constant AGENT_BUILD => '190222';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.731
|
||||
%define release 190208
|
||||
%define release 190222
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.731
|
||||
%define release 190208
|
||||
%define release 190222
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.731"
|
||||
PI_BUILD="190208"
|
||||
PI_BUILD="190222"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{190208}
|
||||
{190222}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.731(Build 190208)")
|
||||
#define PANDORA_VERSION ("7.0NG.731(Build 190222)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.731(Build 190208))"
|
||||
VALUE "ProductVersion", "(7.0NG.731(Build 190222))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.731-190208
|
||||
Version: 7.0NG.731-190222
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.731-190208"
|
||||
pandora_version="7.0NG.731-190222"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -328,4 +328,3 @@ function mainModuleGroups()
|
|||
|
||||
extensions_add_operation_menu_option(__('Module groups'), 'estado', 'module_groups/brick.png', 'v1r1', 'view');
|
||||
extensions_add_main_function('mainModuleGroups');
|
||||
|
||||
|
|
|
@ -137,8 +137,8 @@ function get_logs_size($file)
|
|||
function get_status_logs($path)
|
||||
{
|
||||
$status_server_log = '';
|
||||
$size_server_log = get_logs_size($path);
|
||||
if ($size_server_log <= 10240) {
|
||||
$size_server_log = number_format(get_logs_size($path));
|
||||
if ($size_server_log <= 1048576) {
|
||||
$status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   You have less than 10 MB of logs</a>";
|
||||
} else {
|
||||
$status_server_log = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   You have more than 10 MB of logs</a>";
|
||||
|
@ -412,11 +412,7 @@ render_info_data(
|
|||
render_info_data('SELECT COUNT(*) FROM tagente_modulo', 'Total modules');
|
||||
render_info_data('SELECT COUNT(*) FROM tgrupo', 'Total groups');
|
||||
render_info_data('SELECT COUNT(*) FROM tagente_datos', 'Total module data records');
|
||||
// render_info_data ("SELECT COUNT(*) FROM tagente_datos_string","Total module string data records");
|
||||
// render_info_data ("SELECT COUNT(*) FROM tagente_datos_log4x","Total module log4x data records");
|
||||
render_info_data('SELECT COUNT(*) FROM tagent_access', 'Total agent access record');
|
||||
// render_info ("tagente_estado");
|
||||
// render_info ("talert_template_modules");
|
||||
render_info_data('SELECT COUNT(*) FROM tevento', 'Total events');
|
||||
|
||||
if ($config['enterprise_installed']) {
|
||||
|
@ -700,7 +696,7 @@ render_info_data(
|
|||
render_row(status_values($read_rnd_buffer_size_min_rec_value, $read_rnd_buffer_size), 'Read rnd-buffer size ', 'Read rnd-buffer size ');
|
||||
render_row(status_values($query_cache_min_res_unit_min_rec_value, $query_cache_min_res_unit), 'Query cache min-res-unit ', 'Query cache min-res-unit ');
|
||||
render_row(status_values($innodb_file_per_table_min_rec_value, $innodb_file_per_table), 'InnoDB file per table ', 'InnoDB file per table ');
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Tables fragmentation in the PandoraFMS database').'</th></tr>';
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Tables fragmentation in the Pandora FMS database').'</th></tr>';
|
||||
|
||||
|
||||
|
||||
|
@ -708,14 +704,14 @@ render_info_data(
|
|||
render_row(number_format($tables_fragmentation, 2).'%', 'Tables fragmentation (current value)');
|
||||
render_row(status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation), 'Status fragmentation tables');
|
||||
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' PandoraFMS logs dates').'</th></tr>';
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS logs dates').'</th></tr>';
|
||||
|
||||
render_row(number_format((get_logs_size($path_server_logs) / 1024), 2).'M', 'Size server logs (current value)');
|
||||
render_row(number_format((get_logs_size($path_server_logs) / 1048576), 3).'M', 'Size server logs (current value)');
|
||||
render_row(get_status_logs($path_server_logs), 'Status server logs');
|
||||
render_row(number_format((get_logs_size($path_console_logs) / 1024), 2).'M', 'Size console logs (current value)');
|
||||
render_row(number_format((get_logs_size($path_console_logs) / 1048576), 3).'M', 'Size console logs (current value)');
|
||||
render_row(get_status_logs($path_console_logs), 'Status console logs');
|
||||
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' PandoraFMS Licence Information').'</th></tr>';
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS Licence Information').'</th></tr>';
|
||||
|
||||
render_row(html_print_textarea('keys[customer_key]', 10, 255, $settings->customer_key, 'style="height:40px; width:450px;"', true), 'Customer key');
|
||||
render_row($license['expiry_date'], 'Expires');
|
||||
|
|
|
@ -320,6 +320,23 @@ $(document).ready( function() {
|
|||
}
|
||||
else {
|
||||
$('div#title_menu').hide();
|
||||
if(!click_display){
|
||||
$('#menu').mouseenter(function() {
|
||||
handsInMenu = 1;
|
||||
openTimeMenu = new Date().getTime();
|
||||
$('ul.submenu').css('left', '44px');
|
||||
}).mouseleave(function() {
|
||||
handsInMenu = 0;
|
||||
setTimeout(function() {
|
||||
openedMenu = new Date().getTime() - openTimeMenu;
|
||||
if(openedMenu > 1000 && handsInMenu == 0) {
|
||||
$('li.menu_icon').removeClass( " no_hidden_menu");
|
||||
$('li.menu_icon').find('li').removeClass( " no_hidden_menu" );
|
||||
$('ul.submenu').css('left', '44px');
|
||||
}
|
||||
}, 2500);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
/* ]]> */
|
||||
|
@ -332,7 +349,6 @@ $(document).ready( function() {
|
|||
handsIn2 = 0;
|
||||
|
||||
if(!click_display){
|
||||
if (autohidden_menu) {
|
||||
$('.menu_icon').mouseenter(function() {
|
||||
table_hover = $(this);
|
||||
handsIn = 1;
|
||||
|
@ -352,7 +368,6 @@ $(document).ready( function() {
|
|||
}
|
||||
}, 2500);
|
||||
});
|
||||
}
|
||||
}else{
|
||||
$(document).ready(function() {
|
||||
if (autohidden_menu) {
|
||||
|
|
|
@ -229,14 +229,14 @@ if (!$new_agent) {
|
|||
$table->data[0][1] .= " <span align='right'><a onClick=\"if (!confirm('".__('Are you sure?')."')) return false;\" href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&borrar_agente=$id_agente&search=&offset=0&sort_field=&sort=none'>".html_print_image('images/cross.png', true, ['title' => __('Delete agent')]).'</a>';
|
||||
}
|
||||
|
||||
$table->data[1][0] = __('Alias');
|
||||
$table->data[1][0] = __('Alias').ui_print_help_tip(__('Characters /,\,|,%,#,&,$ will be ignored'), true).'</span>';
|
||||
$table->data[1][1] = html_print_input_text('alias', $alias, '', 50, 100, true);
|
||||
if ($new_agent) {
|
||||
$table->data[1][1] .= html_print_checkbox('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name');
|
||||
}
|
||||
|
||||
$table->data[2][0] = __('IP Address');
|
||||
$table->data[2][1] = html_print_input_text('direccion', $direccion_agente, '', 16, 100, true);
|
||||
$table->data[2][1] = html_print_input_text('direccion', $direccion_agente, '', 16, 100, true).html_print_checkbox('unique_ip', 1, $config['unique_ip'], true).__('Unique IP').ui_print_help_tip(__('Set the primary IP address as the unique IP, preventing the same primary IP address from being used in more than one agent'), true);
|
||||
|
||||
if ($id_agente) {
|
||||
$table->data[2][1] .= ' ';
|
||||
|
|
|
@ -81,6 +81,7 @@ $alias_as_name = 0;
|
|||
$direccion_agente = get_parameter('direccion', '');
|
||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||
$direccion_agente = io_safe_input($direccion_agente);
|
||||
$unique_ip = 0;
|
||||
$intervalo = SECONDS_5MINUTES;
|
||||
$ff_interval = 0;
|
||||
$quiet_module = 0;
|
||||
|
@ -158,9 +159,11 @@ $module_macros = [];
|
|||
// Create agent
|
||||
if ($create_agent) {
|
||||
$mssg_warning = 0;
|
||||
$alias = (string) get_parameter_post('alias', '');
|
||||
$alias_safe_output = io_safe_output(get_parameter('alias', ''));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
|
||||
$alias_as_name = (int) get_parameter_post('alias_as_name', 0);
|
||||
$direccion_agente = (string) get_parameter_post('direccion', '');
|
||||
$unique_ip = (int) get_parameter_post('unique_ip', 0);
|
||||
|
||||
// safe_output only validate ip
|
||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||
|
@ -216,7 +219,12 @@ if ($create_agent) {
|
|||
$nombre_agente = $alias;
|
||||
}
|
||||
|
||||
if (!$exists_alias) {
|
||||
if ($unique_ip && $direccion_agente != '') {
|
||||
$sql = 'SELECT direccion FROM tagente WHERE direccion = "'.$direccion_agente.'"';
|
||||
$exists_ip = db_get_row_sql($sql);
|
||||
}
|
||||
|
||||
if (!$exists_alias && !$exists_ip) {
|
||||
$id_agente = db_process_sql_insert(
|
||||
'tagente',
|
||||
[
|
||||
|
@ -326,6 +334,8 @@ if ($create_agent) {
|
|||
$agent_creation_error = __('Could not be created');
|
||||
if ($exists_alias) {
|
||||
$agent_creation_error = __('Could not be created, because name already exists');
|
||||
} else if ($exists_ip) {
|
||||
$agent_creation_error = __('Could not be created, because IP already exists');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -755,9 +765,11 @@ if ($update_agent) {
|
|||
$mssg_warning = 0;
|
||||
$id_agente = (int) get_parameter_post('id_agente');
|
||||
$nombre_agente = str_replace('`', '‘', (string) get_parameter_post('agente', ''));
|
||||
$alias = str_replace('`', '‘', (string) get_parameter_post('alias', ''));
|
||||
$alias_safe_output = io_safe_output(get_parameter('alias', ''));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
|
||||
$alias_as_name = (int) get_parameter_post('alias_as_name', 0);
|
||||
$direccion_agente = (string) get_parameter_post('direccion', '');
|
||||
$unique_ip = (int) get_parameter_post('unique_ip', 0);
|
||||
// safe_output only validate ip
|
||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||
|
||||
|
@ -860,8 +872,15 @@ if ($update_agent) {
|
|||
// If there is an agent with the same name, but a different ID
|
||||
}
|
||||
|
||||
if ($unique_ip && $direccion_agente != '') {
|
||||
$sql = 'SELECT direccion FROM tagente WHERE direccion = "'.$direccion_agente.'"';
|
||||
$exists_ip = db_get_row_sql($sql);
|
||||
}
|
||||
|
||||
if ($grupo <= 0) {
|
||||
ui_print_error_message(__('The group id %d is incorrect.', $grupo));
|
||||
} else if ($exists_ip) {
|
||||
ui_print_error_message(__('Duplicate main IP address'));
|
||||
} else {
|
||||
// If different IP is specified than previous, add the IP
|
||||
if ($direccion_agente != ''
|
||||
|
@ -915,7 +934,7 @@ if ($update_agent) {
|
|||
|
||||
$result = db_process_sql_update('tagente', $values, ['id_agente' => $id_agente]);
|
||||
|
||||
if ($result == false && $update_custom_result == false) {
|
||||
if ($result === false && $update_custom_result == false) {
|
||||
ui_print_error_message(
|
||||
__('There was a problem updating the agent')
|
||||
);
|
||||
|
@ -945,6 +964,10 @@ if ($update_agent) {
|
|||
$disabled ? '1' : '0',
|
||||
]
|
||||
);
|
||||
// Validate alerts for disabled agents.
|
||||
if ($disabled) {
|
||||
alerts_validate_alert_agent($id_agente);
|
||||
}
|
||||
}
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
|
|
|
@ -128,7 +128,7 @@ $snmp_versions['2c'] = 'v. 2c';
|
|||
$snmp_versions['3'] = 'v. 3';
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('SNMP community');
|
||||
$data[0] = __('SNMP community').ui_print_help_icon('column_macros', true);
|
||||
$adopt = false;
|
||||
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK && isset($id_agent_module)) {
|
||||
$adopt = policies_is_module_adopt($id_agent_module);
|
||||
|
@ -277,7 +277,7 @@ if (!isset($id_agent_module)) {
|
|||
}
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Auth user');
|
||||
$data[0] = __('Auth user').ui_print_help_icon('column_macros', true);
|
||||
$data[1] = html_print_input_text(
|
||||
'snmp3_auth_user',
|
||||
$snmp3_auth_user,
|
||||
|
@ -290,7 +290,7 @@ $data[1] = html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
$data[2] = __('Auth password').ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$data[2] = __('Auth password').ui_print_help_icon('column_macros', true).ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$data[3] = html_print_input_password(
|
||||
'snmp3_auth_pass',
|
||||
$snmp3_auth_pass,
|
||||
|
@ -312,7 +312,7 @@ push_table_simple($data, 'field_snmpv3_row1');
|
|||
$data = [];
|
||||
$data[0] = __('Privacy method');
|
||||
$data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true, false, false, '', $disabledBecauseInPolicy);
|
||||
$data[2] = __('Privacy pass').ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$data[2] = __('Privacy pass').ui_print_help_icon('column_macros', true).ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$data[3] = html_print_input_password(
|
||||
'snmp3_privacy_pass',
|
||||
$snmp3_privacy_pass,
|
||||
|
|
|
@ -44,8 +44,7 @@ if (empty($update_module_id)) {
|
|||
$data = [];
|
||||
$data[0] = __('Target IP');
|
||||
$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true);
|
||||
$data[2] = __('Namespace');
|
||||
$data[2] .= ui_print_help_icon('wminamespace', true);
|
||||
$data[2] = __('Namespace').ui_print_help_tip(__('Optional. WMI namespace. If unsure leave blank.'), true);
|
||||
$data[3] = html_print_input_text(
|
||||
'tcp_send',
|
||||
$tcp_send,
|
||||
|
@ -61,7 +60,7 @@ $data[3] = html_print_input_text(
|
|||
push_table_simple($data, 'target_ip');
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Username');
|
||||
$data[0] = __('Username').ui_print_help_icon('column_macros', true);
|
||||
$data[1] = html_print_input_text(
|
||||
'plugin_user',
|
||||
$plugin_user,
|
||||
|
@ -74,7 +73,7 @@ $data[1] = html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
$data[2] = __('Password');
|
||||
$data[2] = __('Password').ui_print_help_icon('column_macros', true);
|
||||
$data[3] = html_print_input_password(
|
||||
'plugin_pass',
|
||||
$plugin_pass,
|
||||
|
@ -110,8 +109,7 @@ $table_simple->colspan['wmi_query'][1] = 3;
|
|||
push_table_simple($data, 'wmi_query');
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Key string');
|
||||
$data[0] .= ui_print_help_icon('wmikey', true);
|
||||
$data[0] = __('Key string').ui_print_help_tip(__('Optional. Substring to look for in the WQL query result. The module returns 1 if found, 0 if not.'), true);
|
||||
$data[1] = html_print_input_text(
|
||||
'snmp_community',
|
||||
$snmp_community,
|
||||
|
@ -124,8 +122,7 @@ $data[1] = html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
$data[2] = __('Field number');
|
||||
$data[2] .= ui_print_help_icon('wmifield', true);
|
||||
$data[2] = __('Field number').ui_print_help_tip(__('Column number to retrieve from the WQL query result (starting from zero).'), true);
|
||||
$data[3] = html_print_input_text(
|
||||
'tcp_port',
|
||||
$tcp_port,
|
||||
|
|
|
@ -205,6 +205,10 @@ if ($update_agents) {
|
|||
$values['disabled'],
|
||||
]
|
||||
);
|
||||
// Validate alerts for disabled agents.
|
||||
if ($values['disabled'] == 1) {
|
||||
alerts_validate_alert_agent($id_agent);
|
||||
}
|
||||
}
|
||||
|
||||
if ($group_old || $result) {
|
||||
|
|
|
@ -143,7 +143,7 @@ if ($update) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
// Standard procedure
|
||||
// Standard procedure.
|
||||
foreach ($agents_ as $agent_) {
|
||||
if ($modules_ == false) {
|
||||
$modules_ = [];
|
||||
|
@ -315,7 +315,7 @@ if ($module_type != '') {
|
|||
|
||||
$names = agents_get_modules(
|
||||
array_keys($agents),
|
||||
'DISTINCT(tagente_modulo.nombre)',
|
||||
'tagente_modulo.nombre',
|
||||
$filter,
|
||||
false
|
||||
);
|
||||
|
@ -1965,4 +1965,3 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ if ($create_network_from_module) {
|
|||
$id_module_group = $data_module['id_module_group'];
|
||||
$id_plugin = $data_module['id_plugin'];
|
||||
$plugin_user = $data_module['plugin_user'];
|
||||
$plugin_pass = $data_module['plugin_pass'];
|
||||
$plugin_pass = io_output_password($data_module['plugin_pass']);
|
||||
$plugin_parameter = $data_module['plugin_parameter'];
|
||||
$macros = $data_module['macros'];
|
||||
$max_timeout = $data_module['max_timeout'];
|
||||
|
@ -104,7 +104,7 @@ if (isset($id)) {
|
|||
$id_group = $component['id_group'];
|
||||
$id_plugin = $component['id_plugin'];
|
||||
$plugin_user = $component['plugin_user'];
|
||||
$plugin_pass = $component['plugin_pass'];
|
||||
$plugin_pass = io_output_password($component['plugin_pass']);
|
||||
$plugin_parameter = $component['plugin_parameter'];
|
||||
$macros = $component['macros'];
|
||||
$max_timeout = $component['max_timeout'];
|
||||
|
@ -140,10 +140,10 @@ if (isset($id)) {
|
|||
// New support for snmp v3
|
||||
$snmp_version = $component['tcp_send'];
|
||||
$snmp3_auth_user = $component['plugin_user'];
|
||||
$snmp3_auth_pass = $component['plugin_pass'];
|
||||
$snmp3_auth_pass = io_output_password($component['plugin_pass']);
|
||||
$snmp3_auth_method = $component['plugin_parameter'];
|
||||
$snmp3_privacy_method = $component['custom_string_1'];
|
||||
$snmp3_privacy_pass = $component['custom_string_2'];
|
||||
$snmp3_privacy_pass = io_output_password($component['custom_string_2']);
|
||||
$snmp3_security_level = $component['custom_string_3'];
|
||||
}
|
||||
} else if (isset($new_component) && $new_component && !$create_network_from_snmp_browser) {
|
||||
|
|
|
@ -57,16 +57,16 @@ $data = [];
|
|||
$data[0] = __('SNMP Enterprise String');
|
||||
$data[1] = html_print_input_text('snmp_oid', $snmp_oid, '', 30, 400, true);
|
||||
// $table->colspan['snmp_2'][1] = 3;
|
||||
$data[2] = __('SNMP community');
|
||||
$data[2] = __('SNMP community').ui_print_help_icon('column_macros', true);
|
||||
$data[3] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true);
|
||||
|
||||
push_table_row($data, 'snmp_2');
|
||||
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Auth user');
|
||||
$data[0] = __('Auth user').ui_print_help_icon('column_macros', true);
|
||||
$data[1] = html_print_input_text('snmp3_auth_user', $snmp3_auth_user, '', 15, 60, true);
|
||||
$data[2] = __('Auth password');
|
||||
$data[2] = __('Auth password').ui_print_help_icon('column_macros', true);
|
||||
$data[3] = html_print_input_password('snmp3_auth_pass', $snmp3_auth_pass, '', 15, 60, true);
|
||||
$data[3] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_mncfn', true);
|
||||
push_table_row($data, 'field_snmpv3_row1');
|
||||
|
@ -74,7 +74,7 @@ push_table_row($data, 'field_snmpv3_row1');
|
|||
$data = [];
|
||||
$data[0] = __('Privacy method');
|
||||
$data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true);
|
||||
$data[2] = __('Privacy pass');
|
||||
$data[2] = __('Privacy pass').ui_print_help_icon('column_macros', true);
|
||||
$data[3] = html_print_input_password('snmp3_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true);
|
||||
push_table_row($data, 'field_snmpv3_row2');
|
||||
|
||||
|
|
|
@ -44,9 +44,9 @@ $data[3] = html_print_input_text('tcp_send', $tcp_send, '', 25, 255, true);
|
|||
push_table_row($data, 'wmi_2');
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Username');
|
||||
$data[0] = __('Username').ui_print_help_icon('column_macros', true);
|
||||
$data[1] = html_print_input_text('plugin_user', $plugin_user, '', 15, 255, true);
|
||||
$data[2] = __('Password');
|
||||
$data[2] = __('Password').ui_print_help_icon('column_macros', true);
|
||||
$data[3] = html_print_input_password('plugin_pass', $plugin_pass, '', 25, 255, true);
|
||||
|
||||
push_table_row($data, 'wmi_3');
|
||||
|
|
|
@ -42,6 +42,7 @@ if (!$is_metaconsole) {
|
|||
$url_visual_console_favorite = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_favorite';
|
||||
$url_visual_console_template = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_template';
|
||||
$url_visual_console_template_wizard = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_wizard';
|
||||
$url_visual_console_manager = 'index.php?sec=screen&sec2=enterprise/extensions/visual_console_manager';
|
||||
}
|
||||
|
||||
$pure = (int) get_parameter('pure', 0);
|
||||
|
@ -70,6 +71,12 @@ if ($is_enterprise && $vconsoles_manage) {
|
|||
'active' => false,
|
||||
'text' => '<a href="'.$url_visual_console_template_wizard.'">'.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'</a>',
|
||||
];
|
||||
if ($is_metaconsole) {
|
||||
$buttons['visual_console_manager'] = [
|
||||
'active' => false,
|
||||
'text' => '<a href="'.$url_visual_console_manager.'">'.html_print_image('images/builder.png', true, ['title' => __('Visual Console Manager')]).'</a>',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (!$is_metaconsole) {
|
||||
|
|
|
@ -2720,7 +2720,7 @@ function edit_custom_graph() {
|
|||
}
|
||||
});
|
||||
|
||||
window.location.href = server_url + "/index.php?sec=reporting&sec2=godmode/reporting/graph_builder&edit_graph=1&id=" + id_element_graph + hash_data;
|
||||
window.location.href = server_url + "index.php?sec=reporting&sec2=godmode/reporting/graph_builder&edit_graph=1&id=" + id_element_graph + hash_data;
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
|
|
|
@ -1116,8 +1116,13 @@ switch ($action) {
|
|||
$name_it = (string) get_parameter('name');
|
||||
$values['name'] = reporting_label_macro($items_label, $name_it);
|
||||
|
||||
// Added support for projection graphs, prediction date and SLA reports
|
||||
// 'top_n_value','top_n' and 'text' fields will be reused for these types of report
|
||||
/*
|
||||
Added support for projection graphs,
|
||||
prediction date and SLA reports
|
||||
'top_n_value','top_n' and 'text'
|
||||
fields will be reused for these types of report
|
||||
*/
|
||||
|
||||
switch ($values['type']) {
|
||||
case 'projection_graph':
|
||||
$values['period'] = get_parameter('period1');
|
||||
|
@ -1127,7 +1132,8 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'event_report_log':
|
||||
$agents_to_report = get_parameter('id_agents2');
|
||||
|
||||
$agents_to_report = get_parameter('id_agents3');
|
||||
$source = get_parameter('source', '');
|
||||
$search = get_parameter('search', '');
|
||||
$log_number = get_parameter('log_number', '');
|
||||
|
@ -1525,7 +1531,7 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'event_report_log':
|
||||
$agents_to_report = get_parameter('id_agents2');
|
||||
$agents_to_report = get_parameter('id_agents3');
|
||||
$source = get_parameter('source', '');
|
||||
$search = get_parameter('search', '');
|
||||
$log_number = get_parameter('log_number', '');
|
||||
|
@ -1632,17 +1638,6 @@ switch ($action) {
|
|||
$values['server_name'] = get_parameter('combo_server');
|
||||
}
|
||||
|
||||
|
||||
if (is_metaconsole()) {
|
||||
// For SQL Query check if it is setted in the meta
|
||||
if ($values['type'] == 'sql') {
|
||||
if (empty($values['server_name'])) {
|
||||
$good_format = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$values['id_agent'] = get_parameter('id_agent');
|
||||
$values['id_gs'] = get_parameter('id_custom_graph');
|
||||
if (($values['type'] == 'alert_report_agent') or ($values['type'] == 'event_report_agent') or ($values['type'] == 'agent_configuration') or ($values['type'] == 'group_configuration')) {
|
||||
|
|
|
@ -231,6 +231,21 @@ function is_metaconsole() {
|
|||
else return false;
|
||||
}
|
||||
|
||||
function dialog_message(message_id) {
|
||||
$(message_id)
|
||||
.css("display", "inline")
|
||||
.dialog({
|
||||
modal: true,
|
||||
show: "blind",
|
||||
hide: "blind",
|
||||
buttons: {
|
||||
Close: function() {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function update_button_palette_callback() {
|
||||
var values = {};
|
||||
|
||||
|
@ -240,14 +255,11 @@ function update_button_palette_callback() {
|
|||
switch (selectedItem) {
|
||||
case "background":
|
||||
if (values["width"] < 1024 || values["height"] < 768) {
|
||||
alert("Min allowed size is 1024x768");
|
||||
dialog_message("#message_min_allowed_size");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (values["width"] == 0 && values["height"] == 0) {
|
||||
values["width"] = $("#hidden-background_original_width").val();
|
||||
values["height"] = $("#hidden-background_original_height").val();
|
||||
}
|
||||
$("#hidden-background_width").val(values["width"]);
|
||||
$("#hidden-background_height").val(values["height"]);
|
||||
$("#background").css("width", values["width"]);
|
||||
$("#background").css("height", values["height"]);
|
||||
|
||||
|
@ -259,11 +271,25 @@ function update_button_palette_callback() {
|
|||
break;
|
||||
case "box_item":
|
||||
if ($("input[name=width_box]").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name='width_box']").val()) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=height_box]").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name='height_box']").val()) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -288,7 +314,7 @@ function update_button_palette_callback() {
|
|||
values["label"] == "" &&
|
||||
values["show_statistics"] == false
|
||||
) {
|
||||
alert("Undefined image");
|
||||
dialog_message("#message_alert_no_image");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -428,18 +454,32 @@ function update_button_palette_callback() {
|
|||
break;
|
||||
case "static_graph":
|
||||
if ($("input[name=width]").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name='width']").val()) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=height]").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name='height']").val()) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
(values["image"] == "" || values["image"] == "none") &&
|
||||
values["label"] == ""
|
||||
) {
|
||||
alert("Undefined image");
|
||||
dialog_message("#message_alert_no_image");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -555,13 +595,27 @@ function update_button_palette_callback() {
|
|||
break;
|
||||
case "percentile_bar":
|
||||
case "percentile_item":
|
||||
if ($("input[name=width_percentile]").val() == "") {
|
||||
alert("Undefined width");
|
||||
if ($("input[name=height_percentile]").val() == "") {
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($("input[name=height_percentile]").val() == "") {
|
||||
alert("Undefined height");
|
||||
if ($("input[name=width_percentile]").val() == "") {
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
$("input[name=width_percentile]").val() >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
return false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -604,7 +658,6 @@ function update_button_palette_callback() {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($("#dir_items").html() == "vertical") {
|
||||
if (
|
||||
parseInt($("#text-top").val()) +
|
||||
|
@ -621,20 +674,41 @@ function update_button_palette_callback() {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
return false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=width_module_graph]").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=height_module_graph]").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width_module_graph"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name=height_module_graph]").val()) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
$("#custom_graph_row").css("display") != "none" &&
|
||||
$("#custom_graph option:selected").html() == "None"
|
||||
) {
|
||||
alert("Undefined graph");
|
||||
dialog_message("#message_alert_no_custom_graph");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -644,12 +718,19 @@ function update_button_palette_callback() {
|
|||
break;
|
||||
case "bars_graph":
|
||||
if ($("input[name=width_percentile]").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($("input[name=bars_graph_height]").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
return false;
|
||||
}
|
||||
if (values["agent_string"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -660,18 +741,48 @@ function update_button_palette_callback() {
|
|||
break;
|
||||
|
||||
case "clock":
|
||||
if (
|
||||
parseInt(values["width_percentile"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#text_" + idItem).html(values["label"]);
|
||||
$("#image_" + idItem).attr("src", "images/spinner.gif");
|
||||
setClock(idItem, values);
|
||||
break;
|
||||
|
||||
case "auto_sla_graph":
|
||||
if ($("input[name=width]").val() == "") {
|
||||
alert("Undefined width");
|
||||
if (values["height"] == "") {
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=height]").val() == "") {
|
||||
alert("Undefined height");
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
if (values["width"] == "") {
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
return false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
$("#text_" + idItem).html(values["label"]);
|
||||
|
@ -680,8 +791,22 @@ function update_button_palette_callback() {
|
|||
setEventsBar(idItem, values);
|
||||
break;
|
||||
case "donut_graph":
|
||||
if (
|
||||
parseInt(values["width_percentile"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module_string_type");
|
||||
return false;
|
||||
}
|
||||
if (values["agent_string"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
$("#image_" + idItem).attr("src", "images/spinner.gif");
|
||||
|
||||
setDonutsGraph(idItem, values);
|
||||
break;
|
||||
case "simple_value":
|
||||
|
@ -718,21 +843,47 @@ function update_button_palette_callback() {
|
|||
"</span></td></tr><tr><td></td></tr></tbody></table>"
|
||||
);
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
return false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "label":
|
||||
if (values["label"] == "") {
|
||||
dialog_message("#message_alert_no_label");
|
||||
return false;
|
||||
}
|
||||
$("#text_" + idItem).html(values["label"]);
|
||||
break;
|
||||
case "icon":
|
||||
if ($("input[name=width]").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name=width]").val()) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=height]").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name=height]").val()) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
if (values["image"] == "" || values["image"] == "none") {
|
||||
alert("Undefined image");
|
||||
dialog_message("#message_alert_no_image");
|
||||
return false;
|
||||
}
|
||||
$("#image_" + idItem).attr("src", "images/spinner.gif");
|
||||
|
@ -779,13 +930,70 @@ function update_button_palette_callback() {
|
|||
var image = values["image"] + ".png";
|
||||
set_image("image", idItem, image);
|
||||
break;
|
||||
case "line_item":
|
||||
if (
|
||||
parseInt(values["line_width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "color_cloud":
|
||||
if (
|
||||
parseInt(values["diameter"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
return false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "service":
|
||||
if (values["height"] == "" || values["height_module_graph"] == 0) {
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
return false;
|
||||
}
|
||||
if (values["width"] == "" || values["width_module_graph"] == 0) {
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
$("select[name=service]").val() == "" ||
|
||||
$("select[name=service]").val() == "none"
|
||||
) {
|
||||
dialog_message("#message_alert_no_service");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if ($("input[name=width]").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
return false;
|
||||
}
|
||||
if ($("input[name=height]").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
return false;
|
||||
}
|
||||
//Maybe save in any Enterprise item.
|
||||
|
@ -1018,149 +1226,356 @@ function create_button_palette_callback() {
|
|||
switch (creationItem) {
|
||||
case "box_item":
|
||||
if ($("input[name='width_box']").val() == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name='width_box']").val()) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if ($("input[name='height_box']").val() == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt($("input[name='height_box']").val()) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "group_item":
|
||||
if (values["height"] == "") {
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["width"] == "") {
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
(values["image"] == "" || values["image"] == "none") &&
|
||||
values["label"] == "" &&
|
||||
values["show_statistics"] == false
|
||||
) {
|
||||
alert("Undefined images");
|
||||
dialog_message("#message_alert_no_image");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "static_graph":
|
||||
if (values["width"] == "") {
|
||||
alert("Undefined width");
|
||||
if (values["height"] == "") {
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["height"] == "") {
|
||||
alert("Undefined height");
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["width"] == "") {
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
(values["image"] == "" || values["image"] == "none") &&
|
||||
values["label"] == false
|
||||
) {
|
||||
alert("Undefined image");
|
||||
dialog_message("#message_alert_no_image");
|
||||
validate = false;
|
||||
}
|
||||
|
||||
break;
|
||||
case "auto_sla_graph":
|
||||
if (values["height"] == "") {
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["width"] == "") {
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
validate = false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
alert($("#message_alert_no_agent").html());
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "donut_graph":
|
||||
if (
|
||||
parseInt(values["width_percentile"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module_string_type");
|
||||
validate = false;
|
||||
}
|
||||
if (values["agent_string"] == "") {
|
||||
alert($("#message_alert_no_agent").html());
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "label":
|
||||
if (values["label"] == "") {
|
||||
alert($("#message_alert_no_label").html());
|
||||
dialog_message("#message_alert_no_label");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "icon":
|
||||
if (values["width"] == "") {
|
||||
alert("Undefined width");
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["height"] == "") {
|
||||
alert("Undefined height");
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["image"] == "" || values["image"] == "none") {
|
||||
alert($("#message_alert_no_image").html());
|
||||
dialog_message("#message_alert_no_image");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "percentile_bar":
|
||||
case "percentile_item":
|
||||
if (values["width"] == "") {
|
||||
alert("Undefined width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
alert($("#message_alert_no_agent").html());
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
alert($("#message_alert_no_module").html());
|
||||
validate = false;
|
||||
}
|
||||
if (values["max_percentile"] == "") {
|
||||
alert($("#message_alert_no_max_percentile").html());
|
||||
if (
|
||||
parseInt(values["width_percentile"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["width_percentile"] == "") {
|
||||
alert($("#message_alert_no_width_percentile").html());
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
validate = false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
|
||||
if (values["max_percentile"] == "") {
|
||||
dialog_message("#message_alert_no_max_percentile");
|
||||
validate = false;
|
||||
}
|
||||
|
||||
break;
|
||||
case "module_graph":
|
||||
if (values["width_module_graph"] == "") {
|
||||
alert("Undefined width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["height_module_graph"] == "") {
|
||||
alert("Undefined height");
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
validate = false;
|
||||
}
|
||||
if (values["id_custom_graph"] == 0) {
|
||||
if (values["agent"] == "") {
|
||||
alert($("#message_alert_no_agent").html());
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
alert($("#message_alert_no_module").html());
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
if (values["period"] == 0) {
|
||||
alert($("#message_alert_no_period").html());
|
||||
dialog_message("#message_alert_no_period");
|
||||
validate = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "bars_graph":
|
||||
if (values["agent_string"] == "") {
|
||||
alert($("#message_alert_no_agent").html());
|
||||
if (
|
||||
values["height_module_graph"] == "" ||
|
||||
values["height_module_graph"] == 0
|
||||
) {
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
alert($("#message_alert_no_module").html());
|
||||
if (
|
||||
parseInt(values["height_module_graph"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
values["width_module_graph"] == "" ||
|
||||
values["width_module_graph"] == 0
|
||||
) {
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width_module_graph"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "bars_graph":
|
||||
if (values["bars_graph_height"] == "") {
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["bars_graph_height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["width_percentile"] == "") {
|
||||
alert($("#message_alert_no_width_percentile").html());
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["bars_graph_height"] == "") {
|
||||
alert($("#message_alert_no_bars_graph_height").html());
|
||||
if (
|
||||
parseInt(values["width_percentile"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
validate = false;
|
||||
}
|
||||
if (values["agent_string"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "simple_value":
|
||||
if (values["agent"] == "") {
|
||||
alert($("#message_alert_no_agent").html());
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
alert($("#message_alert_no_module").html());
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "clock":
|
||||
if (
|
||||
parseInt(values["width_percentile"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "line_item":
|
||||
if (
|
||||
parseInt(values["line_width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "color_cloud":
|
||||
if (
|
||||
parseInt(values["diameter"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["module"] == 0) {
|
||||
dialog_message("#message_alert_no_module");
|
||||
validate = false;
|
||||
}
|
||||
if (values["agent"] == "") {
|
||||
dialog_message("#message_alert_no_agent");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
case "service":
|
||||
if (values["height"] == "" || values["height_module_graph"] == 0) {
|
||||
dialog_message("#message_alert_no_height");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["height"]) >
|
||||
parseInt($("#hidden-background_height").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_height");
|
||||
validate = false;
|
||||
}
|
||||
if (values["width"] == "" || values["width_module_graph"] == 0) {
|
||||
dialog_message("#message_alert_no_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
parseInt(values["width"]) >
|
||||
parseInt($("#hidden-background_width").val())
|
||||
) {
|
||||
dialog_message("#message_alert_max_width");
|
||||
validate = false;
|
||||
}
|
||||
if (
|
||||
$("select[name=service]").val() == "" ||
|
||||
$("select[name=service]").val() == "none"
|
||||
) {
|
||||
dialog_message("#message_alert_no_service");
|
||||
validate = false;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
//Maybe save in any Enterprise item.
|
||||
if (typeof enterprise_create_button_palette_callback == "function") {
|
||||
|
@ -3714,17 +4129,7 @@ function createItem(type, values, id_data) {
|
|||
.attr("height", values["height"]);
|
||||
}
|
||||
}
|
||||
// else{
|
||||
// $('#image_'+id_data).css('width', values['width']+'px');
|
||||
// $('#image_'+id_data).css('height', values['height']+'px');
|
||||
// }
|
||||
/*
|
||||
var $span = $('<span></span>')
|
||||
.attr('id', 'text_' + id_data)
|
||||
.attr('class', 'text')
|
||||
.append(values['label']);
|
||||
|
||||
*/
|
||||
|
||||
var $input = $("<input></input>")
|
||||
.attr("id", "hidden-status_" + id_data)
|
||||
.attr("type", "hidden")
|
||||
|
@ -4489,7 +4894,6 @@ function createItem(type, values, id_data) {
|
|||
case "clock":
|
||||
sizeStyle = "";
|
||||
imageSize = "";
|
||||
|
||||
if (values["label_position"] == "up") {
|
||||
item = $(
|
||||
'<div id="' +
|
||||
|
|
|
@ -41,6 +41,7 @@ if (!$is_metaconsole) {
|
|||
$url_visual_console_favorite = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_favorite';
|
||||
$url_visual_console_template = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_template';
|
||||
$url_visual_console_template_wizard = 'index.php?sec=screen&sec2=screens/screens&action=visualmap_wizard';
|
||||
$url_visual_console_manager = 'index.php?sec=screen&sec2=enterprise/extensions/visual_console_manager';
|
||||
}
|
||||
|
||||
$buttons['visual_console'] = [
|
||||
|
@ -63,6 +64,13 @@ if ($is_enterprise && $vconsoles_manage) {
|
|||
'active' => false,
|
||||
'text' => '<a href="'.$url_visual_console_template_wizard.'">'.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'</a>',
|
||||
];
|
||||
|
||||
if ($is_metaconsole) {
|
||||
$buttons['visual_console_manager'] = [
|
||||
'active' => false,
|
||||
'text' => '<a href="'.$url_visual_console_manager.'">'.html_print_image('images/builder.png', true, ['title' => __('Visual Console Manager')]).'</a>',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (!$is_metaconsole) {
|
||||
|
|
|
@ -1,37 +1,242 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
// Load global vars
|
||||
// Load global vars.
|
||||
global $config;
|
||||
require_once 'include/config.php';
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||
if (! check_acl($config['id_user'], 0, 'PM')
|
||||
&& ! is_user_admin($config['id_user'])
|
||||
) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
// Load enterprise extensions
|
||||
// ~ enterprise_include_once ('godmode/setup/setup.php');
|
||||
/*
|
||||
NOTICE FOR DEVELOPERS:
|
||||
$update_config = get_parameter('update_config', 0);
|
||||
if ($update_config == 1 && $config['history_db_enabled'] == 1) {
|
||||
if (! isset($config['history_db_connection'])
|
||||
|| $config['history_db_connection'] === false
|
||||
) {
|
||||
$config['history_db_connection'] = db_connect(
|
||||
$config['history_db_host'],
|
||||
$config['history_db_name'],
|
||||
$config['history_db_user'],
|
||||
io_output_password($config['history_db_pass']),
|
||||
$config['history_db_port'],
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
if ($config['history_db_connection'] !== false) {
|
||||
$historical_days_purge = get_parameter('historical_days_purge', 0);
|
||||
$historical_days_compact = get_parameter('historical_days_compact', 0);
|
||||
$historical_step_compact = get_parameter('historical_step_compact', 0);
|
||||
$historical_event_purge = get_parameter('historical_event_purge', 0);
|
||||
$historical_string_purge = get_parameter('historical_string_purge', 0);
|
||||
|
||||
$history_connect = @mysql_db_process_sql(
|
||||
'SELECT 1 FROM tconfig',
|
||||
'affected_rows',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
|
||||
$config_history = false;
|
||||
if ($history_connect !== false) {
|
||||
$config_history = mysql_db_process_sql(
|
||||
'SELECT * FROM tconfig',
|
||||
'affected_rows',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
|
||||
if (!$config_history) {
|
||||
$sql = "INSERT INTO tconfig (token, `value`) VALUES
|
||||
('days_purge', ".$historical_days_purge."),
|
||||
('days_compact', ".$historical_days_compact."),
|
||||
('step_compact', ".$historical_step_compact."),
|
||||
('event_purge', ".$historical_event_purge."),
|
||||
('string_purge', ".$historical_string_purge."),
|
||||
('history_db_enabled', 0)";
|
||||
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'insert_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
} else {
|
||||
$sql = 'UPDATE tconfig SET `value` = '.$historical_days_purge." WHERE token = 'days_purge'";
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'update_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
$sql = 'UPDATE tconfig SET `value` = '.$historical_days_compact." WHERE token = 'days_compact'";
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'update_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
$sql = 'UPDATE tconfig SET `value` = '.$historical_step_compact." WHERE token = 'step_compact'";
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'update_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
$sql = 'UPDATE tconfig SET `value` = '.$historical_event_purge." WHERE token = 'event_purge'";
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'update_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
$sql = 'UPDATE tconfig SET `value` = '.$historical_string_purge." WHERE token = 'string_purge'";
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'update_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
$sql = "UPDATE tconfig SET `value` = 0 WHERE token = 'history_db_enabled'";
|
||||
mysql_db_process_sql(
|
||||
$sql,
|
||||
'update_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$table_status = new StdClass();
|
||||
$table_status->width = '100%';
|
||||
$table_status->class = 'databox filters';
|
||||
$table_status->style[0] = 'font-weight: bold';
|
||||
$table_status->size[0] = '10%';
|
||||
|
||||
$table_status->data = [];
|
||||
|
||||
$sql = "SELECT UNIX_TIMESTAMP(NOW()) - `value` AS updated_at
|
||||
FROM tconfig
|
||||
WHERE token = 'db_maintance'";
|
||||
|
||||
$time_pandora_db_active = db_get_sql($sql);
|
||||
|
||||
|
||||
if ($time_pandora_db_active < SECONDS_12HOURS) {
|
||||
$table_status->data[0][0] = html_print_image(
|
||||
'images/dot_green.png',
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$table_status->data[0][0] = html_print_image(
|
||||
'images/dot_red.png',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table_status->data[0][0] .= ' '.__('Pandora_db running in active database.');
|
||||
$table_status->data[0][0] .= ' '.__('Executed:').' ';
|
||||
$table_status->data[0][0] .= human_time_description_raw(
|
||||
$time_pandora_db_active,
|
||||
true
|
||||
);
|
||||
|
||||
$table_status->data[0][0] .= ' '.__('ago').'.';
|
||||
|
||||
if ($config['history_db_enabled'] == 1) {
|
||||
if (! isset($config['history_db_connection'])
|
||||
|| $config['history_db_connection'] === false
|
||||
) {
|
||||
$config['history_db_connection'] = db_connect(
|
||||
$config['history_db_host'],
|
||||
$config['history_db_name'],
|
||||
$config['history_db_user'],
|
||||
io_output_password($config['history_db_pass']),
|
||||
$config['history_db_port'],
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
$history_connect = @mysql_db_process_sql(
|
||||
'SELECT 1 FROM tconfig',
|
||||
'affected_rows',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
|
||||
$time_pandora_db_history = false;
|
||||
if ($history_connect !== false) {
|
||||
if ($config['history_db_connection'] !== false) {
|
||||
$time_pandora_db_history = mysql_db_process_sql(
|
||||
$sql,
|
||||
'insert_id',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($time_pandora_db_history !== false
|
||||
&& $time_pandora_db_history[0]['updated_at'] < SECONDS_12HOURS
|
||||
) {
|
||||
$table_status->data[1][0] = html_print_image(
|
||||
'images/dot_green.png',
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$table_status->data[1][0] = html_print_image(
|
||||
'images/dot_red.png',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table_status->data[1][0] .= ' '.__('Pandora_db running in historical database.');
|
||||
$table_status->data[1][0] .= ' '.__('Executed:').' ';
|
||||
if ($time_pandora_db_history !== false) {
|
||||
$table_status->data[1][0] .= human_time_description_raw(
|
||||
$time_pandora_db_history[0]['updated_at'],
|
||||
true
|
||||
).' '.__('ago').'.';
|
||||
} else {
|
||||
$table_status->data[1][0] .= __('not executed');
|
||||
}
|
||||
}
|
||||
|
||||
Update operation is done in config_process.php
|
||||
This is done in that way so the user can see the changes inmediatly.
|
||||
If you added a new token, please check config_update_config() in functions_config.php
|
||||
to add it there.
|
||||
*/
|
||||
|
||||
$table = new StdClass();
|
||||
$table->width = '100%';
|
||||
|
@ -44,42 +249,279 @@ $table->size[1] = '30%';
|
|||
|
||||
enterprise_hook('enterprise_warnings_history_days');
|
||||
|
||||
$table->data[1][0] = __('Max. days before delete events').ui_print_help_tip(__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'), true);
|
||||
$table->data[1][1] = html_print_input_text('event_purge', $config['event_purge'], '', 5, 5, true);
|
||||
$table->data[1][0] = __('Max. days before delete events');
|
||||
$table->data[1][0] .= ui_print_help_tip(
|
||||
__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'),
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[1][1] = html_print_input_text(
|
||||
'event_purge',
|
||||
$config['event_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[2][0] = __('Max. days before delete traps');
|
||||
$table->data[2][1] = html_print_input_text('trap_purge', $config['trap_purge'], '', 5, 5, true);
|
||||
$table->data[2][1] = html_print_input_text(
|
||||
'trap_purge',
|
||||
$config['trap_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[3][0] = __('Max. days before delete audit events');
|
||||
$table->data[3][1] = html_print_input_text('audit_purge', $config['audit_purge'], '', 5, 5, true);
|
||||
$table->data[3][1] = html_print_input_text(
|
||||
'audit_purge',
|
||||
$config['audit_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[4][0] = __('Max. days before delete string data');
|
||||
$table->data[4][1] = html_print_input_text('string_purge', $config['string_purge'], '', 5, 5, true);
|
||||
$table->data[4][1] = html_print_input_text(
|
||||
'string_purge',
|
||||
$config['string_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[5][0] = __('Max. days before delete GIS data');
|
||||
$table->data[5][1] = html_print_input_text('gis_purge', $config['gis_purge'], '', 5, 5, true);
|
||||
$table->data[5][1] = html_print_input_text(
|
||||
'gis_purge',
|
||||
$config['gis_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[6][0] = __('Max. days before purge').ui_print_help_tip(__('Configure a purge period more frequent than a compact data period has no sense'), true);
|
||||
$table->data[6][1] = html_print_input_text('days_purge', $config['days_purge'], '', 5, 5, true);
|
||||
$table->data[6][0] = __('Max. days before purge');
|
||||
$table->data[6][0] .= ui_print_help_tip(
|
||||
__('Configure a purge period more frequent than a compact data period has no sense'),
|
||||
true
|
||||
);
|
||||
$table->data[6][1] = html_print_input_text(
|
||||
'days_purge',
|
||||
$config['days_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[7][0] = __('Max. days before compact data');
|
||||
$table->data[7][1] = html_print_input_text('days_compact', $config['days_compact'], '', 5, 5, true);
|
||||
$table->data[7][1] = html_print_input_text(
|
||||
'days_compact',
|
||||
$config['days_compact'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[8][0] = __('Max. days before delete unknown modules');
|
||||
$table->data[8][1] = html_print_input_text('days_delete_unknown', $config['days_delete_unknown'], '', 5, 5, true);
|
||||
$table->data[8][1] = html_print_input_text(
|
||||
'days_delete_unknown',
|
||||
$config['days_delete_unknown'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[9][0] = __('Max. days before delete autodisabled agents');
|
||||
$table->data[9][1] = html_print_input_text('days_autodisable_deletion', $config['days_autodisable_deletion'], '', 5, 5, true);
|
||||
$table->data[9][1] = html_print_input_text(
|
||||
'days_autodisable_deletion',
|
||||
$config['days_autodisable_deletion'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[10][0] = __('Retention period of past special days').ui_print_help_tip(__('This number is days to keep past special days. 0 means never remove.'), true);
|
||||
$table->data[10][1] = html_print_input_text('num_past_special_days', $config['num_past_special_days'], '', 5, 5, true);
|
||||
$table->data[10][0] = __('Retention period of past special days');
|
||||
$table->data[10][0] .= ui_print_help_tip(
|
||||
__('This number is days to keep past special days. 0 means never remove.'),
|
||||
true
|
||||
);
|
||||
$table->data[10][1] = html_print_input_text(
|
||||
'num_past_special_days',
|
||||
$config['num_past_special_days'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[11][0] = __('Max. macro data fields').ui_print_help_tip(__('Number of macro fields in alerts and templates between 1 and 15'), true);
|
||||
$table->data[11][1] = html_print_input_text('max_macro_fields', $config['max_macro_fields'], '', 5, 5, true, false, false, 'onChange="change_macro_fields()"');
|
||||
$table->data[11][0] = __('Max. macro data fields');
|
||||
$table->data[11][0] .= ui_print_help_tip(
|
||||
__('Number of macro fields in alerts and templates between 1 and 15'),
|
||||
true
|
||||
);
|
||||
$table->data[11][1] = html_print_input_text(
|
||||
'max_macro_fields',
|
||||
$config['max_macro_fields'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'onChange="change_macro_fields()"'
|
||||
);
|
||||
|
||||
if (enterprise_installed()) {
|
||||
$table->data[12][0] = __('Max. days before delete inventory data');
|
||||
$table->data[12][1] = html_print_input_text('inventory_purge', $config['inventory_purge'], '', 5, 5, true);
|
||||
$table->data[12][1] = html_print_input_text(
|
||||
'inventory_purge',
|
||||
$config['inventory_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if ($config['history_db_enabled'] == 1) {
|
||||
if (! isset($config['history_db_connection'])
|
||||
|| $config['history_db_connection'] === false
|
||||
) {
|
||||
$config['history_db_connection'] = db_connect(
|
||||
$config['history_db_host'],
|
||||
$config['history_db_name'],
|
||||
$config['history_db_user'],
|
||||
io_output_password($config['history_db_pass']),
|
||||
$config['history_db_port'],
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
$history_connect = @mysql_db_process_sql(
|
||||
'SELECT 1 FROM tconfig',
|
||||
'affected_rows',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
|
||||
$config_history = false;
|
||||
if ($history_connect !== false) {
|
||||
if ($config['history_db_connection'] != false) {
|
||||
$config_history_array = mysql_db_process_sql(
|
||||
'SELECT * FROM tconfig',
|
||||
'affected_rows',
|
||||
$config['history_db_connection'],
|
||||
false
|
||||
);
|
||||
|
||||
if (isset($config_history_array) && is_array($config_history_array)) {
|
||||
foreach ($config_history_array as $key => $value) {
|
||||
$config_history[$value['token']] = $value['value'];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo ui_print_error_message(
|
||||
__('The tconfig table does not exist in the historical database')
|
||||
);
|
||||
}
|
||||
|
||||
if ($config_history === false) {
|
||||
$config_history = [];
|
||||
$config_history['days_purge'] = 180;
|
||||
$config_history['days_compact'] = 120;
|
||||
$config_history['step_compact'] = 1;
|
||||
$config_history['event_purge'] = 180;
|
||||
$config_history['string_purge'] = 180;
|
||||
}
|
||||
|
||||
$table_historical = new StdClass();
|
||||
$table_historical->width = '100%';
|
||||
$table_historical->class = 'databox filters';
|
||||
$table_historical->data = [];
|
||||
$table_historical->style[0] = 'font-weight: bold';
|
||||
|
||||
$table_historical->size[0] = '70%';
|
||||
$table_historical->size[1] = '30%';
|
||||
|
||||
enterprise_hook('enterprise_warnings_history_days');
|
||||
|
||||
$table_historical->data[0][0] = __('Max. days before purge');
|
||||
$table_historical->data[0][0] .= ui_print_help_tip(
|
||||
__('Configure a purge period more frequent than a compact data period has no sense'),
|
||||
true
|
||||
);
|
||||
$table_historical->data[0][1] = html_print_input_text(
|
||||
'historical_days_purge',
|
||||
$config_history['days_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_historical->data[1][0] = __('Max. days before compact data');
|
||||
$table_historical->data[1][1] = html_print_input_text(
|
||||
'historical_days_compact',
|
||||
$config_history['days_compact'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_historical->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
|
||||
$table_historical->data[2][0] .= ui_print_help_tip(
|
||||
__('Data will be compacted in intervals of the specified length.'),
|
||||
true
|
||||
);
|
||||
$table_historical->data[2][1] = html_print_input_text(
|
||||
'historical_step_compact',
|
||||
$config_history['step_compact'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_historical->data[3][0] = __('Max. days before delete events');
|
||||
$table_historical->data[3][0] .= ui_print_help_tip(
|
||||
__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'),
|
||||
true
|
||||
);
|
||||
|
||||
$table_historical->data[3][1] = html_print_input_text(
|
||||
'historical_event_purge',
|
||||
$config_history['event_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_historical->data[4][0] = __('Max. days before delete string data');
|
||||
$table_historical->data[4][1] = html_print_input_text(
|
||||
'historical_string_purge',
|
||||
$config_history['string_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_historical->data[4][1] .= html_print_input_hidden(
|
||||
'historical_history_db_enabled',
|
||||
0,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table->data[] = [
|
||||
|
@ -103,7 +545,11 @@ $table_other->style[0] = 'font-weight: bold';
|
|||
$table_other->size[0] = '70%';
|
||||
$table_other->size[1] = '30%';
|
||||
|
||||
$table_other->data[1][0] = __('Item limit for realtime reports').ui_print_help_tip(__('Set a value too high cause a slowdown on console and a performance penalty in the system.'), true);
|
||||
$table_other->data[1][0] = __('Item limit for realtime reports');
|
||||
$table_other->data[1][0] .= ui_print_help_tip(
|
||||
__('Set a value too high cause a slowdown on console and a performance penalty in the system.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[1][1] = html_print_input_text(
|
||||
'report_limit',
|
||||
$config['report_limit'],
|
||||
|
@ -113,7 +559,11 @@ $table_other->data[1][1] = html_print_input_text(
|
|||
true
|
||||
);
|
||||
|
||||
$table_other->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)').ui_print_help_tip(__('Data will be compacted in intervals of the specified length.'), true);
|
||||
$table_other->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
|
||||
$table_other->data[2][0] .= ui_print_help_tip(
|
||||
__('Data will be compacted in intervals of the specified length.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[2][1] = html_print_input_text(
|
||||
'step_compact',
|
||||
$config['step_compact'],
|
||||
|
@ -134,49 +584,145 @@ $intervals[SECONDS_2WEEK] = __('2 weeks');
|
|||
$intervals[SECONDS_1MONTH] = __('Last month');
|
||||
|
||||
$table_other->data[3][0] = __('Default hours for event view');
|
||||
$table_other->data[3][1] = html_print_input_text('event_view_hr', $config['event_view_hr'], '', 5, 5, true);
|
||||
$table_other->data[3][1] = html_print_input_text(
|
||||
'event_view_hr',
|
||||
$config['event_view_hr'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[5][0] = __('Use realtime statistics');
|
||||
$table_other->data[5][1] = __('Yes').' '.html_print_radio_button('realtimestats', 1, '', $config['realtimestats'], true).' ';
|
||||
$table_other->data[5][1] .= __('No').' '.html_print_radio_button('realtimestats', 0, '', $config['realtimestats'], true);
|
||||
$table_other->data[5][1] = html_print_checkbox_toogle_switch(
|
||||
'realtimestats',
|
||||
1,
|
||||
$config['realtimestats'],
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[6][0] = __('Batch statistics period (secs)').ui_print_help_tip(__('If realtime statistics are disabled, statistics interval resfresh will be set here.'), true);
|
||||
$table_other->data[6][1] = html_print_input_text('stats_interval', $config['stats_interval'], '', 5, 5, true);
|
||||
$table_other->data[6][0] = __('Batch statistics period (secs)');
|
||||
$table_other->data[6][0] .= ui_print_help_tip(
|
||||
__('If realtime statistics are disabled, statistics interval resfresh will be set here.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[6][1] = html_print_input_text(
|
||||
'stats_interval',
|
||||
$config['stats_interval'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[7][0] = __('Use agent access graph').ui_print_help_icon('agent_access', true);
|
||||
$table_other->data[7][1] = __('Yes').' '.html_print_radio_button('agentaccess', 1, '', $config['agentaccess'], true).' ';
|
||||
$table_other->data[7][1] .= __('No').' '.html_print_radio_button('agentaccess', 0, '', $config['agentaccess'], true);
|
||||
$table_other->data[7][1] = html_print_checkbox_toogle_switch('agentaccess', 1, $config['agentaccess'], true);
|
||||
|
||||
$table_other->data[8][0] = __('Max. recommended number of files in attachment directory').ui_print_help_tip(__('This number is the maximum number of files in attachment directory. If this number is reached then a warning message will appear in the header notification space.'), true);
|
||||
$table_other->data[8][1] = html_print_input_text('num_files_attachment', $config['num_files_attachment'], '', 5, 5, true);
|
||||
$table_other->data[8][0] = __('Max. recommended number of files in attachment directory');
|
||||
$table_other->data[8][0] .= ui_print_help_tip(
|
||||
__('This number is the maximum number of files in attachment directory. If this number is reached then a warning message will appear in the header notification space.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[8][1] = html_print_input_text(
|
||||
'num_files_attachment',
|
||||
$config['num_files_attachment'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[9][0] = __('Delete not init modules');
|
||||
$table_other->data[9][1] = __('Yes').' '.html_print_radio_button('delete_notinit', 1, '', $config['delete_notinit'], true).' ';
|
||||
$table_other->data[9][1] .= __('No').' '.html_print_radio_button('delete_notinit', 0, '', $config['delete_notinit'], true);
|
||||
$table_other->data[9][1] = html_print_checkbox_toogle_switch('delete_notinit', 1, $config['delete_notinit'], true);
|
||||
|
||||
$table_other->data[10][0] = __('Big Operation Step to purge old data').ui_print_help_tip(__('The number of blocks that a time interval is split into. A bigger value means bigger blocks, which is faster but heavier on the database. Default is 100.'), true);
|
||||
$table_other->data[10][1] = html_print_input_text('big_operation_step_datos_purge', $config['big_operation_step_datos_purge'], '', 5, 5, true);
|
||||
$table_other->data[10][0] = __('Big Operation Step to purge old data');
|
||||
$table_other->data[10][0] .= ui_print_help_tip(
|
||||
__('The number of blocks that a time interval is split into. A bigger value means bigger blocks, which is faster but heavier on the database. Default is 100.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[10][1] = html_print_input_text(
|
||||
'big_operation_step_datos_purge',
|
||||
$config['big_operation_step_datos_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[11][0] = __('Small Operation Step to purge old data').ui_print_help_tip(__('The number of rows that are processed in a single query in deletion. Default is 1000. Increase to 3000-5000 in fast systems. Decrease to 500 or 250 on systems with locks.'), true);
|
||||
$table_other->data[11][1] = html_print_input_text('small_operation_step_datos_purge', $config['small_operation_step_datos_purge'], '', 5, 5, true);
|
||||
$table_other->data[11][0] = __('Small Operation Step to purge old data');
|
||||
$table_other->data[11][0] .= ui_print_help_tip(
|
||||
__('The number of rows that are processed in a single query in deletion. Default is 1000. Increase to 3000-5000 in fast systems. Decrease to 500 or 250 on systems with locks.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[11][1] = html_print_input_text(
|
||||
'small_operation_step_datos_purge',
|
||||
$config['small_operation_step_datos_purge'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[12][0] = __('Graph container - Max. Items').ui_print_help_tip(__('The number of graphs that are viewed in a container. Default is 10 .Increasing this number could lead to performance problems'), true);
|
||||
$table_other->data[12][1] = html_print_input_text('max_graph_container', $config['max_graph_container'], '', 5, 5, true);
|
||||
$table_other->data[12][0] = __('Graph container - Max. Items');
|
||||
$table_other->data[12][0] .= ui_print_help_tip(
|
||||
__('The number of graphs that are viewed in a container. Default is 10 .Increasing this number could lead to performance problems'),
|
||||
true
|
||||
);
|
||||
$table_other->data[12][1] = html_print_input_text(
|
||||
'max_graph_container',
|
||||
$config['max_graph_container'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
$table_other->data[13][0] = __('Events response max. execution');
|
||||
$table_other->data[13][0] .= ui_print_help_tip(
|
||||
__('Number of events that will perform the desired action at the same time'),
|
||||
true
|
||||
);
|
||||
$table_other->data[13][1] = html_print_input_text(
|
||||
'max_execution_event_response',
|
||||
$config['max_execution_event_response'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
);
|
||||
|
||||
echo '<form id="form_setup" method="post">';
|
||||
|
||||
echo '<fieldset>';
|
||||
echo '<legend>'.__('Database maintenance options').'</legend>';
|
||||
html_print_input_hidden('update_config', 1);
|
||||
html_print_table($table);
|
||||
echo '<legend>'.__('Database maintenance status').'</legend>';
|
||||
html_print_table($table_status);
|
||||
echo '</fieldset>';
|
||||
|
||||
echo '<fieldset>';
|
||||
echo '<legend>'.__('Others').'</legend>';
|
||||
html_print_input_hidden('update_config', 1);
|
||||
html_print_table($table_other);
|
||||
echo '<legend>'.__('Database maintenance options').'</legend>';
|
||||
html_print_table($table);
|
||||
echo '</fieldset>';
|
||||
|
||||
if ($config['history_db_enabled'] == 1) {
|
||||
echo '<fieldset>';
|
||||
echo '<legend>'.__('Historical database maintenance options').'</legend>';
|
||||
html_print_table($table_historical);
|
||||
echo '</fieldset>';
|
||||
}
|
||||
|
||||
echo '<fieldset>';
|
||||
echo '<legend>'.__('Others').'</legend>';
|
||||
html_print_table($table_other);
|
||||
echo '</fieldset>';
|
||||
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
html_print_submit_button(__('Update'), 'update_button', false, 'class="sub upd"');
|
||||
html_print_input_hidden('update_config', 1);
|
||||
html_print_submit_button(
|
||||
__('Update'),
|
||||
'update_button',
|
||||
false,
|
||||
'class="sub upd"'
|
||||
);
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
?>
|
||||
|
@ -185,7 +731,6 @@ echo '</form>';
|
|||
|
||||
function change_macro_fields() {
|
||||
var value = $("#text-max_macro_fields").val();
|
||||
console.log(value);
|
||||
if (value <= 0) {
|
||||
$("#text-max_macro_fields").val(1);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
// Load global vars
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
@ -49,7 +64,7 @@ if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user
|
|||
return;
|
||||
}
|
||||
|
||||
// Load enterprise extensions
|
||||
// Load enterprise extensions.
|
||||
enterprise_include_once('include/functions_setup.php');
|
||||
enterprise_include_once('include/functions_io.php');
|
||||
enterprise_include_once('godmode/setup/setup.php');
|
||||
|
@ -63,12 +78,12 @@ enterprise_include_once('godmode/setup/setup.php');
|
|||
to add it there.
|
||||
*/
|
||||
|
||||
// Gets section to jump to another section
|
||||
// Gets section to jump to another section.
|
||||
$section = (string) get_parameter('section', 'general');
|
||||
|
||||
$buttons = [];
|
||||
|
||||
// Draws header
|
||||
// Draws header.
|
||||
$buttons['general'] = [
|
||||
'active' => false,
|
||||
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&section=general">'.html_print_image('images/gm_setup.png', true, ['title' => __('General')]).'</a>',
|
||||
|
@ -120,6 +135,7 @@ if (enterprise_installed()) {
|
|||
|
||||
switch ($section) {
|
||||
case 'general':
|
||||
default:
|
||||
$buttons['general']['active'] = true;
|
||||
$subpage = ' » '.__('General');
|
||||
break;
|
||||
|
@ -156,7 +172,7 @@ switch ($section) {
|
|||
break;
|
||||
}
|
||||
|
||||
// Header
|
||||
// Header.
|
||||
ui_print_page_header(__('Configuration').$subpage, '', false, $help_header, true, $buttons);
|
||||
|
||||
if (isset($config['error_config_update_config'])) {
|
||||
|
|
|
@ -44,16 +44,14 @@ if (is_ajax()) {
|
|||
// Fallback to local authentication
|
||||
$row = [];
|
||||
$row['name'] = __('Fallback to local authentication').ui_print_help_tip(__('Enable this option if you want to fallback to local authentication when remote (ldap etc...) authentication failed.'), true);
|
||||
$row['control'] = __('Yes').' '.html_print_radio_button('fallback_local_auth', 1, '', $config['fallback_local_auth'], true).' ';
|
||||
$row['control'] .= __('No').' '.html_print_radio_button('fallback_local_auth', 0, '', $config['fallback_local_auth'], true);
|
||||
$row['control'] = html_print_checkbox_toogle_switch('fallback_local_auth', 1, $config['fallback_local_auth'], true);
|
||||
$table->data['fallback_local_auth'] = $row;
|
||||
|
||||
if (enterprise_installed()) {
|
||||
// Autocreate remote users
|
||||
$row = [];
|
||||
$row['name'] = __('Autocreate remote users');
|
||||
$row['control'] = __('Yes').' '.html_print_radio_button_extended('autocreate_remote_users', 1, '', $config['autocreate_remote_users'], false, '', '', true).' ';
|
||||
$row['control'] .= __('No').' '.html_print_radio_button_extended('autocreate_remote_users', 0, '', $config['autocreate_remote_users'], false, '', '', true);
|
||||
$row['control'] = html_print_checkbox_toogle_switch_extended('autocreate_remote_users', 1, $config['autocreate_remote_users'], false, '', '', true).' ';
|
||||
$table->data['autocreate_remote_users'] = $row;
|
||||
|
||||
add_enterprise_auth_autocreate_profiles($table, $type_auth);
|
||||
|
@ -91,8 +89,7 @@ if (is_ajax()) {
|
|||
// Start TLS
|
||||
$row = [];
|
||||
$row['name'] = __('Start TLS');
|
||||
$row['control'] = __('Yes').' '.html_print_radio_button('ldap_start_tls', 1, '', $config['ldap_start_tls'], true).' ';
|
||||
$row['control'] .= __('No').' '.html_print_radio_button('ldap_start_tls', 0, '', $config['ldap_start_tls'], true);
|
||||
$row['control'] = html_print_checkbox_toogle_switch('ldap_start_tls', 1, $config['ldap_start_tls'], true);
|
||||
$table->data['ldap_start_tls'] = $row;
|
||||
|
||||
// Base DN
|
||||
|
@ -137,11 +134,8 @@ if (is_ajax()) {
|
|||
set_unless_defined($config['double_auth_enabled'], false);
|
||||
$row = [];
|
||||
$row['name'] = __('Double authentication').ui_print_help_tip(__('If this option is enabled, the users can use double authentication with their accounts'), true);
|
||||
$row['control'] = __('Yes').' ';
|
||||
$row['control'] .= html_print_radio_button('double_auth_enabled', 1, '', $config['double_auth_enabled'], true);
|
||||
$row['control'] .= ' ';
|
||||
$row['control'] .= __('No').' ';
|
||||
$row['control'] .= html_print_radio_button('double_auth_enabled', 0, '', $config['double_auth_enabled'], true);
|
||||
$row['control'] = html_print_input_hidden('double_auth_enabled', 0);
|
||||
$row['control'] .= html_print_checkbox_toogle_switch('double_auth_enabled', 1, $config['double_auth_enabled'], true);
|
||||
$table->data['double_auth_enabled'] = $row;
|
||||
|
||||
// Session timeout
|
||||
|
|
|
@ -48,8 +48,8 @@ $table_enable->style['name'] = 'font-weight: bold';
|
|||
// Enable eHorus
|
||||
$row = [];
|
||||
$row['name'] = __('Enable eHorus');
|
||||
$row['control'] = __('Yes').' '.html_print_radio_button('ehorus_enabled', 1, '', $config['ehorus_enabled'], true).' ';
|
||||
$row['control'] .= __('No').' '.html_print_radio_button('ehorus_enabled', 0, '', $config['ehorus_enabled'], true);
|
||||
$row['control'] = __('Enabled').' '.html_print_radio_button('ehorus_enabled', 1, '', $config['ehorus_enabled'], true).' ';
|
||||
$row['control'] .= __('Disabled').' '.html_print_radio_button('ehorus_enabled', 0, '', $config['ehorus_enabled'], true);
|
||||
$row['button'] = html_print_submit_button(__('Update'), 'update_button', false, 'class="sub upd"', true);
|
||||
$table_enable->data['ehorus_enabled'] = $row;
|
||||
|
||||
|
|
|
@ -82,16 +82,17 @@ $sources['sql'] = __('Database');
|
|||
$table->data[9][1] = html_print_select($sources, 'timesource', $config['timesource'], '', '', '', true);
|
||||
|
||||
$table->data[10][0] = __('Automatic check for updates');
|
||||
$table->data[10][1] = __('Yes').' '.html_print_radio_button('autoupdate', 1, '', $config['autoupdate'], true).' ';
|
||||
$table->data[10][1] .= __('No').' '.html_print_radio_button('autoupdate', 0, '', $config['autoupdate'], true);
|
||||
$table->data[10][1] = html_print_checkbox_toogle_switch('autoupdate', 1, $config['autoupdate'], true);
|
||||
|
||||
echo "<div id='dialog' title='".__('Enforce https Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;'>".__('If SSL is not properly configured you will lose access to ').get_product_name().__(' Console').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
$table->data[11][0] = __('Enforce https');
|
||||
$table->data[11][1] = __('Yes').' '.html_print_radio_button_extended('https', 1, '', $config['https'], false, "if (! confirm ('".__('If SSL is not properly configured you will lose access to %s Console. Do you want to continue?', get_product_name())."')) return false", '', true).' ';
|
||||
$table->data[11][1] .= __('No').' '.html_print_radio_button('https', 0, '', $config['https'], true);
|
||||
$table->data[11][1] = html_print_checkbox_toogle_switch_extended('https', 1, $config['https'], false, '', '', true);
|
||||
|
||||
$table->data[12][0] = __('Use cert of SSL');
|
||||
$table->data[12][1] = __('Yes').' '.html_print_radio_button_extended('use_cert', 1, '', $config['use_cert'], false, '', '', true).' ';
|
||||
$table->data[12][1] .= __('No').' '.html_print_radio_button('use_cert', 0, '', $config['use_cert'], true);
|
||||
$table->data[12][1] = html_print_checkbox_toogle_switch_extended('use_cert', 1, $config['use_cert'], false, '', '', true);
|
||||
|
||||
$table->rowstyle[13] = 'display: none;';
|
||||
$table->data[13][0] = __('Path of SSL Cert.').ui_print_help_tip(__('Path where you put your cert and name of this cert. Remember your cert only in .pem extension.'), true);
|
||||
|
@ -113,8 +114,7 @@ $table->data[16][0] = __('API password').ui_print_help_tip(__('Please be careful
|
|||
$table->data[16][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true);
|
||||
|
||||
$table->data[17][0] = __('Enable GIS features');
|
||||
$table->data[17][1] = __('Yes').' '.html_print_radio_button('activate_gis', 1, '', $config['activate_gis'], true).' ';
|
||||
$table->data[17][1] .= __('No').' '.html_print_radio_button('activate_gis', 0, '', $config['activate_gis'], true);
|
||||
$table->data[17][1] = html_print_checkbox_toogle_switch('activate_gis', 1, $config['activate_gis'], true);
|
||||
|
||||
$table->data[19][0] = __('Enable Netflow');
|
||||
$rbt_disabled = false;
|
||||
|
@ -123,8 +123,8 @@ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
|
|||
$table->data[19][0] .= ui_print_help_tip(__('Not supported in Windows systems'), true);
|
||||
}
|
||||
|
||||
$table->data[19][1] = __('Yes').' '.html_print_radio_button_extended('activate_netflow', 1, '', $config['activate_netflow'], $rbt_disabled, '', '', true).' ';
|
||||
$table->data[19][1] .= __('No').' '.html_print_radio_button_extended('activate_netflow', 0, '', $config['activate_netflow'], $rbt_disabled, '', '', true);
|
||||
$table->data[19][1] = html_print_checkbox_toogle_switch_extended('activate_netflow', 1, $config['activate_netflow'], $rbt_disabled, '', '', true);
|
||||
|
||||
|
||||
$zone_name = [
|
||||
'Africa' => __('Africa'),
|
||||
|
@ -202,18 +202,15 @@ $table->data[28][1] = html_print_input_text('public_url', $config['public_url'],
|
|||
|
||||
$table->data[29][0] = __('Referer security');
|
||||
$table->data[29][0] .= ui_print_help_tip(__("If enabled, actively checks if the user comes from %s's URL", get_product_name()), true);
|
||||
$table->data[29][1] = __('Yes').' '.html_print_radio_button('referer_security', 1, '', $config['referer_security'], true).' ';
|
||||
$table->data[29][1] .= __('No').' '.html_print_radio_button('referer_security', 0, '', $config['referer_security'], true);
|
||||
$table->data[29][1] = html_print_checkbox_toogle_switch('referer_security', 1, $config['referer_security'], true);
|
||||
|
||||
$table->data[30][0] = __('Event storm protection');
|
||||
$table->data[30][0] .= ui_print_help_tip(__('If set to yes no events or alerts will be generated, but agents will continue receiving data.'), true);
|
||||
$table->data[30][1] = __('Yes').' '.html_print_radio_button('event_storm_protection', 1, '', $config['event_storm_protection'], true).' ';
|
||||
$table->data[30][1] .= __('No').' '.html_print_radio_button('event_storm_protection', 0, '', $config['event_storm_protection'], true);
|
||||
$table->data[30][1] = html_print_checkbox_toogle_switch('event_storm_protection', 1, $config['event_storm_protection'], true);
|
||||
|
||||
|
||||
$table->data[31][0] = __('Command Snapshot').ui_print_help_tip(__('The string modules with several lines show as command output'), true);
|
||||
$table->data[31][1] = __('Yes').' '.html_print_radio_button('command_snapshot', 1, '', $config['command_snapshot'], true).' ';
|
||||
$table->data[31][1] .= __('No').' '.html_print_radio_button('command_snapshot', 0, '', $config['command_snapshot'], true);
|
||||
$table->data[31][1] = html_print_checkbox_toogle_switch('command_snapshot', 1, $config['command_snapshot'], true);
|
||||
|
||||
$table->data[32][0] = __('Server logs directory').ui_print_help_tip(__('Directory where the server logs are stored.'), true);
|
||||
$table->data[32][1] = html_print_input_text(
|
||||
|
@ -253,8 +250,7 @@ $table->data['tutorial_mode'][1] = html_print_select(
|
|||
|
||||
$config['past_planned_downtimes'] = isset($config['past_planned_downtimes']) ? $config['past_planned_downtimes'] : 1;
|
||||
$table->data[34][0] = __('Allow create planned downtimes in the past').ui_print_help_tip(__('The planned downtimes created in the past will affect the SLA reports'), true);
|
||||
$table->data[34][1] = __('Yes').' '.html_print_radio_button('past_planned_downtimes', 1, '', $config['past_planned_downtimes'], true).' ';
|
||||
$table->data[34][1] .= __('No').' '.html_print_radio_button('past_planned_downtimes', 0, '', $config['past_planned_downtimes'], true);
|
||||
$table->data[34][1] = html_print_checkbox_toogle_switch('past_planned_downtimes', 1, $config['past_planned_downtimes'], true);
|
||||
|
||||
$table->data[35][0] = __('Limit for bulk operations').ui_print_help_tip(__('Your PHP environment is set to 1000 max_input_vars. This parameter should have the same value or lower.', ini_get('max_input_vars')), true);
|
||||
$table->data[35][1] = html_print_input_text(
|
||||
|
@ -267,8 +263,7 @@ $table->data[35][1] = html_print_input_text(
|
|||
);
|
||||
|
||||
$table->data[36][0] = __('Include agents manually disabled');
|
||||
$table->data[36][1] = __('Yes').' '.html_print_radio_button('include_agents', 1, '', $config['include_agents'], true).' ';
|
||||
$table->data[36][1] .= __('No').' '.html_print_radio_button('include_agents', 0, '', $config['include_agents'], true);
|
||||
$table->data[36][1] = html_print_checkbox_toogle_switch('include_agents', 1, $config['include_agents'], true);
|
||||
|
||||
$table->data[37][0] = __('Audit log directory').ui_print_help_tip(__('Directory where audit log is stored.'), true);
|
||||
$table->data[37][1] = html_print_input_text('auditdir', io_safe_output($config['auditdir']), '', 30, 100, true);
|
||||
|
@ -277,6 +272,10 @@ $table->data[38][0] = __('Set alias as name by default in agent creation');
|
|||
$table->data[38][1] = __('Yes').' '.html_print_radio_button('alias_as_name', 1, '', $config['alias_as_name'], true).' ';
|
||||
$table->data[38][1] .= __('No').' '.html_print_radio_button('alias_as_name', 0, '', $config['alias_as_name'], true);
|
||||
|
||||
$table->data[39][0] = __('Unique IP').ui_print_help_tip(__('Set the primary IP address as the unique IP, preventing the same primary IP address from being used in more than one agent'), true);
|
||||
$table->data[39][1] = __('Yes').' '.html_print_radio_button('unique_ip', 1, '', $config['unique_ip'], true).' ';
|
||||
$table->data[39][1] .= __('No').' '.html_print_radio_button('unique_ip', 0, '', $config['unique_ip'], true);
|
||||
|
||||
echo '<form id="form_setup" method="post" action="index.php?sec=gsetup&sec2=godmode/setup/setup&section=general&pure='.$config['pure'].'">';
|
||||
|
||||
echo '<fieldset>';
|
||||
|
@ -339,16 +338,30 @@ $(document).ready (function () {
|
|||
$("#zone").attr("hidden", false);
|
||||
$("#timezone").attr("hidden", false);
|
||||
});
|
||||
|
||||
if ($("input[name=use_cert]").is(':checked')) {
|
||||
$('#setup_general-13').show();
|
||||
}
|
||||
|
||||
$("input[name=use_cert]").change(function () {
|
||||
if( $(this).is(":checked") ){
|
||||
var val = $(this).val();
|
||||
if (val == 1) {
|
||||
if( $(this).is(":checked") )
|
||||
$('#setup_general-13').show();
|
||||
}
|
||||
else
|
||||
$('#setup_general-13').hide();
|
||||
}
|
||||
|
||||
});
|
||||
$("input[name=https]").change(function (){
|
||||
if($("input[name=https]").prop('checked')) {
|
||||
$("#dialog").css({'display': 'inline', 'font-weight': 'bold'}).dialog({
|
||||
modal: true,
|
||||
buttons:{
|
||||
"<?php echo __('Close'); ?>": function(){
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
|
@ -368,5 +381,3 @@ function get_sounds()
|
|||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ $table_behaviour->data[$row][1] = html_print_select($values, 'vc_refr', $config[
|
|||
$row++;
|
||||
|
||||
$table_behaviour->data[$row][0] = __('Paginated module view');
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox(
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'paginate_module',
|
||||
1,
|
||||
$config['paginate_module'],
|
||||
|
@ -84,7 +84,7 @@ $table_behaviour->data[$row][1] = html_print_checkbox(
|
|||
$row++;
|
||||
|
||||
$table_behaviour->data[$row][0] = __('Display data of proc modules in other format');
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox(
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'render_proc',
|
||||
1,
|
||||
$config['render_proc'],
|
||||
|
@ -102,7 +102,7 @@ $row++;
|
|||
|
||||
// Daniel maya 02/06/2016 Display menu with click --INI
|
||||
$table_behaviour->data[$row][0] = __('Click to display lateral menus').ui_print_help_tip(__('When enabled, the lateral menus are shown when left clicking them, instead of hovering over them'), true);
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox(
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'click_display',
|
||||
1,
|
||||
$config['click_display'],
|
||||
|
@ -121,7 +121,7 @@ if (enterprise_installed()) {
|
|||
}
|
||||
|
||||
$table_behaviour->data[$row][0] = __('Classic menu mode').ui_print_help_tip(__('Text menu options always visible, don\'t hide'), true);
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox(
|
||||
$table_behaviour->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'classic_menu',
|
||||
1,
|
||||
$config['classic_menu'],
|
||||
|
@ -491,7 +491,7 @@ if (enterprise_installed()) {
|
|||
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Disable logo in graphs');
|
||||
$table_styles->data[$row][1] = html_print_checkbox(
|
||||
$table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'fixed_graph',
|
||||
1,
|
||||
$config['fixed_graph'],
|
||||
|
@ -507,7 +507,7 @@ if (enterprise_installed()) {
|
|||
*/
|
||||
|
||||
$table_styles->data[$row][0] = __('Disable helps');
|
||||
$table_styles->data[$row][1] = html_print_checkbox(
|
||||
$table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'disable_help',
|
||||
1,
|
||||
$config['disable_help'],
|
||||
|
@ -516,7 +516,7 @@ $table_styles->data[$row][1] = html_print_checkbox(
|
|||
$row++;
|
||||
|
||||
$table_styles->data[$row][0] = __('Fixed header');
|
||||
$table_styles->data[$row][1] = html_print_checkbox(
|
||||
$table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'fixed_header',
|
||||
1,
|
||||
$config['fixed_header'],
|
||||
|
@ -525,7 +525,7 @@ $table_styles->data[$row][1] = html_print_checkbox(
|
|||
$row++;
|
||||
|
||||
$table_styles->data[$row][0] = __('Fixed menu');
|
||||
$table_styles->data[$row][1] = html_print_checkbox(
|
||||
$table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'fixed_menu',
|
||||
1,
|
||||
$config['fixed_menu'],
|
||||
|
@ -535,7 +535,7 @@ $row++;
|
|||
|
||||
// For 5.1 Autohidden menu feature
|
||||
$table_styles->data['autohidden'][0] = __('Autohidden menu');
|
||||
$table_styles->data['autohidden'][1] = html_print_checkbox(
|
||||
$table_styles->data['autohidden'][1] = html_print_checkbox_toogle_switch(
|
||||
'autohidden_menu',
|
||||
1,
|
||||
$config['autohidden_menu'],
|
||||
|
@ -543,13 +543,14 @@ $table_styles->data['autohidden'][1] = html_print_checkbox(
|
|||
);
|
||||
|
||||
$table_styles->data[$row][0] = __('Visual effects and animation');
|
||||
$table_styles->data[$row][1] = html_print_checkbox(
|
||||
$table_styles->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'visual_animation',
|
||||
1,
|
||||
$config['visual_animation'],
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
echo '<fieldset>';
|
||||
echo '<legend>'.__('Style configuration').'</legend>';
|
||||
html_print_table($table_styles);
|
||||
|
@ -566,7 +567,7 @@ $table_gis->size[0] = '50%';
|
|||
$table_gis->data = [];
|
||||
|
||||
$table_gis->data[$row][0] = __('GIS Labels').ui_print_help_tip(__('This enabling this, you get a label with agent name in GIS maps. If you have lots of agents in the map, will be unreadable. Disabled by default.'), true);
|
||||
$table_gis->data[$row][1] = html_print_checkbox(
|
||||
$table_gis->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'gis_label',
|
||||
1,
|
||||
$config['gis_label'],
|
||||
|
@ -679,7 +680,7 @@ $table_font->data[$row][1] = html_print_input_text(
|
|||
$row++;
|
||||
|
||||
$table_font->data[$row][0] = __('Show unit along with value in reports').ui_print_help_tip(__('This enabling this, max, min and avg values will be shown with units.'), true);
|
||||
$table_font->data[$row][1] = html_print_checkbox(
|
||||
$table_font->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'simple_module_value',
|
||||
1,
|
||||
$config['simple_module_value'],
|
||||
|
@ -777,7 +778,7 @@ $table_chars->data[$row][1] = html_print_input_text(
|
|||
$row++;
|
||||
|
||||
$table_chars->data[$row][0] = __('Use round corners');
|
||||
$table_chars->data[$row][1] = html_print_checkbox(
|
||||
$table_chars->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'round_corner',
|
||||
1,
|
||||
$config['round_corner'],
|
||||
|
@ -946,7 +947,7 @@ $table_other->data[$row][0] = __('Show report info with description').ui_print_h
|
|||
__('Custom report description info. It will be applied to all reports and templates by default.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[$row][1] = html_print_checkbox(
|
||||
$table_other->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'custom_report_info',
|
||||
1,
|
||||
$config['custom_report_info'],
|
||||
|
@ -966,6 +967,7 @@ $table_other->data[$row][1] = html_print_checkbox(
|
|||
$config['custom_report_front'],
|
||||
true
|
||||
);
|
||||
|
||||
$row++;
|
||||
// ----------------------------------------------------------------------
|
||||
$dirItems = scandir($config['homedir'].'/images/custom_logo');
|
||||
|
@ -1059,7 +1061,7 @@ $table_other->data['custom_report_front-footer'][1] = html_print_textarea(
|
|||
|
||||
|
||||
$table_other->data[$row][0] = __('Show QR Code icon in the header');
|
||||
$table_other->data[$row][1] = html_print_checkbox(
|
||||
$table_other->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'show_qr_code_header',
|
||||
1,
|
||||
$config['show_qr_code_header'],
|
||||
|
@ -1097,7 +1099,7 @@ $table_other->data[$row][0] .= ui_print_help_tip(
|
|||
__('Show the group name instead the group icon.'),
|
||||
true
|
||||
);
|
||||
$table_other->data[$row][1] = html_print_checkbox(
|
||||
$table_other->data[$row][1] = html_print_checkbox_toogle_switch(
|
||||
'show_group_name',
|
||||
1,
|
||||
$config['show_group_name'],
|
||||
|
@ -1440,6 +1442,7 @@ $(document).ready (function () {
|
|||
.prop('checked');
|
||||
display_custom_report_front(custom_report,$(this).parent().parent().parent().parent().attr('id'));
|
||||
});
|
||||
$(".databox.filters").css('margin-bottom','-10px');
|
||||
});
|
||||
|
||||
// Change the favicon preview when is changed
|
||||
|
|
|
@ -751,7 +751,7 @@ if ($create_alert || $update_alert) {
|
|||
|
||||
// echo '<tr><td class="datos"><b>' . __('Alert filters') . ui_print_help_icon("snmp_alert_filters", true) . '</b></td></tr>';
|
||||
// OID
|
||||
echo '<tr id="tr-oid">'.'<td class="datos2">'.__('Enterprise String').'</td>'.'<td class="datos2">';
|
||||
echo '<tr id="tr-oid">'.'<td class="datos2">'.__('Enterprise String').ui_print_help_tip(__('Matches substrings. End the string with $ for exact matches.'), true).'</td>'.'<td class="datos2">';
|
||||
html_print_input_text('oid', $oid, '', 50, 255);
|
||||
echo '</td></tr>';
|
||||
|
||||
|
|
|
@ -140,8 +140,8 @@ if ($enterprise == ENTERPRISE_NOT_HOOK) {
|
|||
?>
|
||||
|
||||
<script>
|
||||
var open = "<?php echo $open; ?>";
|
||||
if(open){
|
||||
var isopen = "<?php echo $open; ?>";
|
||||
if(isopen){
|
||||
$(document).ready(function() {
|
||||
$('body').append( "<div id='opacidad' style='position:fixed;background:black;opacity:0.6;z-index:1'></div>" );
|
||||
jQuery.post ("ajax.php",
|
||||
|
@ -150,6 +150,7 @@ if(open){
|
|||
"message":"infomodal"},
|
||||
function (data, status) {
|
||||
$("#alert_messages").hide ()
|
||||
.css ("opacity", 1)
|
||||
.empty ()
|
||||
.append (data)
|
||||
.show ();
|
||||
|
|
|
@ -105,9 +105,9 @@ if ($get_response_params) {
|
|||
}
|
||||
|
||||
if ($get_response_target) {
|
||||
$response_id = get_parameter('response_id');
|
||||
$event_id = get_parameter('event_id');
|
||||
$server_id = get_parameter('server_id', 0);
|
||||
$response_id = (int) get_parameter('response_id');
|
||||
$event_id = (int) get_parameter('event_id');
|
||||
$server_id = (int) get_parameter('server_id');
|
||||
|
||||
$event_response = db_get_row('tevent_response', 'id', $response_id);
|
||||
|
||||
|
@ -116,7 +116,6 @@ if ($get_response_target) {
|
|||
}
|
||||
|
||||
echo events_get_response_target($event_id, $response_id, $server_id);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -198,12 +198,7 @@ if ($get_metaconsole_hash_data) {
|
|||
$console_password = $auth_serialized['console_password'];
|
||||
}
|
||||
|
||||
$pwd = $auth_token;
|
||||
// Create HASH login info
|
||||
$user = str_rot13($config['id_user']);
|
||||
$hashdata = $user.$pwd;
|
||||
$hashdata = md5($hashdata);
|
||||
$url_hash = "&loginhash=auto&loginhash_data=$hashdata&loginhash_user=$user";
|
||||
$url_hash = metaconsole_get_servers_url_hash($server);
|
||||
|
||||
echo $url_hash;
|
||||
return;
|
||||
|
|
|
@ -88,16 +88,13 @@ if (file_exists('languages/'.$user_language.'.mo')) {
|
|||
$params['menu'] = false;
|
||||
|
||||
if ((!isset($params['width']) || ($params['width'] <= 0))) {
|
||||
$params['width'] = 1048;
|
||||
$params['width'] = 650;
|
||||
}
|
||||
|
||||
$params_combined = json_decode($_REQUEST['data_combined'], true);
|
||||
$module_list = json_decode($_REQUEST['data_module_list'], true);
|
||||
$type_graph_pdf = $_REQUEST['type_graph_pdf'];
|
||||
|
||||
$aux_font_size = $config['font_size'];
|
||||
$config['font_size'] = ($config['font_size'] + 3);
|
||||
|
||||
echo '<div>';
|
||||
switch ($type_graph_pdf) {
|
||||
case 'combined':
|
||||
|
@ -216,7 +213,6 @@ if (file_exists('languages/'.$user_language.'.mo')) {
|
|||
|
||||
echo '</div>';
|
||||
|
||||
$config['font_size'] = $aux_font_size;
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC190208';
|
||||
$build_version = 'PC190222';
|
||||
$pandora_version = 'v7.0NG.731';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
|
|
@ -949,11 +949,11 @@ function agents_get_group_agents(
|
|||
|
||||
$filter = [];
|
||||
|
||||
// check available groups for target user only if asking for 'All' group
|
||||
// Check available groups for target user only if asking for 'All' group.
|
||||
if (!$noACL && $id_group == 0) {
|
||||
$id_group = $id_group == 0 ? array_keys(users_get_groups(false, 'AR', false)) : groups_safe_acl($config['id_user'], $id_group, 'AR');
|
||||
$id_group = ($id_group == 0) ? array_keys(users_get_groups(false, 'AR', false)) : groups_safe_acl($config['id_user'], $id_group, 'AR');
|
||||
if (empty($id_group)) {
|
||||
// An empty array means the user doesn't have access
|
||||
// An empty array means the user doesn't have access.
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
@ -970,7 +970,7 @@ function agents_get_group_agents(
|
|||
$id_group = groups_get_id_recursive($id_group, true);
|
||||
}
|
||||
|
||||
// check available groups for target user only if asking for 'All' group
|
||||
// Check available groups for target user only if asking for 'All' group.
|
||||
if (!$noACL && $id_group == 0) {
|
||||
$id_group = array_keys(
|
||||
users_get_groups(false, 'AR', true, false, (array) $id_group)
|
||||
|
@ -978,7 +978,7 @@ function agents_get_group_agents(
|
|||
}
|
||||
}
|
||||
|
||||
// Search for primary and secondary groups
|
||||
// Search for primary and secondary groups.
|
||||
if (!empty($id_group)) {
|
||||
$filter[] = '('.db_format_array_where_clause_sql(
|
||||
[
|
||||
|
@ -990,7 +990,7 @@ function agents_get_group_agents(
|
|||
}
|
||||
|
||||
if ($search === true) {
|
||||
// No added search. Show both disabled and non-disabled
|
||||
// No added search. Show both disabled and non-disabled.
|
||||
} else if (is_array($search)) {
|
||||
if (!$search['all_agents']) {
|
||||
$filter['disabled'] = 0;
|
||||
|
@ -3102,7 +3102,7 @@ function select_agents_for_module_group(
|
|||
'AND',
|
||||
'tagente_modulo',
|
||||
true,
|
||||
[],
|
||||
$filter['tags'],
|
||||
false
|
||||
);
|
||||
$sql_tags_inner = 'INNER JOIN ttag_module
|
||||
|
|
|
@ -1700,6 +1700,43 @@ function alerts_get_effective_alert_actions($id_agent_module)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate alerts for the given module.
|
||||
*
|
||||
* @param int agent_module_id ID of the module
|
||||
*/
|
||||
function alerts_validate_alert_module($agent_module_id)
|
||||
{
|
||||
db_process_sql(
|
||||
sprintf(
|
||||
'UPDATE talert_template_modules
|
||||
SET times_fired=0, internal_counter=0
|
||||
WHERE id_agent_module = %d',
|
||||
$agent_module_id
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate alerts for the given agent.
|
||||
*
|
||||
* @param int agent_id ID of the agent
|
||||
*/
|
||||
function alerts_validate_alert_agent($agent_id)
|
||||
{
|
||||
db_process_sql(
|
||||
sprintf(
|
||||
'UPDATE talert_template_modules tm
|
||||
INNER JOIN tagente_modulo am ON tm.id_agent_module = am.id_agente_modulo
|
||||
SET tm.times_fired=0, tm.internal_counter=0
|
||||
WHERE am.id_agente = %d',
|
||||
$agent_id
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validates an alert id or an array of alert id's.
|
||||
*
|
||||
|
|
|
@ -363,23 +363,18 @@ function api_get_test_event_replication_db()
|
|||
// -------------------------DEFINED OPERATIONS FUNCTIONS-----------------
|
||||
function api_get_groups($thrash1, $thrash2, $other, $returnType, $user_in_db)
|
||||
{
|
||||
if (defined('METACONSOLE')) {
|
||||
return;
|
||||
$returnAllGroup = true;
|
||||
$returnAllColumns = false;
|
||||
|
||||
if (isset($other['data'][1])) {
|
||||
$returnAllGroup = ( $other['data'][1] == '1' ? true : false);
|
||||
}
|
||||
|
||||
if ($other['type'] == 'string') {
|
||||
if ($other['data'] != '') {
|
||||
returnError('error_parameter', 'Error in the parameters.');
|
||||
return;
|
||||
} else {
|
||||
// Default values
|
||||
$separator = ';';
|
||||
}
|
||||
} else if ($other['type'] == 'array') {
|
||||
$separator = $other['data'][0];
|
||||
if (isset($other['data'][2])) {
|
||||
$returnAllColumns = ( $other['data'][2] == '1' ? true : false);
|
||||
}
|
||||
|
||||
$groups = users_get_groups($user_in_db, 'IR');
|
||||
$groups = users_get_groups($user_in_db, 'IR', $returnAllGroup, $returnAllColumns);
|
||||
|
||||
$data_groups = [];
|
||||
foreach ($groups as $id => $group) {
|
||||
|
@ -389,6 +384,13 @@ function api_get_groups($thrash1, $thrash2, $other, $returnType, $user_in_db)
|
|||
];
|
||||
}
|
||||
|
||||
if (!isset($other['data'][0])) {
|
||||
$separator = ';';
|
||||
// by default
|
||||
} else {
|
||||
$separator = $other['data'][0];
|
||||
}
|
||||
|
||||
$data['type'] = 'array';
|
||||
$data['data'] = $data_groups;
|
||||
|
||||
|
@ -472,11 +474,12 @@ function api_get_module_last_value($idAgentModule, $trash1, $other=';', $returnT
|
|||
DB column mapping table used by tree_agents (and get module_properties)
|
||||
*/
|
||||
|
||||
// agent related field mappings (output field => column designation for 'tagente')
|
||||
/*
|
||||
* Agent related field mappings (output field => column designation for 'tagente').
|
||||
* agent_id is not in this list (because it is mandatory).
|
||||
* agent_id_group is not in this list.
|
||||
*/
|
||||
$agent_field_column_mapping = [
|
||||
/*
|
||||
agent_id is not in this list (because it is mandatory) */
|
||||
// agent_id_group is not in this list
|
||||
'agent_name' => 'nombre as agent_name',
|
||||
'agent_direction' => 'direccion as agent_direction',
|
||||
'agent_comentary' => 'comentarios as agent_comentary',
|
||||
|
@ -496,8 +499,8 @@ $agent_field_column_mapping = [
|
|||
];
|
||||
|
||||
// module related field mappings 1/2 (output field => column for 'tagente_modulo')
|
||||
// module_id_agent_modulo is not in this list
|
||||
$module_field_column_mampping = [
|
||||
// module_id_agent_modulo is not in this list
|
||||
'module_id_agent' => 'id_agente as module_id_agent',
|
||||
'module_id_module_type' => 'id_tipo_modulo as module_id_module_type',
|
||||
'module_description' => 'descripcion as module_description',
|
||||
|
@ -541,8 +544,8 @@ $module_field_column_mampping = [
|
|||
];
|
||||
|
||||
// module related field mappings 2/2 (output field => column for 'tagente_estado')
|
||||
// module_id_agent_modulo is not in this list
|
||||
$estado_fields_to_columns_mapping = [
|
||||
// module_id_agent_modulo is not in this list
|
||||
'module_id_agent_state' => 'id_agente_estado as module_id_agent_state',
|
||||
'module_data' => 'datos as module_data',
|
||||
'module_timestamp' => 'timestamp as module_timestamp',
|
||||
|
@ -6172,17 +6175,29 @@ function api_set_planned_downtimes_deleted($id, $thrash1, $thrash2, $returnType)
|
|||
|
||||
/**
|
||||
* Create a new planned downtime.
|
||||
* e.g.: api.php?op=set&op2=planned_downtimes_created&id=pepito&other=testing|08-22-2015|08-31-2015|0|1|1|1|1|1|1|1|17:06:00|19:06:00|1|31|quiet|periodically|weekly&other_mode=url_encode_separator_|
|
||||
*
|
||||
* @param $id name of planned downtime.
|
||||
* @param $thrash1 Don't use.
|
||||
* @param array $other it's array, $other as param is <description>;<date_from>;<date_to>;<id_group>;<monday>;
|
||||
* <tuesday>;<wednesday>;<thursday>;<friday>;<saturday>;<sunday>;<periodically_time_from>;<periodically_time_to>;
|
||||
* <periodically_day_from>;<periodically_day_to>;<type_downtime>;<type_execution>;<type_periodicity>; in this order
|
||||
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>)
|
||||
* example:
|
||||
*
|
||||
* api.php?op=set&op2=planned_downtimes_created&id=pepito&other=testing|08-22-2015|08-31-2015|0|1|1|1|1|1|1|1|17:06:00|19:06:00|1|31|quiet|periodically|weekly&other_mode=url_encode_separator_|
|
||||
*
|
||||
* @param array $other Contains the following elements (in order):
|
||||
* <description>
|
||||
* <date_from>
|
||||
* <date_to>
|
||||
* <id_group>
|
||||
* <monday>
|
||||
* <tuesday>
|
||||
* <wednesday>
|
||||
* <thursday>
|
||||
* <friday>
|
||||
* <saturday>
|
||||
* <sunday>
|
||||
* <periodically_time_from>
|
||||
* <periodically_time_to>
|
||||
* <periodically_day_from>
|
||||
* <periodically_day_to>
|
||||
* <type_downtime>
|
||||
* <type_execution>
|
||||
* <type_periodicity>
|
||||
* @param $thrash3 Don't use.
|
||||
*/
|
||||
|
||||
|
@ -6246,20 +6261,16 @@ function api_set_planned_downtimes_created($id, $thrash1, $other, $thrash3)
|
|||
|
||||
/**
|
||||
* Add new items to planned Downtime.
|
||||
* e.g.: api.php?op=set&op2=planned_downtimes_additem&id=123&other=1;2;3;4|Status;Unkown_modules&other_mode=url_encode_separator_|
|
||||
*
|
||||
* @param $id id of planned downtime.
|
||||
* @param $thrash1 Don't use.
|
||||
* @param array $other it's array, $other as param is <id_agent1;id_agent2;id_agent3;....id_agentn;>;
|
||||
* <name_module1;name_module2;name_module3;......name_modulen;> in this order
|
||||
* and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_<separator>)
|
||||
* example:
|
||||
*
|
||||
* api.php?op=set&op2=planned_downtimes_additem&id=123&other=1;2;3;4|Status;Unkown_modules&other_mode=url_encode_separator_|
|
||||
*
|
||||
* @param array $other
|
||||
* The first index contains a list of agent Ids.
|
||||
* The second index contains a list of module names.
|
||||
* The list separator is the character ';'.
|
||||
* @param $thrash3 Don't use.
|
||||
*/
|
||||
|
||||
|
||||
function api_set_planned_downtimes_additem($id, $thrash1, $other, $thrash3)
|
||||
{
|
||||
if (defined('METACONSOLE')) {
|
||||
|
|
|
@ -228,45 +228,35 @@ function events_get_events_grouped(
|
|||
db_process_sql('SET group_concat_max_len = 9999999');
|
||||
$event_lj = events_get_secondary_groups_left_join($table);
|
||||
if ($total) {
|
||||
$sql = 'SELECT COUNT(*) FROM (SELECT *
|
||||
FROM '.$table.' te '.$event_lj.'
|
||||
WHERE 1=1 '.$sql_post.'
|
||||
$sql = "SELECT COUNT(*) FROM (SELECT id_evento
|
||||
FROM $table te $event_lj
|
||||
WHERE 1=1 ".$sql_post.'
|
||||
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra.') AS t';
|
||||
} else {
|
||||
$sql = "SELECT *, MAX(id_evento) AS id_evento,
|
||||
GROUP_CONCAT(DISTINCT user_comment SEPARATOR '<br>') AS user_comment,
|
||||
GROUP_CONCAT(DISTINCT id_evento SEPARATOR ',') AS similar_ids,
|
||||
COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_rep,
|
||||
COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep,
|
||||
MIN(utimestamp) AS timestamp_rep_min,
|
||||
(SELECT owner_user FROM ".$table.' WHERE id_evento = MAX(te.id_evento)) owner_user,
|
||||
(SELECT id_usuario FROM '.$table.' WHERE id_evento = MAX(te.id_evento)) id_usuario,
|
||||
(SELECT id_agente FROM '.$table.' WHERE id_evento = MAX(te.id_evento)) id_agente,
|
||||
(SELECT criticity FROM '.$table.' WHERE id_evento = MAX(te.id_evento)) AS criticity,
|
||||
(SELECT ack_utimestamp FROM '.$table.' WHERE id_evento = MAX(te.id_evento)) AS ack_utimestamp,
|
||||
(SELECT owner_user FROM $table WHERE id_evento = MAX(te.id_evento)) owner_user,
|
||||
(SELECT id_usuario FROM $table WHERE id_evento = MAX(te.id_evento)) id_usuario,
|
||||
(SELECT id_agente FROM $table WHERE id_evento = MAX(te.id_evento)) id_agente,
|
||||
(SELECT criticity FROM $table WHERE id_evento = MAX(te.id_evento)) AS criticity,
|
||||
(SELECT ack_utimestamp FROM $table WHERE id_evento = MAX(te.id_evento)) AS ack_utimestamp,
|
||||
(SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = te.id_agentmodule) AS module_name
|
||||
FROM '.$table.' te '.$event_lj.'
|
||||
WHERE 1=1 '.$sql_post.'
|
||||
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra;
|
||||
FROM $table te $event_lj
|
||||
WHERE 1=1 ".$sql_post.'
|
||||
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra;
|
||||
$sql .= ' '.events_get_sql_order($sort_field, $order, 2);
|
||||
$sql .= ' LIMIT '.$offset.','.$pagination;
|
||||
}
|
||||
|
||||
// Extract the events by filter (or not) from db.
|
||||
// Extract the events by filter (or not) from db
|
||||
$events = db_get_all_rows_sql($sql, $history_db);
|
||||
|
||||
if ($total) {
|
||||
return reset($events[0]);
|
||||
} else {
|
||||
// Override the column 'user_comment' with the column 'user_comments' when oracle.
|
||||
if (!empty($events) && $config['dbtype'] == 'oracle') {
|
||||
array_walk(
|
||||
$events,
|
||||
function (&$value, $key) {
|
||||
set_if_defined($value['user_comment'], $value['user_comments']);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
}
|
||||
|
@ -5350,6 +5340,10 @@ function events_get_sql_order($sort_field='timestamp', $sort='DESC', $group_rep=
|
|||
*/
|
||||
function events_get_secondary_groups_left_join($table)
|
||||
{
|
||||
if (users_is_admin()) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($table == 'tevento') {
|
||||
return 'LEFT JOIN tagent_secondary_group tasg ON te.id_agente = tasg.id_agent';
|
||||
}
|
||||
|
|
|
@ -126,6 +126,12 @@ if (isset($config['homedir_filemanager'])) {
|
|||
$homedir_filemanager = $config['homedir'];
|
||||
}
|
||||
|
||||
$sec2 = get_parameter('sec2');
|
||||
if ($sec2 == 'enterprise/godmode/agentes/collections') {
|
||||
$homedir_filemanager .= '/attachment/collection/';
|
||||
}
|
||||
|
||||
|
||||
$upload_file_or_zip = (bool) get_parameter('upload_file_or_zip');
|
||||
|
||||
if ($upload_file_or_zip) {
|
||||
|
@ -499,12 +505,6 @@ function filemanager_file_explorer(
|
|||
$homedir_filemanager = $config['homedir'];
|
||||
}
|
||||
|
||||
unset($config['homedir_filemanager']);
|
||||
config_update_value(
|
||||
'homedir_filemanager',
|
||||
$homedir_filemanager
|
||||
);
|
||||
|
||||
$hack_metaconsole = '';
|
||||
if (defined('METACONSOLE')) {
|
||||
$hack_metaconsole = '../../';
|
||||
|
@ -938,4 +938,3 @@ function filemanager_list_dir($dirpath)
|
|||
|
||||
return array_merge($dirs, $files);
|
||||
}
|
||||
|
||||
|
|
|
@ -245,7 +245,9 @@ function grafico_modulo_sparse_data(
|
|||
}
|
||||
}
|
||||
|
||||
if ($array_data === false || (!$params['graph_combined'] && !isset($array_data['sum1']['data'][0][1]))) {
|
||||
if ($array_data === false || (!$params['graph_combined']
|
||||
&& !isset($array_data['sum1']['data'][0][1]) && !$params['baseline'])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -4918,21 +4920,19 @@ function get_baseline_data($agent_module_id, $date_array, $data_module_graph, $p
|
|||
$period = $date_array['period'];
|
||||
$date = $date_array['final_date'];
|
||||
$array_data = [];
|
||||
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
$date_array = [];
|
||||
$date_array['period'] = $period;
|
||||
$date_array['final_date'] = ($date - $period * $i);
|
||||
$date_array['start_date'] = ($date - $period * ($i + 1));
|
||||
|
||||
$data = grafico_modulo_sparse_data(
|
||||
$date_array['final_date'] = ($date - ($period * $i));
|
||||
$date_array['start_date'] = ($date - ($period * ($i + 1)));
|
||||
$array_data[] = grafico_modulo_sparse_data(
|
||||
$agent_module_id,
|
||||
$date_array,
|
||||
$data_module_graph,
|
||||
$params,
|
||||
$i
|
||||
);
|
||||
|
||||
$array_data[] = $data;
|
||||
}
|
||||
|
||||
$result = [];
|
||||
|
|
|
@ -2306,6 +2306,89 @@ function html_print_checkbox($name, $value, $checked=false, $return=false, $disa
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render a checkbox button input toogle switch type. Extended version, use html_print_checkbox_toogle_switch() to simplify.
|
||||
*
|
||||
* @param string Input name.
|
||||
* @param string Input value.
|
||||
* @param string Set the button to be marked (optional, unmarked by default).
|
||||
* @param bool Disable the button (optional, button enabled by default).
|
||||
* @param string Script to execute when onClick event is triggered (optional).
|
||||
* @param string Optional HTML attributes. It's a free string which will be
|
||||
* @param bool Whether to return an output string or echo now (optional, echo by default).
|
||||
*
|
||||
* @return string HTML code if return parameter is true.
|
||||
*/
|
||||
|
||||
|
||||
function html_print_checkbox_toogle_switch_extended($name, $value, $checked, $disabled, $script, $attributes, $return=false, $id='')
|
||||
{
|
||||
static $idcounter = [];
|
||||
|
||||
// If duplicate names exist, it will start numbering. Otherwise it won't
|
||||
if (isset($idcounter[$name])) {
|
||||
$idcounter[$name]++;
|
||||
} else {
|
||||
$idcounter[$name] = 0;
|
||||
}
|
||||
|
||||
$id_aux = preg_replace('/[^a-z0-9\:\;\-\_]/i', '', $name.($idcounter[$name] ? $idcounter[$name] : ''));
|
||||
|
||||
$output = '<label class="toogle_switch"><input name="'.$name.'" type="checkbox" value="'.$value.'" '.($checked ? 'checked="checked"' : '');
|
||||
if ($id == '') {
|
||||
$output .= ' id="checkbox-'.$id_aux.'"';
|
||||
} else {
|
||||
$output .= ' '.$id.'"';
|
||||
}
|
||||
|
||||
if ($script != '') {
|
||||
$output .= ' onclick="'.$script.'"';
|
||||
}
|
||||
|
||||
if ($disabled) {
|
||||
$output .= ' disabled="disabled"';
|
||||
}
|
||||
|
||||
$output .= ' '.$attributes;
|
||||
$output .= ' /><span class="slider"></span></label>';
|
||||
$output .= "\n";
|
||||
|
||||
if ($return === false) {
|
||||
echo $output;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render a checkbox button input toogle switch type.
|
||||
*
|
||||
* @param string Input name.
|
||||
* @param string Input value.
|
||||
* @param string Set the button to be marked (optional, unmarked by default).
|
||||
* @param bool Whether to return an output string or echo now (optional, echo by default).
|
||||
* @param boolean $disabled Disable the button (optional, button enabled by default).
|
||||
*
|
||||
* @return string HTML code if return parameter is true.
|
||||
*/
|
||||
|
||||
|
||||
function html_print_checkbox_toogle_switch($name, $value, $checked=false, $return=false, $disabled=false, $script='', $disabled_hidden=false)
|
||||
{
|
||||
$output = html_print_checkbox_toogle_switch_extended($name, $value, (bool) $checked, $disabled, $script, '', true);
|
||||
if (!$disabled_hidden) {
|
||||
$output .= html_print_input_hidden($name.'_sent', 1, true);
|
||||
}
|
||||
|
||||
if ($return === false) {
|
||||
echo $output;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prints an image HTML element.
|
||||
*
|
||||
|
|
|
@ -541,7 +541,7 @@ function io_input_password($password)
|
|||
global $config;
|
||||
|
||||
enterprise_include_once('include/functions_crypto.php');
|
||||
$ciphertext = enterprise_hook('openssl_encrypt_decrypt', ['encrypt', $password]);
|
||||
$ciphertext = enterprise_hook('openssl_encrypt_decrypt', ['encrypt', io_safe_output($password)]);
|
||||
if ($ciphertext === ENTERPRISE_NOT_HOOK) {
|
||||
return $password;
|
||||
}
|
||||
|
@ -563,7 +563,7 @@ function io_output_password($password)
|
|||
global $config;
|
||||
|
||||
enterprise_include_once('include/functions_crypto.php');
|
||||
$plaintext = enterprise_hook('openssl_encrypt_decrypt', ['decrypt', $password]);
|
||||
$plaintext = enterprise_hook('openssl_encrypt_decrypt', ['decrypt', io_safe_output($password)]);
|
||||
if ($plaintext === ENTERPRISE_NOT_HOOK) {
|
||||
return $password;
|
||||
}
|
||||
|
|
|
@ -372,7 +372,7 @@ function menu_print_menu(&$menu)
|
|||
}
|
||||
|
||||
// Print out the first level
|
||||
$output .= '<li title="'.ucwords(str_replace(['oper-', 'god-'], '', $id)).'" class="'.implode(' ', $classes).' '.$seleccionado.'" id="icon_'.$id.'">';
|
||||
$output .= '<li title="'.$main['text'].'" class="'.implode(' ', $classes).' '.$seleccionado.'" id="icon_'.$id.'">';
|
||||
// onclick="location.href=\'index.php?sec='.$mainsec.'&sec2='.$main["sec2"].($main["refr"] ? '&refr='.$main["refr"] : '').'\'">';
|
||||
$length = strlen(__($main['text']));
|
||||
$padding_top = ( $length >= 18) ? 6 : 12;
|
||||
|
|
|
@ -329,6 +329,11 @@ function modules_change_disabled($id_agent_module, $new_value=1)
|
|||
continue;
|
||||
}
|
||||
|
||||
// Validate alerts for disabled modules.
|
||||
if ($new_value == 1) {
|
||||
alerts_validate_alert_module($id_module);
|
||||
}
|
||||
|
||||
$id_agent_changed[] = modules_get_agentmodule_agent($id_module);
|
||||
$id_agent_module_changed[] = $id_module;
|
||||
}
|
||||
|
|
|
@ -725,8 +725,6 @@ function planned_downtimes_created($values)
|
|||
$check_group = (bool) db_get_value('id_grupo', 'tgrupo', 'id_grupo', $values['id_group']);
|
||||
$check = (bool) db_get_value('name', 'tplanned_downtime', 'name', $values['name']);
|
||||
|
||||
$datetime_from = strtotime($values['once_date_from'].' '.$values['once_time_from']);
|
||||
$datetime_to = strtotime($values['once_date_to'].' '.$values['once_time_to']);
|
||||
$now = time();
|
||||
$result = false;
|
||||
|
||||
|
@ -735,16 +733,16 @@ function planned_downtimes_created($values)
|
|||
'return' => false,
|
||||
'message' => __('Not created. Error inserting data. Start time must be higher than the current time'),
|
||||
];
|
||||
} else if ($values['type_execution'] == 'once' && !$config['past_planned_downtimes'] && $values['date_to'] <= $now) {
|
||||
return [
|
||||
'return' => false,
|
||||
'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the current time'),
|
||||
];
|
||||
} else if ($values['type_execution'] == 'once' && $values['date_from'] >= $values['date_to']) {
|
||||
return [
|
||||
'return' => false,
|
||||
'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the start date'),
|
||||
];
|
||||
} else if ($values['type_execution'] == 'once' && $values['date_to'] <= $now) {
|
||||
return [
|
||||
'return' => false,
|
||||
'message' => __('Not created. Error inserting data').'. '.__('The end date must be higher than the current time'),
|
||||
];
|
||||
} else if ($values['type_execution'] == 'periodically'
|
||||
&& (($values['type_periodicity'] == 'weekly' && $values['periodically_time_from'] >= $values['periodically_time_to'])
|
||||
|| ($values['type_periodicity'] == 'monthly' && $values['periodically_day_from'] == $values['periodically_day_to'] && $values['periodically_time_from'] >= $values['periodically_time_to']))
|
||||
|
|
|
@ -142,7 +142,6 @@ function reporting_make_reporting_data(
|
|||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
|
||||
$return = [];
|
||||
|
||||
if (!empty($report)) {
|
||||
$contents = $report['contents'];
|
||||
} else {
|
||||
|
@ -261,7 +260,7 @@ function reporting_make_reporting_data(
|
|||
}
|
||||
|
||||
if (isset($content['style']['name_label'])) {
|
||||
// Add macros name
|
||||
// Add macros name.
|
||||
$items_label = [];
|
||||
$items_label['type'] = $content['type'];
|
||||
$items_label['id_agent'] = $content['id_agent'];
|
||||
|
@ -272,11 +271,10 @@ function reporting_make_reporting_data(
|
|||
$metaconsole_on = is_metaconsole();
|
||||
$server_name = $content['server_name'];
|
||||
|
||||
// Metaconsole connection
|
||||
// Metaconsole connection.
|
||||
if ($metaconsole_on && $server_name != '') {
|
||||
$connection = metaconsole_get_connection($server_name);
|
||||
if (!metaconsole_load_external_db($connection)) {
|
||||
// ui_print_error_message ("Error connecting to ".$server_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -889,7 +887,6 @@ function reporting_SLA(
|
|||
if ($metaconsole_on && $server_name != '') {
|
||||
$connection = metaconsole_get_connection($server_name);
|
||||
if (!metaconsole_load_external_db($connection)) {
|
||||
// ui_print_error_message ("Error connecting to ".$server_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -898,7 +895,7 @@ function reporting_SLA(
|
|||
|| modules_is_not_init($sla['id_agent_module'])
|
||||
) {
|
||||
if ($metaconsole_on) {
|
||||
// Restore db connection
|
||||
// Restore db connection.
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
|
||||
|
@ -1183,12 +1180,11 @@ function reporting_SLA(
|
|||
}
|
||||
}
|
||||
|
||||
// SLA items sorted descending ()
|
||||
if ($content['top_n'] == 2) {
|
||||
// SLA items sorted descending ()
|
||||
arsort($return['data']['']);
|
||||
}
|
||||
// SLA items sorted ascending
|
||||
else if ($content['top_n'] == 1) {
|
||||
} else if ($content['top_n'] == 1) {
|
||||
// SLA items sorted ascending
|
||||
asort($sla_showed_values);
|
||||
}
|
||||
|
||||
|
@ -6724,7 +6720,7 @@ function reporting_general($report, $content)
|
|||
'id_agente_modulo',
|
||||
$row['id_agent_module']
|
||||
);
|
||||
|
||||
$id_module_type = db_get_value('id_tipo_modulo', 'tagente_modulo', 'nombre', $mod_name);
|
||||
if ($content['period'] == 0) {
|
||||
$data_res[$index] = modules_get_last_value($row['id_agent_module']);
|
||||
} else {
|
||||
|
@ -6771,10 +6767,24 @@ function reporting_general($report, $content)
|
|||
$agent_name[$index] = $ag_name;
|
||||
$module_name[$index] = $mod_name;
|
||||
$units[$index] = $unit;
|
||||
$id_module_types[$index] = $id_module_type;
|
||||
$operations[$index] = $row['operation'];
|
||||
break;
|
||||
|
||||
case REPORT_GENERAL_GROUP_BY_AGENT:
|
||||
$id_module_types[$index] = $id_module_type;
|
||||
if ($id_module_types[$index] == 2 || $id_module_types[$index] == 6 || $id_module_types[$index] == 9 || $id_module_types[$index] == 18) {
|
||||
$data_res[$index] = round($data_res[$index], 0, PHP_ROUND_HALF_DOWN);
|
||||
}
|
||||
|
||||
if ($id_module_types[$index] == 2 || $id_module_types[$index] == 6 || $id_module_types[$index] == 9 || $id_module_types[$index] == 18) {
|
||||
if ($data_res[$index] == 1) {
|
||||
$data_res[$index] = 'Up';
|
||||
} else if ($data_res[$index] == 0) {
|
||||
$data_res[$index] = 'Down';
|
||||
}
|
||||
}
|
||||
|
||||
if ($data_res[$index] === false) {
|
||||
$return['data'][$ag_name][$mod_name] = null;
|
||||
} else {
|
||||
|
@ -6896,7 +6906,7 @@ function reporting_general($report, $content)
|
|||
$data['module'] = $module_name[$i];
|
||||
$data['id_agent_module'] = $id_agent_module[$i];
|
||||
$data['id_agent'] = agents_get_agent_id_by_module_id($id_agent_module[$i]);
|
||||
|
||||
$data['id_module_type'] = $id_module_types[$i];
|
||||
$data['operator'] = '';
|
||||
if ($content['period'] != 0) {
|
||||
switch ($operations[$i]) {
|
||||
|
@ -11322,3 +11332,27 @@ function reporting_translate_sla_status_for_graph($status)
|
|||
];
|
||||
return $sts[$status];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Print header to report pdf and add page break
|
||||
*
|
||||
* @param string $title Title of report.
|
||||
* @param string $description Description of report.
|
||||
*
|
||||
* @return html Return table of header.
|
||||
*/
|
||||
function reporting_header_table_for_pdf(string $title='', string $description='')
|
||||
{
|
||||
$result_pdf .= '<pagebreak>';
|
||||
$result_pdf .= '<table class="header_table databox">';
|
||||
$result_pdf .= '<thead class="header_tr"><tr>';
|
||||
$result_pdf .= '<th class="th_first" colspan="2">';
|
||||
$result_pdf .= $title;
|
||||
$result_pdf .= '</th><th style="font-size: 15px;" align="right">';
|
||||
$result_pdf .= '</th></tr><tr><th colspan="3" class="th_description">';
|
||||
$result_pdf .= $description;
|
||||
$result_pdf .= '</th></tr></thead></table>';
|
||||
|
||||
return $result_pdf;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -748,7 +748,7 @@ function tags_get_acl_tags(
|
|||
$id_user = $config['id_user'];
|
||||
}
|
||||
|
||||
if (is_user_admin($id_user)) {
|
||||
if (is_user_admin($id_user) && empty($childrens_ids)) {
|
||||
switch ($return_mode) {
|
||||
case 'data':
|
||||
return [];
|
||||
|
@ -797,7 +797,8 @@ function tags_get_acl_tags(
|
|||
// Return the condition of the tags for tagente_modulo table
|
||||
$condition = tags_get_acl_tags_module_condition(
|
||||
$acltags,
|
||||
$query_table
|
||||
$query_table,
|
||||
empty($childrens_ids) ? [] : $childrens_ids
|
||||
);
|
||||
if (!empty($condition)) {
|
||||
return " $query_prefix ".$condition;
|
||||
|
@ -825,7 +826,7 @@ function tags_get_acl_tags(
|
|||
*
|
||||
* @return string SQL condition for tagente_module
|
||||
*/
|
||||
function tags_get_acl_tags_module_condition($acltags, $modules_table='')
|
||||
function tags_get_acl_tags_module_condition($acltags, $modules_table='', $force_tags=[])
|
||||
{
|
||||
if (!empty($modules_table)) {
|
||||
$modules_table .= '.';
|
||||
|
@ -839,6 +840,17 @@ function tags_get_acl_tags_module_condition($acltags, $modules_table='')
|
|||
// The acltags array contains the groups with the acl propagation applied
|
||||
// after the changes done into the 'tags_get_user_groups_and_tags' function.
|
||||
foreach ($acltags as $group_id => $group_tags) {
|
||||
if (empty($group_tags)) {
|
||||
$group_tags = [];
|
||||
if (!empty($force_tags)) {
|
||||
$group_tags = $force_tags;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($group_tags)) {
|
||||
$group_tags = array_intersect($force_tags, $group_tags);
|
||||
}
|
||||
|
||||
$tag_join = '';
|
||||
if (!empty($group_tags)) {
|
||||
$tag_join = sprintf('AND ttag_module.id_tag IN (%s)', is_array($group_tags) ? implode(',', $group_tags) : $group_tags);
|
||||
|
@ -849,7 +861,7 @@ function tags_get_acl_tags_module_condition($acltags, $modules_table='')
|
|||
}
|
||||
|
||||
$group_conditions[] = $agent_condition;
|
||||
} else {
|
||||
} else if (!empty($force_tags)) {
|
||||
$without_tags[] = $group_id;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -711,7 +711,7 @@ function update_manager_extract_package()
|
|||
|
||||
rrmdir($path_package);
|
||||
|
||||
if ($result != 0) {
|
||||
if ($result == 0) {
|
||||
db_process_sql_update(
|
||||
'tconfig',
|
||||
[
|
||||
|
|
|
@ -3902,13 +3902,16 @@ function visual_map_translate_agent_status($agent_status)
|
|||
{
|
||||
switch ($agent_status) {
|
||||
case AGENT_STATUS_NORMAL:
|
||||
case AGENT_MODULE_STATUS_NORMAL_ALERT:
|
||||
default:
|
||||
return VISUAL_MAP_STATUS_NORMAL;
|
||||
|
||||
case AGENT_STATUS_CRITICAL:
|
||||
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
||||
return VISUAL_MAP_STATUS_CRITICAL_BAD;
|
||||
|
||||
case AGENT_STATUS_WARNING:
|
||||
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
||||
return VISUAL_MAP_STATUS_WARNING;
|
||||
|
||||
case AGENT_STATUS_NOT_INIT:
|
||||
|
|
|
@ -1313,20 +1313,79 @@ function visual_map_editor_print_hack_translate_strings()
|
|||
echo '<span id="any_text" style="display: none;">'.__('Any').'</span>';
|
||||
echo '<span id="ip_text" style="display: none;">'.__('IP').'</span>';
|
||||
|
||||
// Hack to translate messages in javascript
|
||||
echo '<span style="display: none" id="message_alert_no_label_no_image">'.__('No image or name defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_label">'.__('No label defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_image">'.__('No image defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_process">'.__('No process defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_max_percentile">'.__('No Max value defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_width_percentile">'.__('No width defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_bars_graph_height">'.__('No height defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_period">'.__('No period defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_agent">'.__('No agent defined.').'</span>';
|
||||
echo '<span style="display: none" id="message_alert_no_module">'.__('No module defined.').'</span>';
|
||||
// Hack to translate messages in javascript.
|
||||
echo "<div id='message_min_allowed_size' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('Min allowed size is 1024x768.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_custom_graph' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No custom graph defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_label_no_image' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No image or name defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_label' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No label defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_service' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No service defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_image' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No image defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_process' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No process defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_max_percentile' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No Max value defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_width' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No width defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_height' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No height defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_max_width' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('The width must not exceed the size of the visual console container.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_max_height' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('The height must not exceed the size of the visual console container.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_period' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No period defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_agent' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No agent defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_module' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No module defined.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='message_alert_no_module_string_type' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('No module defined. This module must be string type.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='hack_translation_correct_save' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('Successfully save the changes.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo "<div id='hack_translation_incorrect_save' title='".__('Visual Console Builder Information')."' style='display:none;'>";
|
||||
echo "<p style='text-align: center;font-weight: bold;'>".__('Could not be save.').'</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<span style="display: none" id="hack_translation_correct_save">'.__('Successfully save the changes.').'</span>';
|
||||
echo '<span style="display: none" id="hack_translation_incorrect_save">'.__('Could not be save').'</span>';
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -856,11 +856,12 @@ function pandoraFlotSlicebar(
|
|||
}
|
||||
|
||||
var font_size = parseInt(font_size);
|
||||
var font = font
|
||||
.split("/")
|
||||
.pop()
|
||||
.split(".")
|
||||
.shift();
|
||||
if (font != undefined)
|
||||
var font = font
|
||||
.split("/")
|
||||
.pop()
|
||||
.split(".")
|
||||
.shift();
|
||||
// Check possible adapt_keys on classes
|
||||
check_adaptions(graph_id);
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Include/help/en
|
||||
*/
|
||||
?>
|
||||
<h1>Module macros</h1>
|
||||
|
||||
<p>
|
||||
The following macros are available:
|
||||
<ul>
|
||||
<li>_agentcustomfield_<i>n</i>_: Agent custom field number <i>n</i> (eg. _agentcustomfield_9_).</li>
|
||||
</ul>
|
||||
<p>
|
||||
</p>
|
|
@ -32,7 +32,8 @@ The accepted macros are:
|
|||
<li><b>Event associated module name:</b> _module_name_</li>
|
||||
<li><b>Event owner user:</b> _owner_user_</li>
|
||||
<li><b>User ID:</b> _user_id_</li>
|
||||
</ul>
|
||||
<li><b>Id of the user who fires the response:</b> _current_user_</li>
|
||||
</ul>
|
||||
|
||||
<h4>Custom fields</h4>
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Include/help/en
|
||||
*/
|
||||
?>
|
||||
<h1>Macros de módulos</h1>
|
||||
|
||||
<p>
|
||||
Las siguientes macros están disponibles:
|
||||
</p>
|
||||
<ul>
|
||||
<li>_agentcustomfield_<i>n</i>_: Campo personalizado número <i>n</i> del agente (eg. _agentcustomfield_9_). </li>
|
||||
</ul>
|
|
@ -33,6 +33,7 @@ Las macros aceptadas son las siguientes:
|
|||
<li><b>Nombre del módulo asociado al evento:</b> _module_name_</li>
|
||||
<li><b>Usuario propietario del evento:</b> _owner_user_</li>
|
||||
<li><b>Id del usuario:</b> _user_id_</li>
|
||||
<li><b>Id del usuario que ejecuta la respuesta:</b> _current_user_</li>
|
||||
</ul>
|
||||
|
||||
<h4>Campos personalizados</h4>
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Include/help/ja
|
||||
*/
|
||||
?>
|
||||
<h1>モジュールマクロ</h1>
|
||||
|
||||
<p>
|
||||
次のマクロが利用できます:
|
||||
</p>
|
||||
<ul>
|
||||
<li>_agentcustomfield_<i>n</i>_ : エージェントカスタムフィールド番号<i>n</i> (例: _agentcustomfield_9_). </li>
|
||||
</ul>
|
||||
<p>
|
||||
</p>
|
|
@ -32,6 +32,7 @@
|
|||
<li><b>Event associated module name:</b> _module_name_</li>
|
||||
<li><b>Event owner user:</b> _owner_user_</li>
|
||||
<li><b>User ID:</b> _user_id_</li>
|
||||
<li><b>Id of the user who fires the response:</b> _current_user_</li>
|
||||
</ul>
|
||||
|
||||
<h4>Custom fields</h4>
|
||||
|
|
|
@ -503,6 +503,14 @@ function module_changed_by_multiple_modules(event, id_module, selected) {
|
|||
selection_mode = "common";
|
||||
}
|
||||
|
||||
var tags_selected = [];
|
||||
|
||||
var tags_to_search = $("#tags").val();
|
||||
if (tags_to_search != null) {
|
||||
if (tags_to_search[0] != -1) {
|
||||
tags_selected = tags_to_search;
|
||||
}
|
||||
}
|
||||
jQuery.post(
|
||||
"ajax.php",
|
||||
{
|
||||
|
@ -510,7 +518,8 @@ function module_changed_by_multiple_modules(event, id_module, selected) {
|
|||
get_agents_json_for_multiple_modules: 1,
|
||||
status_module: status_module,
|
||||
"module_name[]": idModules,
|
||||
selection_mode: selection_mode
|
||||
selection_mode: selection_mode,
|
||||
tags: tags_selected
|
||||
},
|
||||
function(data) {
|
||||
$("#agents").append(
|
||||
|
|
|
@ -1312,7 +1312,7 @@ function update_last_package(package, version, homeurl) {
|
|||
|
||||
$("#box_online .content").html("");
|
||||
$("#box_online .loading").show();
|
||||
$("#box_online .download_package").show();
|
||||
$("#box_online .downloading_package").show();
|
||||
|
||||
var parameters = {};
|
||||
parameters["page"] = "include/ajax/update_manager.ajax";
|
||||
|
@ -1326,7 +1326,7 @@ function update_last_package(package, version, homeurl) {
|
|||
parameters,
|
||||
function(data) {
|
||||
if (data["in_progress"]) {
|
||||
$("#box_online .download_package").hide();
|
||||
$("#box_online .downloading_package").hide();
|
||||
|
||||
$("#box_online .content").html(data["message"]);
|
||||
|
||||
|
@ -1341,7 +1341,7 @@ function update_last_package(package, version, homeurl) {
|
|||
parameters2,
|
||||
function(data) {
|
||||
if (data["correct"]) {
|
||||
$("#box_online .download_package").hide();
|
||||
$("#box_online .downloading_package").hide();
|
||||
|
||||
$("#box_online .content").html(data["message"]);
|
||||
|
||||
|
|
|
@ -1,24 +1,30 @@
|
|||
/*
|
||||
Author: The Pandora FMS team
|
||||
Name: Default theme
|
||||
Description: The default Pandora FMS theme layout
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==========================================================
|
||||
// Copyright (c) 2004-2019 Artica Soluciones Tecnológicas S.L
|
||||
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; version 2
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
/* Tree view styles */
|
||||
/*@import url(tree.css);
|
||||
|
@ -2058,82 +2064,58 @@ div#logo_text3 {
|
|||
|
||||
/* TABLAS */
|
||||
/* Cells divs to set individual styles with the table objects */
|
||||
div.cellBold {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellBold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.cellRight {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellRight {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.cellCenter {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellCenter {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.cellWhite {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellWhite {
|
||||
background: #fff;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
div.cellNormal {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellNormal {
|
||||
background: #6eb432;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.cellCritical {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellCritical {
|
||||
background: #f85858;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.cellWarning {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellWarning {
|
||||
background: #ffea59;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
div.cellUnknown {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellUnknown {
|
||||
background: #aaaaaa;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.cellNotInit {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellNotInit {
|
||||
background: #3ba0ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.cellAlert {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellAlert {
|
||||
background: #ff8800;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
div.cellBorder1 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellBorder1 {
|
||||
border: 1px solid #666;
|
||||
}
|
||||
|
||||
div.cellBig {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
td.cellBig {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
|
@ -4437,252 +4419,11 @@ div#dialog_messages table th:last-child {
|
|||
margin: 15px 0;
|
||||
}
|
||||
|
||||
/* --- JQUERY-UI --- */
|
||||
.ui-button-text-only .ui-button-text {
|
||||
font-family: "nunito", sans-serif;
|
||||
font-size: 9pt;
|
||||
color: #82b92e;
|
||||
/* jQuery dialog */
|
||||
.no-close .ui-dialog-titlebar-close {
|
||||
display: none;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-title *,
|
||||
.ui-datepicker th * {
|
||||
color: white;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-title select,
|
||||
.ui-datepicker .ui-datepicker-title option {
|
||||
color: #111 !important;
|
||||
}
|
||||
.ui-dialog .ui-dialog-titlebar {
|
||||
display: inherit;
|
||||
text-align: center;
|
||||
padding: 0.4em 1em;
|
||||
height: 30px;
|
||||
position: relative;
|
||||
background-color: #82b92e !important;
|
||||
}
|
||||
.ui-dialog .ui-dialog-title {
|
||||
font-family: "Nunito", sans-serif;
|
||||
margin: 0.1em 0 !important;
|
||||
white-space: nowrap !important;
|
||||
width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
font-size: 11pt;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
float: none !important;
|
||||
}
|
||||
.ui-dialog .ui-dialog-titlebar-close {
|
||||
position: absolute !important;
|
||||
right: 1em !important;
|
||||
width: 21px !important;
|
||||
margin: 0px 0 0 0 !important;
|
||||
padding: 1px !important;
|
||||
height: 20px !important;
|
||||
bottom: 30% !important;
|
||||
top: 20% !important;
|
||||
}
|
||||
.ui-dialog .ui-dialog-content {
|
||||
position: relative !important;
|
||||
border: 0;
|
||||
padding: 0.5em 1em !important;
|
||||
background: none !important;
|
||||
overflow: auto !important;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane {
|
||||
text-align: left;
|
||||
border-width: 1px 0 0 0;
|
||||
background-image: none;
|
||||
margin-top: 0.5em;
|
||||
padding: 0.3em 1em 0.5em 0.4em;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: right;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane button {
|
||||
margin: 0.5em 1em 0.5em 0 !important;
|
||||
cursor: pointer !important;
|
||||
background: white !important;
|
||||
background-color: white !important;
|
||||
border: 1px solid #82b92e !important;
|
||||
min-height: 35px !important;
|
||||
width: 90px !important;
|
||||
}
|
||||
.ui-widget-content {
|
||||
background: #ffffff url(include/styles/images/ui-bg_flat_75_ffffff_40x100.png)
|
||||
50% 50% repeat-x;
|
||||
}
|
||||
.ui-state-default,
|
||||
.ui-widget-content .ui-state-default,
|
||||
.ui-widget-header .ui-state-default {
|
||||
margin-top: 3px;
|
||||
border: 1px solid #d3d3d3 !important;
|
||||
border-bottom: 0 !important;
|
||||
background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50%
|
||||
repeat-x !important;
|
||||
font-weight: normal !important;
|
||||
color: #555555 !important;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-left,
|
||||
.ui-corner-tl {
|
||||
border-top-left-radius: 0 !important;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-right,
|
||||
.ui-corner-tr {
|
||||
border-top-right-radius: 0 !important;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-left,
|
||||
.ui-corner-bl {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-right,
|
||||
.ui-corner-br {
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
#ui-datepicker-div {
|
||||
border-color: #b1b1b1;
|
||||
background: #ffffff;
|
||||
}
|
||||
.ui-widget-header {
|
||||
background: #b1b1b1 !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
.ui-datepicker-calendar th {
|
||||
background-color: #3f3f3f;
|
||||
}
|
||||
.ui-dialog .ui-widget-header {
|
||||
background-color: #82b92e;
|
||||
}
|
||||
.ui_tpicker_hour,
|
||||
.ui_tpicker_minute,
|
||||
.ui_tpicker_second,
|
||||
.ui-slider-handle {
|
||||
border: 1px solid #aaaaaa !important;
|
||||
}
|
||||
.ui-timepicker-div dd {
|
||||
margin: 0px 15px 0px 15px;
|
||||
}
|
||||
.ui-timepicker-div .ui-datepicker-title {
|
||||
color: white;
|
||||
}
|
||||
.ui-datepicker-buttonpane button {
|
||||
border-color: #b1b1b1 !important;
|
||||
}
|
||||
.ui-datepicker-buttonpane .ui-datepicker-current {
|
||||
margin-left: 0.2em !important;
|
||||
}
|
||||
.ui-dialog .ui-widget-content {
|
||||
border: 0px !important;
|
||||
}
|
||||
.ui-dialog {
|
||||
box-shadow: 5px 5px 19px #4e4e4e;
|
||||
border: 0px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
.ui-dialog-titlebar {
|
||||
border: 0px !important;
|
||||
}
|
||||
.ui-dialog-titlebar .ui-icon-closethick,
|
||||
.ui-dialog-titlebar .ui-state-default,
|
||||
.ui-dialog-titlebar .ui-state-hover,
|
||||
.ui-dialog-titlebar button {
|
||||
background: transparent;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.ui-dialog-title {
|
||||
color: #ffffff;
|
||||
font-size: 9pt;
|
||||
}
|
||||
.ui-widget input,
|
||||
.ui-widget select,
|
||||
.ui-widget textarea,
|
||||
.ui-widget button {
|
||||
font-family: Verdana, Arial, sans-serif !important;
|
||||
}
|
||||
|
||||
a.ui-button:active,
|
||||
.ui-button:active,
|
||||
.ui-button.ui-state-active:hover,
|
||||
.ui-state-focus .ui-widget-content,
|
||||
.ui-state-focus .ui-widget-header,
|
||||
.ui-state-focus .ui-button:hover,
|
||||
.ui-button:focus {
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.ui-state-hover,
|
||||
.ui-widget-content .ui-state-hover,
|
||||
.ui-widget-header .ui-state-hover {
|
||||
border: 1px solid #999999 !important;
|
||||
border-bottom: 0 !important;
|
||||
background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50%
|
||||
repeat-x !important;
|
||||
}
|
||||
|
||||
.ui-state-active,
|
||||
.ui-widget-content .ui-state-active,
|
||||
.ui-widget-header .ui-state-active {
|
||||
border: 1px solid #aaaaaa !important;
|
||||
border-bottom: 0 !important;
|
||||
background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50%
|
||||
repeat-x !important;
|
||||
font-weight: normal !important;
|
||||
color: #212121 !important;
|
||||
}
|
||||
.ui-state-active a,
|
||||
.ui-state-active a:link,
|
||||
.ui-state-active a:visited {
|
||||
color: #212121 !important;
|
||||
}
|
||||
|
||||
ul.ui-front {
|
||||
z-index: 1000000 !important;
|
||||
padding-right: 0px !important;
|
||||
}
|
||||
|
||||
ul.ui-front li {
|
||||
padding: 3px !important;
|
||||
}
|
||||
|
||||
ul.ui-front li:hover {
|
||||
background-color: #e1e3e1 !important;
|
||||
}
|
||||
|
||||
ul.ui-front li a.ui-menu-item-wrapper {
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
ul.ui-front li a.ui-menu-item-wrapper span {
|
||||
padding-left: 5px !important;
|
||||
}
|
||||
|
||||
ul.ui-front li a.ui-menu-item-wrapper:hover {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
input[type="submit"].ui-button-dialog {
|
||||
margin: 0.5em 1em 0.5em 0 !important;
|
||||
cursor: pointer !important;
|
||||
background: white !important;
|
||||
background-color: white !important;
|
||||
color: #82b92e !important;
|
||||
text-align: center !important;
|
||||
border: 1px solid #82b92e !important;
|
||||
height: 30px !important;
|
||||
width: 90px !important;
|
||||
}
|
||||
/* --- END - JQUERY-UI --- */
|
||||
/* jQuery dialog */
|
||||
|
||||
/* --- SWITCH --- */
|
||||
.p-switch {
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
table.header_table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table.header_table thead tr th,
|
||||
table.header_table tbody tr td {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
thead.header_tr tr {
|
||||
background: #e6e6e6;
|
||||
}
|
||||
|
||||
thead.header_tr tr th {
|
||||
font-weight: normal;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
thead.header_tr tr th.th_first {
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
thead.header_tr tr th.th_description {
|
||||
background-color: #f5f5f5;
|
||||
color: #1c1c1c;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
table.table_beauty {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table.table_beauty tbody tr td {
|
||||
padding: 5px;
|
||||
border: 0.1pt solid #acacac;
|
||||
}
|
||||
|
||||
table.databox {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
th.title_table_pdf {
|
||||
background-color: #acacac;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
table.table_agent_module tr td {
|
||||
padding: 5px;
|
||||
}
|
|
@ -1363,4 +1363,3 @@ require 'include/php_to_js_values.php';
|
|||
if (__PAN_XHPROF__ === 1) {
|
||||
pandora_xhprof_display_result('node_index');
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,17 @@
|
|||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2012 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License
|
||||
// as published by the Free Software Foundation; version 2
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
@ -129,7 +140,7 @@
|
|||
<div style='height: 10px'>
|
||||
<?php
|
||||
$version = '7.0NG.731';
|
||||
$build = '190214';
|
||||
$build = '190222';
|
||||
$banner = "v$version Build $build";
|
||||
|
||||
error_reporting(0);
|
||||
|
@ -536,7 +547,7 @@ function install_step2()
|
|||
echo '<h2>Checking software dependencies</h2>';
|
||||
echo '<table border=0 width=230>';
|
||||
$res = 0;
|
||||
$res += check_variable(phpversion(), '5.2', 'PHP version >= 5.2', 1);
|
||||
$res += check_variable(phpversion(), '7.0', 'PHP version >= 7.0', 1);
|
||||
$res += check_extension('gd', 'PHP GD extension');
|
||||
$res += check_extension('ldap', 'PHP LDAP extension');
|
||||
$res += check_extension('snmp', 'PHP SNMP extension');
|
||||
|
@ -564,7 +575,6 @@ function install_step2()
|
|||
font-size: 8.5pt;margin-top: 2px; font-weight: bolder;'>DB Engines</span>";
|
||||
echo '</td><td>';
|
||||
echo '</td></tr>';
|
||||
check_extension('mysql', 'PHP MySQL extension');
|
||||
check_extension('mysqli', 'PHP MySQL(mysqli) extension');
|
||||
echo '</table>';
|
||||
|
||||
|
|
|
@ -313,7 +313,7 @@ class Alerts
|
|||
|
||||
$row = [];
|
||||
if (isset($this->columns['agent']) && $this->columns['agent']) {
|
||||
$row[__('Agent')] = sprintf($disabled_style, io_safe_output($alert['agent_name']));
|
||||
$row[__('Agent')] = sprintf($disabled_style, io_safe_output($alert['agent_alias']));
|
||||
}
|
||||
|
||||
$row[__('Module')] = sprintf(
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
// Load global vars
|
||||
global $config;
|
||||
|
||||
require_once 'include/functions_gis.php';
|
||||
|
@ -48,16 +63,16 @@ if (is_ajax()) {
|
|||
$id_group = (int) get_parameter('id_group');
|
||||
if ($get_agents_group_json) {
|
||||
$id_group = (int) get_parameter('id_group');
|
||||
$recursion = get_parameter('recursion');
|
||||
$recursion = (bool) get_parameter('recursion');
|
||||
$id_os = get_parameter('id_os', '');
|
||||
$agent_name = get_parameter('name', '');
|
||||
|
||||
$privilege = (string) get_parameter('privilege', 'AR');
|
||||
// Is is possible add keys prefix to avoid auto sorting in js object conversion
|
||||
// Is is possible add keys prefix to avoid auto sorting in js object conversion.
|
||||
$keys_prefix = (string) get_parameter('keys_prefix', '');
|
||||
$status_agents = (int) get_parameter('status_agents', AGENT_STATUS_ALL);
|
||||
|
||||
// Build filter
|
||||
// Build filter.
|
||||
$filter = [];
|
||||
|
||||
if (!empty($id_os)) {
|
||||
|
@ -104,13 +119,23 @@ if (is_ajax()) {
|
|||
}
|
||||
}
|
||||
|
||||
// Perform search
|
||||
$agents = agents_get_group_agents($id_group, $filter, 'lower', false, $recursion, false, '|', $cluster_mode);
|
||||
// Perform search.
|
||||
$agents = agents_get_group_agents(
|
||||
$id_group,
|
||||
$filter,
|
||||
'lower',
|
||||
false,
|
||||
$recursion,
|
||||
false,
|
||||
'|',
|
||||
$cluster_mode
|
||||
);
|
||||
|
||||
if (empty($agents)) {
|
||||
$agents = [];
|
||||
}
|
||||
|
||||
// Add keys prefix
|
||||
// Add keys prefix.
|
||||
if ($keys_prefix !== '') {
|
||||
$i = 0;
|
||||
foreach ($agents as $k => $v) {
|
||||
|
@ -139,7 +164,7 @@ if (is_ajax()) {
|
|||
$id_agents = get_parameter('id_agents');
|
||||
$selection = get_parameter('selection');
|
||||
|
||||
// No filter by module group
|
||||
// No filter by module group.
|
||||
$modules = select_modules_for_agent_group(0, $id_agents, $selection, false, true);
|
||||
echo json_encode($modules);
|
||||
return;
|
||||
|
@ -177,11 +202,14 @@ if (is_ajax()) {
|
|||
$nameModules = get_parameter('module_name');
|
||||
$selection_mode = get_parameter('selection_mode', 'common') == 'all';
|
||||
$status_modulo = (int) get_parameter('status_module', -1);
|
||||
|
||||
$tags_selected = (array) get_parameter('tags', []);
|
||||
$names = select_agents_for_module_group(
|
||||
$nameModules,
|
||||
$selection_mode,
|
||||
['status' => $status_modulo],
|
||||
[
|
||||
'status' => $status_modulo,
|
||||
'tags' => $tags_selected,
|
||||
],
|
||||
'AW'
|
||||
);
|
||||
|
||||
|
@ -311,28 +339,28 @@ if (is_ajax()) {
|
|||
}
|
||||
|
||||
if (!empty($module_name)) {
|
||||
$filter .= " AND t1.nombre COLLATE utf8_general_ci LIKE '%$module_name%'";
|
||||
$filter .= " AND t1.nombre COLLATE utf8_general_ci LIKE '%".$module_name."%'";
|
||||
}
|
||||
|
||||
// Status selector
|
||||
// Status selector.
|
||||
if ($status_modulo == AGENT_MODULE_STATUS_NORMAL) {
|
||||
// Normal
|
||||
// Normal.
|
||||
$sql_conditions .= ' estado = 0 AND utimestamp > 0 )
|
||||
OR (t1.id_tipo_modulo IN(21,22,23,100)) ';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_CRITICAL_BAD) {
|
||||
// Critical
|
||||
// Critical.
|
||||
$sql_conditions .= ' estado = 1 AND utimestamp > 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_WARNING) {
|
||||
// Warning
|
||||
// Warning.
|
||||
$sql_conditions .= ' estado = 2 AND utimestamp > 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_NORMAL) {
|
||||
// Not normal
|
||||
// Not normal.
|
||||
$sql_conditions .= ' estado <> 0)';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_UNKNOWN) {
|
||||
// Unknown
|
||||
// Unknown.
|
||||
$sql_conditions .= ' estado = 3 AND utimestamp <> 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_INIT) {
|
||||
// Not init
|
||||
// Not init.
|
||||
$sql_conditions .= ' utimestamp = 0 )
|
||||
AND t1.id_tipo_modulo NOT IN (21,22,23,100)';
|
||||
}
|
||||
|
@ -412,7 +440,7 @@ if (is_ajax()) {
|
|||
|
||||
foreach ($array_reduced as $server_name => $id_agents) {
|
||||
// Metaconsole db connection
|
||||
// $server_name can be the server id (ugly hack, I know)
|
||||
// $server_name can be the server id (ugly hack, I know).
|
||||
if (is_numeric($server_name)) {
|
||||
$connection = metaconsole_get_connection_by_id($server_name);
|
||||
} else {
|
||||
|
@ -423,7 +451,7 @@ if (is_ajax()) {
|
|||
continue;
|
||||
}
|
||||
|
||||
// Get agent's modules
|
||||
// Get agent's modules.
|
||||
$sql = sprintf(
|
||||
'SELECT t1.id_agente, t1.id_agente_modulo, t1.nombre
|
||||
FROM tagente_modulo t1 %s
|
||||
|
@ -451,7 +479,7 @@ if (is_ajax()) {
|
|||
|
||||
$modules_aux = [];
|
||||
foreach ($modules as $key => $module) {
|
||||
// Don't change this order, is used in the serialization
|
||||
// Don't change this order, is used in the serialization.
|
||||
$module_data = [
|
||||
'id_module' => $module['id_agente_modulo'],
|
||||
'id_agent' => $module['id_agente'],
|
||||
|
@ -466,7 +494,7 @@ if (is_ajax()) {
|
|||
|
||||
$modules = $modules_aux;
|
||||
|
||||
// Build the next array using the common values
|
||||
// Build the next array using the common values.
|
||||
if (!empty($last_modules_set)) {
|
||||
$modules = array_intersect_key($modules, $last_modules_set);
|
||||
|
||||
|
@ -480,7 +508,7 @@ if (is_ajax()) {
|
|||
|
||||
$last_modules_set = $modules;
|
||||
|
||||
// Restore db connection
|
||||
// Restore db connection.
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
|
||||
|
@ -490,7 +518,6 @@ if (is_ajax()) {
|
|||
|
||||
$module_data_processed = array_map(
|
||||
function ($item) {
|
||||
// data: -> id_module | id_agent | server_name;
|
||||
return implode('|', $item);
|
||||
},
|
||||
$module_data
|
||||
|
@ -600,16 +627,16 @@ if (is_ajax()) {
|
|||
if ($get_agent_modules_json) {
|
||||
$id_agent = (int) get_parameter('id_agent');
|
||||
|
||||
// Use -1 as not received
|
||||
// Use -1 as not received.
|
||||
$disabled = (int) get_parameter('disabled', -1);
|
||||
$delete_pending = (int) get_parameter('delete_pending', -1);
|
||||
// Use 0 as not received
|
||||
// Use 0 as not received.
|
||||
$id_tipo_modulo = (int) get_parameter('id_tipo_modulo', 0);
|
||||
$status_modulo = (int) get_parameter('status_module', -1);
|
||||
|
||||
$tags = (array) get_parameter('tags', []);
|
||||
|
||||
// Filter
|
||||
// Filter.
|
||||
$filter = [];
|
||||
if ($disabled !== -1) {
|
||||
$filter['disabled'] = $disabled;
|
||||
|
@ -627,30 +654,34 @@ if (is_ajax()) {
|
|||
$filter = false;
|
||||
}
|
||||
|
||||
$get_only_string_modules = get_parameter('get_only_string_modules', false);
|
||||
$get_only_string_modules = get_parameter(
|
||||
'get_only_string_modules',
|
||||
false
|
||||
);
|
||||
|
||||
if ($get_only_string_modules) {
|
||||
$filter['tagente_modulo.id_tipo_modulo IN'] = '(17,23,3,10,33)';
|
||||
}
|
||||
|
||||
// Status selector
|
||||
// Status selector.
|
||||
if ($status_modulo == AGENT_MODULE_STATUS_NORMAL) {
|
||||
// Normal
|
||||
$sql_conditions .= ' estado = 0 AND utimestamp > 0 )
|
||||
// Normal.
|
||||
$sql_conditions .= ' estado = 0 AND utimestamp > 0 )
|
||||
OR (tagente_modulo.id_tipo_modulo IN(21,22,23,100)) ';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_CRITICAL_BAD) {
|
||||
// Critical
|
||||
// Critical.
|
||||
$sql_conditions .= ' estado = 1 AND utimestamp > 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_WARNING) {
|
||||
// Warning
|
||||
// Warning.
|
||||
$sql_conditions .= ' estado = 2 AND utimestamp > 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_NORMAL) {
|
||||
// Not normal
|
||||
// Not normal.
|
||||
$sql_conditions .= ' estado <> 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_UNKNOWN) {
|
||||
// Unknown
|
||||
// Unknown.
|
||||
$sql_conditions .= ' estado = 3 AND utimestamp <> 0 )';
|
||||
} else if ($status_modulo == AGENT_MODULE_STATUS_NOT_INIT) {
|
||||
// Not init
|
||||
// Not init.
|
||||
$sql_conditions .= ' utimestamp = 0 )
|
||||
AND tagente_modulo.id_tipo_modulo NOT IN (21,22,23,100)';
|
||||
}
|
||||
|
@ -663,7 +694,7 @@ if (is_ajax()) {
|
|||
$get_id_and_name = (bool) get_parameter('get_id_and_name');
|
||||
$get_distinct_name = (bool) get_parameter('get_distinct_name');
|
||||
|
||||
// Fields
|
||||
// Fields.
|
||||
$fields = '*';
|
||||
if ($get_id_and_name) {
|
||||
$fields = [
|
||||
|
@ -680,7 +711,8 @@ if (is_ajax()) {
|
|||
$agentName = (string) get_parameter('agent_name', null);
|
||||
$server_name = (string) get_parameter('server_name', null);
|
||||
$server_id = (int) get_parameter('server_id', 0);
|
||||
// This will force to get local modules although metaconsole is active, by default get all modules from all nodes
|
||||
// This will force to get local modules although metaconsole is active,
|
||||
// by default get all modules from all nodes.
|
||||
$force_local_modules = (int) get_parameter('force_local_modules', 0);
|
||||
|
||||
if ($agentName != null) {
|
||||
|
@ -703,7 +735,7 @@ if (is_ajax()) {
|
|||
}
|
||||
|
||||
if (metaconsole_load_external_db($connection) == NOERR) {
|
||||
// Get all agents if no agent was given
|
||||
// Get all agents if no agent was given.
|
||||
if ($id_agent == 0) {
|
||||
$id_agent = array_keys(
|
||||
agents_get_group_agents(
|
||||
|
@ -717,11 +749,11 @@ if (is_ajax()) {
|
|||
$agent_modules = agents_get_modules($id_agent, $fields, $filter, $indexed, true, $force_tags);
|
||||
}
|
||||
|
||||
// Restore db connection
|
||||
// Restore db connection.
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
} else {
|
||||
// Get all agents if no agent was given
|
||||
// Get all agents if no agent was given.
|
||||
if ($id_agent == 0) {
|
||||
$id_agent = array_keys(
|
||||
agents_get_group_agents(
|
||||
|
@ -765,7 +797,7 @@ if (is_ajax()) {
|
|||
$id_agent = (int) get_parameter('id_agent');
|
||||
$metaconsole = (bool) get_parameter('metaconsole', false);
|
||||
$id_server = (int) get_parameter('id_server', 0);
|
||||
// Metaconsole
|
||||
// Metaconsole.
|
||||
$server = null;
|
||||
if ($metaconsole) {
|
||||
$filter = [];
|
||||
|
@ -802,7 +834,7 @@ if (is_ajax()) {
|
|||
echo '<strong>'.__('Last remote contact').':</strong> '.human_time_comparation($agent['ultimo_contacto_remoto']).'<br />';
|
||||
|
||||
if (!$metaconsole) {
|
||||
// Fix : Only show agents with module with tags of user profile
|
||||
// Fix : Only show agents with module with tags of user profile.
|
||||
$_user_tags = tags_get_user_tags($config['id_user'], 'RR');
|
||||
|
||||
$_sql_post = '';
|
||||
|
@ -839,10 +871,10 @@ if (is_ajax()) {
|
|||
if ($bad_modules === false) {
|
||||
$size_bad_modules = 0;
|
||||
} else {
|
||||
$size_bad_modules = sizeof($bad_modules);
|
||||
$size_bad_modules = count($bad_modules);
|
||||
}
|
||||
|
||||
// Modules down
|
||||
// Modules down.
|
||||
if ($size_bad_modules > 0) {
|
||||
echo '<strong>'.__('Monitors down').':</strong> '.$size_bad_modules.' / '.$total_modules;
|
||||
echo '<ul>';
|
||||
|
@ -855,7 +887,7 @@ if (is_ajax()) {
|
|||
echo '</ul>';
|
||||
}
|
||||
|
||||
// Alerts (if present)
|
||||
// Alerts (if present).
|
||||
$sql = sprintf(
|
||||
'SELECT COUNT(talert_template_modules.id)
|
||||
FROM talert_template_modules, tagente_modulo, tagente
|
||||
|
@ -937,8 +969,8 @@ if (is_ajax()) {
|
|||
if ($module['id_tipo_modulo'] == 18) {
|
||||
echo '<strong>'.__('Address').':</strong> ';
|
||||
|
||||
// Get the IP/IPs from the module description
|
||||
// Always the IP is the last part of the description (after the last space)
|
||||
// Get the IP/IPs from the module description Always the IP
|
||||
// is the last part of the description (after the last space).
|
||||
$ips = explode(' ', $module['descripcion']);
|
||||
$ips = $ips[(count($ips) - 1)];
|
||||
|
||||
|
@ -948,7 +980,7 @@ if (is_ajax()) {
|
|||
} else {
|
||||
echo '<ul style="display:inline;">';
|
||||
foreach ($ips as $ip) {
|
||||
echo "<li>$ip</li>";
|
||||
echo '<li>'.$ip.'</li>';
|
||||
}
|
||||
|
||||
echo '</ul>';
|
||||
|
@ -1033,7 +1065,7 @@ $agent_a = check_acl($config['id_user'], 0, 'AR');
|
|||
$agent_w = check_acl($config['id_user'], 0, 'AW');
|
||||
$access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR');
|
||||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
// get group for this id_agente
|
||||
// Get group for this id_agente.
|
||||
$id_grupo = $agent['id_grupo'];
|
||||
|
||||
$is_extra = enterprise_hook('policies_is_agent_extra_policy', [$id_agente]);
|
||||
|
@ -1053,7 +1085,7 @@ if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AR') && ! check_
|
|||
return;
|
||||
}
|
||||
|
||||
// Check for Network FLAG change request
|
||||
// Check for Network FLAG change request.
|
||||
$flag = get_parameter('flag', '');
|
||||
if ($flag !== '') {
|
||||
if ($flag == 1 && check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
|
@ -1067,7 +1099,7 @@ if ($flag !== '') {
|
|||
}
|
||||
}
|
||||
|
||||
// Check for Network FLAG change request
|
||||
// Check for Network FLAG change request.
|
||||
$flag_agent = get_parameter('flag_agent', '');
|
||||
if ($flag_agent !== '') {
|
||||
if ($flag_agent == 1 && check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
|
@ -1082,10 +1114,10 @@ if ($agent['icon_path']) {
|
|||
}
|
||||
|
||||
|
||||
// -------------Code for the tabs in the header of agent page-----------
|
||||
// Code for the tabs in the header of agent page.
|
||||
$tab = get_parameter('tab', 'main');
|
||||
|
||||
// Manage tab
|
||||
// Manage tab.
|
||||
$managetab = [];
|
||||
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || $is_extra) {
|
||||
|
@ -1101,7 +1133,7 @@ if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || $is_extra)
|
|||
}
|
||||
|
||||
|
||||
// Main tab
|
||||
// Main tab.
|
||||
$maintab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">'.html_print_image('images/agent_mc.png', true, ['title' => __('Main')]).'</a>';
|
||||
|
||||
if ($tab == 'main') {
|
||||
|
@ -1112,7 +1144,7 @@ if ($tab == 'main') {
|
|||
|
||||
|
||||
|
||||
// Alert tab
|
||||
// Alert tab.
|
||||
$alerttab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'&tab=alert">'.html_print_image('images/op_alerts.png', true, ['title' => __('Alerts')]).'</a>';
|
||||
|
||||
if ($tab == 'alert') {
|
||||
|
@ -1121,27 +1153,27 @@ if ($tab == 'alert') {
|
|||
$alerttab['active'] = false;
|
||||
}
|
||||
|
||||
// Inventory
|
||||
// Inventory.
|
||||
$inventorytab = enterprise_hook('inventory_tab');
|
||||
if ($inventorytab == -1) {
|
||||
$inventorytab = '';
|
||||
}
|
||||
|
||||
|
||||
// Collection
|
||||
// Collection.
|
||||
$collectiontab = enterprise_hook('collection_tab');
|
||||
if ($collectiontab == -1) {
|
||||
$collectiontab = '';
|
||||
}
|
||||
|
||||
|
||||
// Policy
|
||||
// Policy.
|
||||
$policyTab = enterprise_hook('policy_tab');
|
||||
if ($policyTab == -1) {
|
||||
$policyTab = '';
|
||||
}
|
||||
|
||||
// WUX Console
|
||||
// WUX Console.
|
||||
$modules_wux = enterprise_hook('get_wux_modules', [$id_agente]);
|
||||
if ($modules_wux) {
|
||||
$wux_console_tab = enterprise_hook('wux_console_tab');
|
||||
|
@ -1158,7 +1190,7 @@ if ($url_route_analyzer) {
|
|||
}
|
||||
}
|
||||
|
||||
// GIS tab
|
||||
// GIS tab.
|
||||
$gistab = [];
|
||||
if ($config['activate_gis']) {
|
||||
$gistab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente.'">'.html_print_image('images/op_gis.png', true, [ 'title' => __('GIS data')]).'</a>';
|
||||
|
@ -1171,7 +1203,7 @@ if ($config['activate_gis']) {
|
|||
}
|
||||
|
||||
|
||||
// Incident tab
|
||||
// Incident tab.
|
||||
$total_incidents = agents_get_count_incidents($id_agente);
|
||||
if ($total_incidents > 0) {
|
||||
$incidenttab['text'] = '<a href="index.php?sec=gagente&sec2=operation/agentes/ver_agente&tab=incident&id_agente='.$id_agente.'">'.html_print_image('images/book_edit.png', true, ['title' => __('Incidents')]).'</a>';
|
||||
|
@ -1184,7 +1216,7 @@ if ($total_incidents > 0) {
|
|||
}
|
||||
|
||||
|
||||
// Url address tab
|
||||
// Url address tab.
|
||||
if ($agent['url_address'] != '') {
|
||||
$urladdresstab['text'] = '<a href="index.php?sec=gagente&sec2=operation/agentes/ver_agente&tab=url_address&id_agente='.$id_agente.'">'.html_print_image('images/link.png', true, ['title' => __('Url address')]).'</a>';
|
||||
}
|
||||
|
@ -1196,7 +1228,7 @@ if ($tab == 'url_address') {
|
|||
}
|
||||
|
||||
|
||||
// Custom fields tab
|
||||
// Custom fields tab.
|
||||
$custom_fields['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=custom_fields&id_agente='.$id_agente.'">'.html_print_image('images/custom_field.png', true, ['title' => __('Custom fields')]).'</a>';
|
||||
if ($tab == 'custom_fields') {
|
||||
$custom_fields['active'] = true;
|
||||
|
@ -1205,7 +1237,7 @@ if ($tab == 'custom_fields') {
|
|||
}
|
||||
|
||||
|
||||
// Graphs tab
|
||||
// Graphs tab.
|
||||
$graphs['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=graphs&id_agente='.$id_agente.'">'.html_print_image('images/chart.png', true, ['title' => __('Graphs')]).'</a>';
|
||||
if ($tab == 'graphs') {
|
||||
$graphs['active'] = true;
|
||||
|
@ -1214,7 +1246,7 @@ if ($tab == 'graphs') {
|
|||
}
|
||||
|
||||
|
||||
// Log viewer tab
|
||||
// Log viewer tab.
|
||||
if (enterprise_installed() && $config['log_collector']) {
|
||||
$is_windows = strtoupper(substr(PHP_OS, 0, 3)) == 'WIN';
|
||||
$agent_has_logs = (bool) db_get_value('id_agent', 'tagent_module_log', 'id_agent', $id_agente);
|
||||
|
@ -1226,7 +1258,7 @@ if (enterprise_installed() && $config['log_collector']) {
|
|||
}
|
||||
}
|
||||
|
||||
// eHorus tab
|
||||
// EHorus tab.
|
||||
if ($config['ehorus_enabled'] && !empty($config['ehorus_custom_field'])
|
||||
&& (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || is_user_admin($config['id_user']))
|
||||
) {
|
||||
|
@ -1235,7 +1267,7 @@ if ($config['ehorus_enabled'] && !empty($config['ehorus_custom_field'])
|
|||
$tab_url = 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=ehorus&id_agente='.$id_agente;
|
||||
$ehorus_tab['text'] = '<a href="'.$tab_url.'" class="ehorus_tab">'.html_print_image('images/ehorus/ehorus.png', true, [ 'title' => __('eHorus')]).'</a>';
|
||||
|
||||
// Hidden subtab layer
|
||||
// Hidden subtab layer.
|
||||
$ehorus_tab['sub_menu'] = '<ul class="mn subsubmenu" style="float:none;">';
|
||||
$ehorus_tab['sub_menu'] .= '<a class="tab_terminal" href="'.$tab_url.'&client_tab=terminal">';
|
||||
$ehorus_tab['sub_menu'] .= '<li class="nomn tab_godmode" style="text-align: center;">'.html_print_image('images/ehorus/terminal.png', true, [ 'title' => __('Terminal')]);
|
||||
|
@ -1279,7 +1311,7 @@ $onheader = [
|
|||
];
|
||||
|
||||
// Added after it exists
|
||||
// If the agent has incidents associated
|
||||
// If the agent has incidents associated.
|
||||
if ($total_incidents) {
|
||||
$onheader['incident'] = $incidenttab;
|
||||
}
|
||||
|
@ -1288,23 +1320,23 @@ if ($agent['url_address'] != '') {
|
|||
$onheader['url_address'] = $urladdresstab;
|
||||
}
|
||||
|
||||
// If the log viewer tab exists
|
||||
// If the log viewer tab exists.
|
||||
if (isset($log_viewer_tab) && !empty($log_viewer_tab)) {
|
||||
$onheader['log_viewer'] = $log_viewer_tab;
|
||||
}
|
||||
|
||||
// If the ehorus id exists
|
||||
// If the ehorus id exists.
|
||||
if (isset($ehorus_tab) && !empty($ehorus_tab)) {
|
||||
$onheader['ehorus'] = $ehorus_tab;
|
||||
}
|
||||
|
||||
// Tabs for extensions
|
||||
// Tabs for extensions.
|
||||
foreach ($config['extensions'] as $extension) {
|
||||
if (isset($extension['extension_ope_tab']) && !isset($extension['extension_god_tab'])) {
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, $extension['extension_ope_tab']['acl'])) {
|
||||
// VMware extension is only available for VMware OS
|
||||
// VMware extension is only available for VMware OS.
|
||||
if ($extension['extension_ope_tab']['id'] === 'vmware_manager') {
|
||||
// Check if OS is vmware
|
||||
// Check if OS is vmware.
|
||||
$id_remote_field = db_get_value(
|
||||
'id_field',
|
||||
'tagent_custom_fields',
|
||||
|
@ -1326,13 +1358,13 @@ foreach ($config['extensions'] as $extension) {
|
|||
}
|
||||
}
|
||||
|
||||
// RHEV extension is only available for RHEV Virtual Machines
|
||||
// RHEV extension is only available for RHEV Virtual Machines.
|
||||
if ($extension['extension_ope_tab']['id'] === 'rhev_manager') {
|
||||
// Get id for remote field "rhev_type"
|
||||
// Get id for remote field "rhev_type".
|
||||
$id_remote_field = db_get_value('id_field', 'tagent_custom_fields', 'name', 'rhev_type');
|
||||
// Get rhev type for this agent
|
||||
// Get rhev type for this agent.
|
||||
$rhev_type = db_get_value_filter('description', 'tagent_custom_data', ['id_field' => $id_remote_field, 'id_agent' => $agent['id_agente']]);
|
||||
// Check if rhev type is a vm
|
||||
// Check if rhev type is a vm.
|
||||
if ($rhev_type != 'vm') {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
<?php
|
||||
/**
|
||||
* Pandora FMS - http://pandorafms.com
|
||||
* ==================================================
|
||||
* Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
if (check_acl($id_user, 0, 'ER')) {
|
||||
$groups = users_get_groups($id_user, 'ER');
|
||||
} else if (check_acl($id_user, 0, 'EW')) {
|
||||
|
@ -19,7 +21,6 @@ if (check_acl($id_user, 0, 'ER')) {
|
|||
$groups = users_get_groups($id_user, 'EM');
|
||||
}
|
||||
|
||||
|
||||
$propagate = db_get_value('propagate', 'tgrupo', 'id_grupo', $id_group);
|
||||
|
||||
if ($id_group > 0) {
|
||||
|
@ -41,24 +42,67 @@ if ($id_group > 0) {
|
|||
$childrens_ids = array_keys($groups);
|
||||
}
|
||||
|
||||
// Group selection
|
||||
if (!isset($date_from)) {
|
||||
$date_from = '';
|
||||
}
|
||||
|
||||
if (!isset($date_to)) {
|
||||
$date_to = '';
|
||||
}
|
||||
|
||||
if (($date_from === '') && ($date_to === '')) {
|
||||
if ($event_view_hr > 0) {
|
||||
$filter_resume['hours_max'] = $event_view_hr;
|
||||
$unixtime = (get_system_time() - ($event_view_hr * SECONDS_1HOUR));
|
||||
$sql_post .= ' AND (utimestamp > '.$unixtime.')';
|
||||
}
|
||||
} else {
|
||||
// Some of this values will have the user's timezone,
|
||||
// so we need to reverse it to the system's timezone
|
||||
// before using it into the db.
|
||||
$fixed_offset = get_fixed_offset();
|
||||
|
||||
if (!empty($date_from)) {
|
||||
if (empty($time_from)) {
|
||||
$time_from = '00:00:00';
|
||||
}
|
||||
|
||||
$utimestamp_from = (strtotime($date_from.' '.$time_from) - $fixed_offset);
|
||||
$filter_resume['time_from'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_from);
|
||||
$sql_post .= ' AND (utimestamp >= '.$utimestamp_from.')';
|
||||
}
|
||||
|
||||
if (!empty($date_to)) {
|
||||
if (empty($time_to)) {
|
||||
$time_to = '23:59:59';
|
||||
}
|
||||
|
||||
$utimestamp_to = (strtotime($date_to.' '.$time_to) - $fixed_offset);
|
||||
$filter_resume['time_to'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_to);
|
||||
$sql_post .= ' AND (utimestamp <= '.$utimestamp_to.')';
|
||||
}
|
||||
}
|
||||
|
||||
// Group selection.
|
||||
if ($id_group > 0 && in_array($id_group, array_keys($groups))) {
|
||||
if ($propagate) {
|
||||
$childrens_str = implode(',', $childrens_ids);
|
||||
$sql_post = " AND (id_grupo IN ($childrens_str) OR id_group IN ($childrens_str))";
|
||||
$sql_post .= " AND (id_grupo IN ($childrens_str) OR id_group IN ($childrens_str))";
|
||||
} else {
|
||||
// If a group is selected and it's in the groups allowed
|
||||
$sql_post = " AND (id_grupo = $id_group OR id_group = $id_group)";
|
||||
// If a group is selected and it's in the groups allowed.
|
||||
$sql_post .= " AND (id_grupo = $id_group OR id_group = $id_group)";
|
||||
}
|
||||
} else {
|
||||
$sql_post = sprintf(
|
||||
' AND (id_grupo IN (%s) OR id_group IN (%s)) ',
|
||||
implode(',', array_keys($groups)),
|
||||
implode(',', array_keys($groups))
|
||||
);
|
||||
if (!users_is_admin() && !users_can_manage_group_all('ER')) {
|
||||
$sql_post .= sprintf(
|
||||
' AND (id_grupo IN (%s) OR id_group IN (%s)) ',
|
||||
implode(',', array_keys($groups)),
|
||||
implode(',', array_keys($groups))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Skip system messages if user is not PM
|
||||
// Skip system messages if user is not PM.
|
||||
if (!check_acl($id_user, 0, 'PM')) {
|
||||
$sql_post .= ' AND id_grupo != 0';
|
||||
}
|
||||
|
@ -164,13 +208,13 @@ if ($source != '') {
|
|||
$sql_post .= " AND source LIKE '%$source%'";
|
||||
}
|
||||
|
||||
// In metaconsole mode the agent search is performed by name
|
||||
// In metaconsole mode the agent search is performed by name.
|
||||
if ($meta) {
|
||||
$text_agent = get_parameter('text_agent', '');
|
||||
$id_agent = get_parameter('id_agent', 0);
|
||||
if ($id_agent) {
|
||||
$sql_post .= ' AND agent_name IN (SELECT nombre FROM tmetaconsole_agent WHERE
|
||||
id_tagente ='.$id_agent." AND alias LIKE '".io_safe_input($text_agent)."')";
|
||||
id_tagente ='.$id_agent." AND alias LIKE '".$text_agent."')";
|
||||
$filter_resume['agent'] = $text_agent;
|
||||
}
|
||||
} else {
|
||||
|
@ -179,7 +223,7 @@ if ($meta) {
|
|||
break;
|
||||
|
||||
case -1:
|
||||
// Agent doesnt exist. No results will returned
|
||||
// Agent doesnt exist. No results will returned.
|
||||
$sql_post .= ' AND 1 = 0';
|
||||
break;
|
||||
|
||||
|
@ -192,9 +236,7 @@ if ($meta) {
|
|||
|
||||
|
||||
|
||||
if ($meta) {
|
||||
// There is another filter.
|
||||
} else {
|
||||
if (!$meta) {
|
||||
if (!empty($text_module)) {
|
||||
$filter_resume['module'] = $text_module;
|
||||
$sql_post .= " AND id_agentmodule IN (
|
||||
|
@ -210,48 +252,7 @@ if ($id_user_ack != '0') {
|
|||
$sql_post .= " AND id_usuario = '".$id_user_ack."'";
|
||||
}
|
||||
|
||||
if (!isset($date_from)) {
|
||||
$date_from = '';
|
||||
}
|
||||
|
||||
if (!isset($date_to)) {
|
||||
$date_to = '';
|
||||
}
|
||||
|
||||
if (($date_from == '') && ($date_to == '')) {
|
||||
if ($event_view_hr > 0) {
|
||||
$filter_resume['hours_max'] = $event_view_hr;
|
||||
$unixtime = (get_system_time() - ($event_view_hr * SECONDS_1HOUR));
|
||||
$sql_post .= ' AND (utimestamp > '.$unixtime.')';
|
||||
}
|
||||
} else {
|
||||
// Some of this values will have the user's timezone,
|
||||
// so we need to reverse it to the system's timezone
|
||||
// before using it into the db
|
||||
$fixed_offset = get_fixed_offset();
|
||||
|
||||
if (!empty($date_from)) {
|
||||
if (empty($time_from)) {
|
||||
$time_from = '00:00:00';
|
||||
}
|
||||
|
||||
$utimestamp_from = (strtotime($date_from.' '.$time_from) - $fixed_offset);
|
||||
$filter_resume['time_from'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_from);
|
||||
$sql_post .= ' AND (utimestamp >= '.$utimestamp_from.')';
|
||||
}
|
||||
|
||||
if (!empty($date_to)) {
|
||||
if (empty($time_to)) {
|
||||
$time_to = '23:59:59';
|
||||
}
|
||||
|
||||
$utimestamp_to = (strtotime($date_to.' '.$time_to) - $fixed_offset);
|
||||
$filter_resume['time_to'] = date(DATE_FORMAT.' '.TIME_FORMAT, $utimestamp_to);
|
||||
$sql_post .= ' AND (utimestamp <= '.$utimestamp_to.')';
|
||||
}
|
||||
}
|
||||
|
||||
// Search by tag
|
||||
// Search by tag.
|
||||
if (!empty($tag_with)) {
|
||||
if (!users_is_admin()) {
|
||||
$user_tags = array_flip(tags_get_tags_for_module_search());
|
||||
|
@ -305,7 +306,7 @@ if (!empty($tag_without)) {
|
|||
$sql_post .= ' ) ';
|
||||
}
|
||||
|
||||
// Filter/Only alerts
|
||||
// Filter/Only alerts.
|
||||
if (isset($filter_only_alert)) {
|
||||
if ($filter_only_alert == 0) {
|
||||
$filter_resume['alerts'] = $filter_only_alert;
|
||||
|
@ -316,7 +317,7 @@ if (isset($filter_only_alert)) {
|
|||
}
|
||||
}
|
||||
|
||||
// Tags ACLS
|
||||
// Tags ACLS.
|
||||
if ($id_group > 0 && in_array($id_group, array_keys($groups))) {
|
||||
$group_array = (array) $id_group;
|
||||
} else {
|
||||
|
@ -335,7 +336,7 @@ if (check_acl($id_user, 0, 'ER')) {
|
|||
[],
|
||||
true
|
||||
);
|
||||
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)"
|
||||
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)".
|
||||
} else if (check_acl($id_user, 0, 'EW')) {
|
||||
$tags_acls_condition = tags_get_acl_tags(
|
||||
$id_user,
|
||||
|
@ -348,7 +349,7 @@ if (check_acl($id_user, 0, 'ER')) {
|
|||
[],
|
||||
true
|
||||
);
|
||||
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)"
|
||||
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)".
|
||||
} else if (check_acl($id_user, 0, 'EM')) {
|
||||
$tags_acls_condition = tags_get_acl_tags(
|
||||
$id_user,
|
||||
|
@ -361,14 +362,14 @@ if (check_acl($id_user, 0, 'ER')) {
|
|||
[],
|
||||
true
|
||||
);
|
||||
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)"
|
||||
// FORCE CHECK SQL "(TAG = tag1 AND id_grupo = 1)".
|
||||
}
|
||||
|
||||
if (($tags_acls_condition != ERR_WRONG_PARAMETERS) && ($tags_acls_condition != ERR_ACL) && ($tags_acls_condition != -110000)) {
|
||||
$sql_post .= $tags_acls_condition;
|
||||
}
|
||||
|
||||
// Metaconsole fitlers
|
||||
// Metaconsole fitlers.
|
||||
if ($meta) {
|
||||
if ($server_id) {
|
||||
$filter_resume['server'] = $server_id;
|
||||
|
|
|
@ -983,7 +983,11 @@ if ($group_rep == 2) {
|
|||
html_print_button(__('Execute event response'), 'submit_event_response', false, 'execute_event_response(true);', 'class="sub next"');
|
||||
echo "<span id='response_loading_dialog' style='display:none'>".html_print_image('images/spinner.gif', true).'</span>';
|
||||
echo '</form>';
|
||||
echo '<span id="max_custom_event_resp_msg" style="display:none; color:#FC4444; line-height: 200%;">'.__('A maximum of 10 event custom responses can be selected').'</span>';
|
||||
echo '<span id="max_custom_event_resp_msg" style="display:none; color:#FC4444; line-height: 200%;">';
|
||||
echo __(
|
||||
'A maximum of %s event custom responses can be selected',
|
||||
$config['max_execution_event_response']
|
||||
).'</span>';
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
@ -1012,7 +1016,7 @@ if ($group_rep == 2) {
|
|||
var total_checked = $(".chk_val:checked").length;
|
||||
|
||||
// Limit number of events to apply custom responses to for performance reasons
|
||||
if (total_checked > 10) {
|
||||
if (total_checked > <?php echo $config['max_execution_event_response']; ?> ) {
|
||||
$('#max_custom_event_resp_msg').show();
|
||||
return;
|
||||
}
|
||||
|
@ -1022,18 +1026,22 @@ if ($group_rep == 2) {
|
|||
$('#response_loading_dialog').show(function() {
|
||||
|
||||
$(".chk_val").each(function() {
|
||||
|
||||
if ($(this).is(":checked")) {
|
||||
//var server_id = $('#hidden-server_id_'+).
|
||||
event_id = $(this).val();
|
||||
server_id = $('#hidden-server_id_'+event_id).val();
|
||||
|
||||
response['target'] = get_response_target(event_id, response_id, server_id);
|
||||
|
||||
response['target'] = get_response_target(
|
||||
event_id,
|
||||
response_id,
|
||||
server_id
|
||||
);
|
||||
if (total_checked-1 === counter) end=1;
|
||||
|
||||
show_massive_response_dialog(event_id, response_id, response, counter, end);
|
||||
|
||||
show_massive_response_dialog(
|
||||
event_id,
|
||||
response_id,
|
||||
response,
|
||||
counter,
|
||||
end
|
||||
);
|
||||
counter++;
|
||||
}
|
||||
});
|
||||
|
@ -1087,4 +1095,3 @@ if ($group_rep == 2) {
|
|||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
// Load global vars
|
||||
global $config;
|
||||
|
||||
// Load the header
|
||||
|
@ -35,7 +50,7 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
$upd_info['language'] = get_parameter_post('language', $user_info['language']);
|
||||
$upd_info['timezone'] = get_parameter_post('timezone', '');
|
||||
$upd_info['id_skin'] = get_parameter('skin', $user_info['id_skin']);
|
||||
$upd_info['id_filter'] = get_parameter('event_filter', null);
|
||||
$upd_info['default_event_filter'] = get_parameter('event_filter', null);
|
||||
$upd_info['block_size'] = get_parameter('block_size', $config['block_size']);
|
||||
$upd_info['firstname'] = get_parameter('newsletter_reminder', $user_info['first_name']);
|
||||
$default_block_size = get_parameter('default_block_size', 0);
|
||||
|
@ -48,7 +63,7 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
$dashboard = get_parameter('dashboard', '');
|
||||
$visual_console = get_parameter('visual_console', '');
|
||||
|
||||
// save autorefresh list
|
||||
// Save autorefresh list.
|
||||
$autorefresh_list = get_parameter_post('autorefresh_list');
|
||||
if (($autorefresh_list[0] === '') || ($autorefresh_list[0] === '0')) {
|
||||
$upd_info['autorefresh_white_list'] = '';
|
||||
|
@ -62,7 +77,10 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
|
||||
$section = io_safe_output($upd_info['section']);
|
||||
|
||||
if (($section == 'Event list') || ($section == 'Group view') || ($section == 'Alert detail') || ($section == 'Tactical view') || ($section == 'Default')) {
|
||||
if (($section == 'Event list') || ($section == 'Group view')
|
||||
|| ($section == 'Alert detail') || ($section == 'Tactical view')
|
||||
|| ($section == 'Default')
|
||||
) {
|
||||
$upd_info['data_section'] = '';
|
||||
} else if ($section == 'Dashboard') {
|
||||
$upd_info['data_section'] = $dashboard;
|
||||
|
@ -72,7 +90,9 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
|
||||
if (!empty($password_new)) {
|
||||
if ($config['user_can_update_password'] && $password_confirm == $password_new) {
|
||||
if ((!$is_admin || $config['enable_pass_policy_admin']) && $config['enable_pass_policy']) {
|
||||
if ((!$is_admin || $config['enable_pass_policy_admin'])
|
||||
&& $config['enable_pass_policy']
|
||||
) {
|
||||
$pass_ok = login_validate_pass($password_new, $id, true);
|
||||
if ($pass_ok != 1) {
|
||||
ui_print_error_message($pass_ok);
|
||||
|
@ -81,21 +101,11 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
if ($return) {
|
||||
$return2 = save_pass_history($id, $password_new);
|
||||
}
|
||||
|
||||
/*
|
||||
ui_print_result_message ($return,
|
||||
__('Password successfully updated'),
|
||||
__('Error updating passwords: %s', $config['auth_error']));*/
|
||||
}
|
||||
} else {
|
||||
$return = update_user_password($id, $password_new);
|
||||
/*
|
||||
ui_print_result_message ($return,
|
||||
__('Password successfully updated'),
|
||||
__('Error updating passwords: %s', $config['auth_error']));*/
|
||||
}
|
||||
} else if ($password_new !== 'NON-INIT') {
|
||||
// ui_print_error_message (__('Passwords didn\'t match or other problem encountered while updating passwords'));
|
||||
$error_msg = __('Passwords didn\'t match or other problem encountered while updating passwords');
|
||||
}
|
||||
} else if (empty($password_new) && empty($password_confirm)) {
|
||||
|
@ -104,16 +114,18 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
$return = false;
|
||||
}
|
||||
|
||||
// No need to display "error" here, because when no update is needed (no changes in data)
|
||||
// SQL function returns 0 (FALSE), but is not an error, just no change. Previous error
|
||||
// message could be confussing to the user.
|
||||
// No need to display "error" here, because when no update is needed
|
||||
// (no changes in data) SQL function returns 0 (FALSE), but is not an error,
|
||||
// just no change. Previous error message could be confussing to the user.
|
||||
if ($return) {
|
||||
if (!empty($password_new) && !empty($password_confirm)) {
|
||||
$success_msg = __('Password successfully updated');
|
||||
}
|
||||
|
||||
// if info is valid then proceed with update
|
||||
if ((filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL) || $upd_info['email'] == '') && (preg_match('/^[0-9- ]+$/D', $upd_info['phone']) || $upd_info['phone'] == '')) {
|
||||
// If info is valid then proceed with update.
|
||||
if ((filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL) || $upd_info['email'] == '')
|
||||
&& (preg_match('/^[0-9- ]+$/D', $upd_info['phone']) || $upd_info['phone'] == '')
|
||||
) {
|
||||
$return_update_user = update_user($id, $upd_info);
|
||||
|
||||
if ($return_update_user === false) {
|
||||
|
@ -129,7 +141,12 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
}
|
||||
}
|
||||
|
||||
ui_print_result_message($return, $success_msg, $error_msg, $user_auth_error);
|
||||
ui_print_result_message(
|
||||
$return,
|
||||
$success_msg,
|
||||
$error_msg,
|
||||
$user_auth_error
|
||||
);
|
||||
} else if (!filter_var($upd_info['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
ui_print_error_message(__('Please enter a valid email'));
|
||||
} else if (!preg_match('/^[0-9- ]+$/D', $upd_info['phone'])) {
|
||||
|
@ -144,11 +161,16 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
|
||||
$user_auth_error = $config['auth_error'];
|
||||
|
||||
ui_print_result_message($return, $success_msg, $error_msg, $user_auth_error);
|
||||
ui_print_result_message(
|
||||
$return,
|
||||
$success_msg,
|
||||
$error_msg,
|
||||
$user_auth_error
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Prints action status for current message
|
||||
// Prints action status for current message.
|
||||
if ($status != -1) {
|
||||
ui_print_result_message(
|
||||
$status,
|
||||
|
@ -178,7 +200,20 @@ $data = [];
|
|||
$data[0] = '<span style="width:50%;float:left;"><b>'.__('User ID').'</b></span>';
|
||||
$data[0] .= $jump.'<span style="font-weight: normal;width:20%;float:left;">'.$id.'</span>';
|
||||
$data[1] = '<span style="width:40%;float:left;line-height:20px;"><b>'.__('Full (display) name').'</b></span>';
|
||||
$data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">'.html_print_input_text_extended('fullname', $user_info['fullname'], 'fullname', '', 20, 100, $view_mode, '', 'class="input"', true).'</span>';
|
||||
$data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">';
|
||||
$data[1] .= html_print_input_text_extended(
|
||||
'fullname',
|
||||
$user_info['fullname'],
|
||||
'fullname',
|
||||
'',
|
||||
20,
|
||||
100,
|
||||
$view_mode,
|
||||
'',
|
||||
'class="input"',
|
||||
true
|
||||
).'</span>';
|
||||
|
||||
// Show "Picture" (in future versions, why not, allow users to upload it's own avatar here.
|
||||
if (is_user_admin($id)) {
|
||||
$data[2] = html_print_image('images/people_1.png', true);
|
||||
|
@ -325,7 +360,7 @@ if (!$meta) {
|
|||
|
||||
|
||||
|
||||
// User only can change skins if has more than one group
|
||||
// User only can change skins if has more than one group.
|
||||
$data[1] = '';
|
||||
if (function_exists('skins_print_select')) {
|
||||
if (count($usr_groups) > 1) {
|
||||
|
@ -345,18 +380,21 @@ $table->rowclass[] = '';
|
|||
$table->rowstyle[] = 'font-weight: bold;';
|
||||
$table->data[] = $data;
|
||||
|
||||
// Double auth
|
||||
// Double auth.
|
||||
$double_auth_enabled = (bool) db_get_value('id', 'tuser_double_auth', 'id_user', $config['id_user']);
|
||||
$data = [];
|
||||
$data[0] = '<span style="width:50%;float:left;">'.__('Double authentication').'</span>';
|
||||
$data[0] .= $jump;
|
||||
$data[0] .= '<span style="width:20%;float:left;line-height:20px;">'.html_print_checkbox('double_auth', 1, $double_auth_enabled, true).'</span>';
|
||||
if ($config['double_auth_enabled']) {
|
||||
$data[0] = '<span style="width:50%;float:left;">'.__('Double authentication').'</span>';
|
||||
$data[0] .= $jump;
|
||||
$data[0] .= '<span style="width:20%;float:left;line-height:20px;">'.html_print_checkbox('double_auth', 1, $double_auth_enabled, true).'</span>';
|
||||
}
|
||||
|
||||
if ($double_auth_enabled) {
|
||||
$data[0] .= $jump;
|
||||
$data[0] .= html_print_button(__('Show information'), 'show_info', false, 'javascript:show_double_auth_info();', '', true);
|
||||
}
|
||||
|
||||
// Dialog
|
||||
// Dialog.
|
||||
$data[0] .= '<div id="dialog-double_auth"><div id="dialog-double_auth-container"></div></div>';
|
||||
|
||||
if (check_acl($config['id_user'], 0, 'ER')) {
|
||||
|
@ -364,14 +402,13 @@ if (check_acl($config['id_user'], 0, 'ER')) {
|
|||
$data[1] .= $jump.'<span style="width:20%;float:left;line-height:20px;">'.html_print_select_from_sql(
|
||||
'SELECT id_filter, id_name FROM tevent_filter',
|
||||
'event_filter',
|
||||
$user_info['id_filter'],
|
||||
$user_info['default_event_filter'],
|
||||
'',
|
||||
__('None'),
|
||||
null,
|
||||
true
|
||||
).'</span>';
|
||||
}//end if
|
||||
else if (license_free()) {
|
||||
} else if (license_free()) {
|
||||
$data[1] = __('Newsletter Subscribed').':';
|
||||
if ($user_info['middlename']) {
|
||||
$data[1] .= $jump.'<span style="font-weight:initial;">'.__('Already subscribed to %s newsletter', get_product_name()).'</span>';
|
||||
|
@ -422,7 +459,8 @@ if (!isset($autorefresh_list)) {
|
|||
$autorefresh_list[0] = __('None');
|
||||
} else {
|
||||
$aux = [];
|
||||
for ($i = 0; $i < count($autorefresh_list); $i++) {
|
||||
$count_autorefresh_list = count($autorefresh_list);
|
||||
for ($i = 0; $i < $count_autorefresh_list; $i++) {
|
||||
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
|
||||
unset($autorefresh_list_out[$autorefresh_list[$i]]);
|
||||
$autorefresh_list[$i] = $aux;
|
||||
|
@ -435,7 +473,8 @@ if (!isset($autorefresh_list)) {
|
|||
$autorefresh_list[0] = __('None');
|
||||
} else {
|
||||
$aux = [];
|
||||
for ($i = 0; $i < count($autorefresh_list); $i++) {
|
||||
$count_autorefresh_list = count($autorefresh_list);
|
||||
for ($i = 0; $i < $count_autorefresh_list; $i++) {
|
||||
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
|
||||
unset($autorefresh_list_out[$autorefresh_list[$i]]);
|
||||
$autorefresh_list[$i] = $aux;
|
||||
|
@ -445,10 +484,39 @@ if (!isset($autorefresh_list)) {
|
|||
}
|
||||
}
|
||||
|
||||
$data[0] = _('Autorefresh').ui_print_help_tip(__('This will activate autorefresh in selected pages'), true);
|
||||
$select_out = html_print_select($autorefresh_list_out, 'autorefresh_list_out[]', '', '', '', '', true, true, true, '', false, 'width:200px');
|
||||
$data[0] = _('Autorefresh').ui_print_help_tip(
|
||||
__('This will activate autorefresh in selected pages'),
|
||||
true
|
||||
);
|
||||
$select_out = html_print_select(
|
||||
$autorefresh_list_out,
|
||||
'autorefresh_list_out[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:200px'
|
||||
);
|
||||
$arrows = ' ';
|
||||
$select_in = html_print_select($autorefresh_list, 'autorefresh_list[]', '', '', '', '', true, true, true, '', false, 'width:200px');
|
||||
$select_in = html_print_select(
|
||||
$autorefresh_list,
|
||||
'autorefresh_list[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:200px'
|
||||
);
|
||||
|
||||
$table_ichanges = '<table style="position:relative;left:160px;">
|
||||
<tr>
|
||||
|
@ -459,19 +527,50 @@ $table_ichanges = '<table style="position:relative;left:160px;">
|
|||
<tr>
|
||||
<td>'.$select_out.'</td>
|
||||
<td>
|
||||
<a href="javascript:">'.html_print_image('images/darrowright.png', true, ['id' => 'right_autorefreshlist', 'alt' => __('Push selected pages into autorefresh list'), 'title' => __('Push selected pages into autorefresh list')]).'</a>
|
||||
<a href="javascript:">'.html_print_image(
|
||||
'images/darrowright.png',
|
||||
true,
|
||||
[
|
||||
'id' => 'right_autorefreshlist',
|
||||
'alt' => __('Push selected pages into autorefresh list'),
|
||||
'title' => __('Push selected pages into autorefresh list'),
|
||||
]
|
||||
).'</a>
|
||||
<br><br>
|
||||
<a href="javascript:">'.html_print_image('images/darrowleft.png', true, ['id' => 'left_autorefreshlist', 'alt' => __('Pop selected pages out of autorefresh list'), 'title' => __('Pop selected pages out of autorefresh list')]).'</a>
|
||||
<a href="javascript:">'.html_print_image(
|
||||
'images/darrowleft.png',
|
||||
true,
|
||||
[
|
||||
'id' => 'left_autorefreshlist',
|
||||
'alt' => __('Pop selected pages out of autorefresh list'),
|
||||
'title' => __('Pop selected pages out of autorefresh list'),
|
||||
]
|
||||
).'</a>
|
||||
</td>
|
||||
<td>'.$select_in.'</td>
|
||||
</tr>
|
||||
</table>';
|
||||
$data[0] .= $table_ichanges;
|
||||
|
||||
// time autorefresh
|
||||
// Time autorefresh.
|
||||
$times = get_refresh_time_array();
|
||||
$data[1] = '<span style="width:40%;float:left;">'.__('Time autorefresh').ui_print_help_tip(__('Interval of autorefresh of the elements, by default they are 30 seconds, needing to enable the autorefresh first'), true).'</span>';
|
||||
$data[1] .= $jump.'<span style="width:20%;float:left;">'.html_print_select($times, 'time_autorefresh', $user_info['time_autorefresh'], '', '', '', true, false, false).'</span>';
|
||||
$data[1] = '<span style="width:40%;float:left;">'.__('Time autorefresh');
|
||||
$data[1] .= ui_print_help_tip(
|
||||
__('Interval of autorefresh of the elements, by default they are 30 seconds, needing to enable the autorefresh first'),
|
||||
true
|
||||
).'</span>';
|
||||
$data[1] .= $jump.'<span style="width:20%;float:left;">';
|
||||
$data[1] .= html_print_select(
|
||||
$times,
|
||||
'time_autorefresh',
|
||||
$user_info['time_autorefresh'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false
|
||||
).'</span>';
|
||||
|
||||
$table->rowclass[] = '';
|
||||
$table->rowstyle[] = 'font-weight: bold;vertical-align: top';
|
||||
|
@ -485,14 +584,23 @@ $table->rowstyle[] = 'font-weight: bold;';
|
|||
$table->data[] = $data;
|
||||
|
||||
$data = [];
|
||||
$data[0] = '<div style="width:98%">'.html_print_textarea('comments', 2, 60, $user_info['comments'], ($view_mode ? 'readonly="readonly"' : ''), true).'</div>';
|
||||
$data[0] = '<div style="width:98%">';
|
||||
$data[0] .= html_print_textarea(
|
||||
'comments',
|
||||
2,
|
||||
60,
|
||||
$user_info['comments'],
|
||||
(($view_mode) ? 'readonly="readonly"' : ''),
|
||||
true
|
||||
);
|
||||
$data[0] .= '</div>';
|
||||
$data[0] .= html_print_input_hidden('quick_language_change', 1, true);
|
||||
$table->colspan[count($table->data)][0] = 3;
|
||||
$table->rowclass[] = '';
|
||||
$table->rowstyle[] = '';
|
||||
$table->data[] = $data;
|
||||
|
||||
echo '<form name="user_mod" method="post" action="'.$urls['main'].'&modified=1&id='.$id.'&pure='.$config['pure'].'">';
|
||||
echo '<form name="user_mod" method="post" action="'.$url.'&modified=1&id='.$id.'&pure='.$config['pure'].'">';
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
|
@ -551,9 +659,15 @@ if ($result === false) {
|
|||
foreach ($result as $profile) {
|
||||
$data[0] = '<b>'.profile_get_name($profile['id_perfil']).'</b>';
|
||||
if ($config['show_group_name']) {
|
||||
$data[1] = ui_print_group_icon($profile['id_grupo'], true).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'">'.' '.'</a>';
|
||||
$data[1] = ui_print_group_icon(
|
||||
$profile['id_grupo'],
|
||||
true
|
||||
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'"> </a>';
|
||||
} else {
|
||||
$data[1] = ui_print_group_icon($profile['id_grupo'], true).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'">'.' '.ui_print_truncate_text(groups_get_name($profile['id_grupo'], true), GENERIC_SIZE_TEXT).'</a>';
|
||||
$data[1] = ui_print_group_icon(
|
||||
$profile['id_grupo'],
|
||||
true
|
||||
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'"> '.ui_print_truncate_text(groups_get_name($profile['id_grupo'], true), GENERIC_SIZE_TEXT).'</a>';
|
||||
}
|
||||
|
||||
$tags_ids = explode(',', $profile['tags']);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.731
|
||||
%define release 190208
|
||||
%define release 190222
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
@ -26,7 +26,7 @@ BuildRoot: %{_tmppath}/%{name}
|
|||
BuildArch: noarch
|
||||
AutoReq: 0
|
||||
Requires: %{httpd_name} >= 2.0.0
|
||||
Requires: mod_php >= 5.2.0
|
||||
Requires: mod_php >= 7.0
|
||||
Requires: php-gd, php-ldap, php-snmp, php-session, php-gettext
|
||||
Requires: php-mysqlnd, php-mbstring, php-zip, php-zlib, php-curl
|
||||
Requires: xorg-x11-fonts-75dpi, xorg-x11-fonts-misc, php-pecl-zip
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.731
|
||||
%define release 190208
|
||||
%define release 190222
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
@ -29,7 +29,7 @@ BuildArch: noarch
|
|||
AutoReq: 0
|
||||
Requires: apache2
|
||||
Requires: apache2-mod_php7
|
||||
Requires: php >= 4.3.0
|
||||
Requires: php >= 7.0
|
||||
Requires: php-gd, php-snmp, php-json, php-gettext
|
||||
Requires: php-mysqlnd, php-ldap, php-mbstring, php
|
||||
Requires: graphviz, xorg-x11-fonts-core, graphviz-gd
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-server
|
||||
Version: 7.0NG.731-190208
|
||||
Version: 7.0NG.731-190222
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.731-190208"
|
||||
pandora_version="7.0NG.731-190222"
|
||||
|
||||
package_cpan=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -45,7 +45,7 @@ our @EXPORT = qw(
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.731";
|
||||
my $pandora_build = "190208";
|
||||
my $pandora_build = "190222";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
|
|
|
@ -237,6 +237,7 @@ our @EXPORT = qw(
|
|||
pandora_self_monitoring
|
||||
pandora_process_policy_queue
|
||||
subst_alert_macros
|
||||
subst_column_macros
|
||||
locate_agent
|
||||
get_agent
|
||||
get_agent_from_alias
|
||||
|
@ -3472,7 +3473,16 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
|
|||
$alert->{'oid'} = decode_entities($alert->{'oid'});
|
||||
my $oid = $alert->{'oid'};
|
||||
if ($oid ne '') {
|
||||
next if (index ($trap_oid, $oid) == -1 && index ($trap_oid_text, $oid) == -1);
|
||||
my $term = substr($oid, -1);
|
||||
# Strict match.
|
||||
if ($term eq '$') {
|
||||
chop($oid);
|
||||
next if ($trap_oid ne $oid && $trap_oid_text ne $oid);
|
||||
}
|
||||
# Partial match.
|
||||
else {
|
||||
next if (index ($trap_oid, $oid) == -1 && index ($trap_oid_text, $oid) == -1);
|
||||
}
|
||||
$alert_data .= "OID: $oid ";
|
||||
}
|
||||
|
||||
|
@ -3508,6 +3518,7 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
|
|||
|
||||
# Specific SNMP Trap alert macros for regexp selectors in trap info
|
||||
my %macros;
|
||||
$macros{'_trap_id_'} = $trap_id;
|
||||
$macros{'_snmp_oid_'} = $trap_oid;
|
||||
$macros{'_snmp_value_'} = $trap_value;
|
||||
|
||||
|
@ -3761,11 +3772,6 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
##########################################################################
|
||||
# Utility functions, not to be exported.
|
||||
##########################################################################
|
||||
|
||||
##########################################################################
|
||||
# Search string for macros and substitutes them with their values.
|
||||
##########################################################################
|
||||
|
@ -3800,6 +3806,19 @@ sub subst_alert_macros ($$;$$$$) {
|
|||
return $string;
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
# Substitute macros if the string begins with an underscore.
|
||||
##########################################################################
|
||||
sub subst_column_macros ($$;$$$$) {
|
||||
my ($string, $macros, $pa_config, $dbh, $agent, $module) = @_;
|
||||
|
||||
# Do not attempt to substitute macros unless the string
|
||||
# begins with an underscore.
|
||||
return $string unless substr($string, 0, 1) eq '_';
|
||||
|
||||
return subst_alert_macros($string, $macros, $pa_config, $dbh, $agent, $module);
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
# Load macros that access the database on demand.
|
||||
##########################################################################
|
||||
|
@ -3828,9 +3847,16 @@ sub on_demand_macro($$$$$$) {
|
|||
} elsif ($macro eq '_name_tag_') {
|
||||
return (defined ($module)) ? pandora_get_module_tags ($pa_config, $dbh, $module->{'id_agente_modulo'}) : '';
|
||||
} elsif ($macro =~ /_agentcustomfield_(\d+)_/) {
|
||||
return '' unless defined ($agent);
|
||||
my $agent_id = undef;
|
||||
if (defined($module)) {
|
||||
$agent_id = $module->{'id_agente'};
|
||||
} elsif (defined($agent)) {
|
||||
$agent_id = $agent->{'id_agente'};
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
my $field_number = $1;
|
||||
my $field_value = get_db_value($dbh, 'SELECT description FROM tagent_custom_data WHERE id_field=? AND id_agent=?', $field_number, $agent->{'id_agente'});
|
||||
my $field_value = get_db_value($dbh, 'SELECT description FROM tagent_custom_data WHERE id_field=? AND id_agent=?', $field_number, $agent_id);
|
||||
return (defined($field_value)) ? $field_value : '';
|
||||
} elsif ($macro eq '_prevdata_') {
|
||||
return '' unless defined ($module);
|
||||
|
@ -3894,6 +3920,10 @@ sub on_demand_macro($$$$$$) {
|
|||
}
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
# Utility functions, not to be exported.
|
||||
##########################################################################
|
||||
|
||||
##########################################################################
|
||||
# Process module data.
|
||||
##########################################################################
|
||||
|
|
|
@ -344,14 +344,20 @@ sub pandora_snmp_get_command ($$$$$$$$$$$) {
|
|||
sub pandora_query_snmp ($$$$) {
|
||||
my ($pa_config, $module, $ip_target, $dbh) = @_;
|
||||
|
||||
# Initialize macros.
|
||||
my %macros = (
|
||||
'_agentcustomfield_\d+_' => undef,
|
||||
);
|
||||
|
||||
|
||||
my $snmp_version = $module->{"tcp_send"}; # (1, 2, 2c or 3)
|
||||
my $snmp3_privacy_method = $module->{"custom_string_1"}; # DES/AES
|
||||
my $snmp3_privacy_pass = safe_output(pandora_output_password($pa_config, $module->{"custom_string_2"}));
|
||||
my $snmp3_privacy_pass = safe_output(pandora_output_password($pa_config, subst_column_macros($module->{"custom_string_2"}, \%macros, $pa_config, $dbh, undef, $module)));
|
||||
my $snmp3_security_level = $module->{"custom_string_3"}; # noAuthNoPriv|authNoPriv|authPriv
|
||||
my $snmp3_auth_user = safe_output($module->{"plugin_user"});
|
||||
my $snmp3_auth_pass = safe_output(pandora_output_password($pa_config, $module->{"plugin_pass"}));
|
||||
my $snmp3_auth_user = safe_output(subst_column_macros($module->{"plugin_user"}, \%macros, $pa_config, $dbh, undef, $module));
|
||||
my $snmp3_auth_pass = safe_output(pandora_output_password($pa_config, subst_column_macros($module->{"plugin_pass"}, \%macros, $pa_config, $dbh, undef, $module)));
|
||||
my $snmp3_auth_method = $module->{"plugin_parameter"}; #MD5/SHA1
|
||||
my $snmp_community = $module->{"snmp_community"};
|
||||
my $snmp_community = safe_output(subst_column_macros($module->{"snmp_community"}, \%macros, $pa_config, $dbh, undef, $module));
|
||||
my $snmp_target = $ip_target;
|
||||
my $snmp_oid = $module->{"snmp_oid"};
|
||||
my $snmp_port = $module->{"tcp_port"};
|
||||
|
|
|
@ -32,7 +32,7 @@ our @ISA = qw(Exporter);
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.731";
|
||||
my $pandora_build = "190208";
|
||||
my $pandora_build = "190222";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
|
|
|
@ -142,13 +142,21 @@ sub data_consumer ($$) {
|
|||
my $module = get_db_single_row ($dbh, 'SELECT * FROM tagente_modulo WHERE id_agente_modulo = ?', $module_id);
|
||||
return unless defined $module;
|
||||
|
||||
# Initialize macros.
|
||||
my %macros = (
|
||||
'_agentcustomfield_\d+_' => undef,
|
||||
);
|
||||
|
||||
# Build command to execute
|
||||
my $wmi_command = '';
|
||||
if (defined ($module->{'plugin_pass'}) && $module->{'plugin_pass'} ne "") {
|
||||
$wmi_command = $pa_config->{'wmi_client'} . ' -U "' . safe_output($module->{'plugin_user'}) . '"%"' . pandora_output_password($pa_config, $module->{'plugin_pass'}) . '"';
|
||||
my $user = safe_output(subst_column_macros($module->{'plugin_user'}, \%macros, $pa_config, $dbh, undef, $module));
|
||||
my $pass = safe_output(pandora_output_password($pa_config, subst_column_macros($module->{'plugin_pass'}, \%macros, $pa_config, $dbh, undef, $module)));
|
||||
$wmi_command = $pa_config->{'wmi_client'} . ' -U "' . $user . '"%"' . $pass . '"';
|
||||
}
|
||||
elsif (defined ($module->{'plugin_user'}) && $module->{'plugin_user'} ne "") {
|
||||
$wmi_command = $pa_config->{'wmi_client'} . ' -U "' . safe_output($module->{'plugin_user'}) . '"';
|
||||
my $user = safe_output(subst_column_macros($module->{'plugin_user'}, \%macros, $pa_config, $dbh, undef, $module));
|
||||
$wmi_command = $pa_config->{'wmi_client'} . ' -U "' . $user . '"';
|
||||
}
|
||||
else {
|
||||
$wmi_command = $pa_config->{'wmi_client'} . ' -N';
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.731
|
||||
%define release 190208
|
||||
%define release 190222
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.731
|
||||
%define release 190208
|
||||
%define release 190222
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.731"
|
||||
PI_BUILD="190208"
|
||||
PI_BUILD="190222"
|
||||
|
||||
MODE=$1
|
||||
if [ $# -gt 1 ]; then
|
||||
|
|
|
@ -34,7 +34,7 @@ use PandoraFMS::Config;
|
|||
use PandoraFMS::DB;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.731 PS190208";
|
||||
my $version = "7.0NG.731 PS190222";
|
||||
|
||||
# Pandora server configuration
|
||||
my %conf;
|
||||
|
@ -171,11 +171,6 @@ sub pandora_purgedb ($$) {
|
|||
if (!defined($conf->{'_string_purge'})){
|
||||
$conf->{'_string_purge'} = 7;
|
||||
}
|
||||
# Update alert with last_fired older than today - time_threshold
|
||||
my @templates = get_db_rows ($dbh, 'SELECT t1.id,t1.time_threshold FROM talert_templates t1 WHERE EXISTS ( SELECT * FROM talert_template_modules t2 WHERE t1.id = t2.id_alert_template );');
|
||||
foreach my $template(@templates) {
|
||||
db_do($dbh, 'UPDATE talert_template_modules SET times_fired = 0 WHERE id_alert_template = ? AND times_fired > 0 AND last_fired < (? - ?)',$template->{'id'},time(),$template->{'time_threshold'});
|
||||
}
|
||||
|
||||
if ($conf->{'_string_purge'} > 0) {
|
||||
$ulimit_access_timestamp = time() - 86400;
|
||||
|
|
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||
Encode::Locale::decode_argv;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.731 PS190208";
|
||||
my $version = "7.0NG.731 PS190222";
|
||||
|
||||
# save program name for logging
|
||||
my $progname = basename($0);
|
||||
|
|
Loading…
Reference in New Issue