Merge remote-tracking branch 'origin/develop' into ent-3426-No-desaparece-la-alerta-de-PhantomJS-en-windows

Conflicts:
	pandora_console/include/styles/pandora.css
	pandora_console/install.php


Former-commit-id: d74f5cb5c6ff0cc05542e63d1f8537f289eebfc8
This commit is contained in:
Tatiana Llorente 2019-02-14 16:41:17 +01:00
commit f849c2b0f0
54 changed files with 810 additions and 334 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.731-190207
Version: 7.0NG.731-190214
Architecture: all
Priority: optional
Section: admin

View File

@ -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-190207"
pandora_version="7.0NG.731-190214"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -42,7 +42,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.731';
use constant AGENT_BUILD => '190207';
use constant AGENT_BUILD => '190214';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.731
%define release 190207
%define release 190214
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.731
%define release 190207
%define release 190214
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.731"
PI_BUILD="190207"
PI_BUILD="190214"
OS_NAME=`uname -s`
FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{190207}
{190214}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.731(Build 190207)")
#define PANDORA_VERSION ("7.0NG.731(Build 190214)")
string pandora_path;
string pandora_dir;

View File

@ -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 190207))"
VALUE "ProductVersion", "(7.0NG.731(Build 190214))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.731-190207
Version: 7.0NG.731-190214
Architecture: all
Priority: optional
Section: admin

View File

@ -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-190207"
pandora_version="7.0NG.731-190214"
package_pear=0
package_pandora=1

View File

@ -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) {

View File

@ -945,6 +945,10 @@ if ($update_agent) {
$disabled ? '1' : '0',
]
);
// Validate alerts for disabled agents.
if ($disabled) {
alerts_validate_alert_agent($id_agente);
}
}
if ($tpolicy_group_old) {

View File

@ -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,
@ -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,

View File

@ -538,17 +538,22 @@ if ($tab == 'tree') {
$url_delete = 'index.php?sec=gagente&sec2=godmode/groups/group_list&delete_group=1&id_group='.$group['id_grupo'];
$table->data[$key][0] = $group['id_grupo'];
$table->data[$key][1] = "<a href='$url'>".$group['nombre'].'</a>';
$table->data[$key][2] = html_print_image(
'images/groups_small/'.$group['icon'].'.png',
true,
[
'style' => '',
'class' => 'bot',
'alt' => $group['nombre'],
'title' => $group['nombre'],
false, false, false, true
]
);
if ($group['icon'] != '') {
$table->data[$key][2] = html_print_image(
'images/groups_small/'.$group['icon'].'.png',
true,
[
'style' => '',
'class' => 'bot',
'alt' => $group['nombre'],
'title' => $group['nombre'],
false, false, false, true
]
);
} else {
$table->data[$key][2] = '';
}
// reporting_get_group_stats
$table->data[$key][3] = $group['disabled'] ? __('Disabled') : __('Enabled');

View File

@ -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) {

View File

@ -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;
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -125,22 +125,19 @@ $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[5][0] = __('Use realtime statistics');
$table_other->data[5][1] = __('Yes').'&nbsp;'.html_print_radio_button('realtimestats', 1, '', $config['realtimestats'], true).'&nbsp;&nbsp;';
$table_other->data[5][1] .= __('No').'&nbsp;'.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[7][0] = __('Use agent access graph').ui_print_help_icon('agent_access', true);
$table_other->data[7][1] = __('Yes').'&nbsp;'.html_print_radio_button('agentaccess', 1, '', $config['agentaccess'], true).'&nbsp;&nbsp;';
$table_other->data[7][1] .= __('No').'&nbsp;'.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[9][0] = __('Delete not init modules');
$table_other->data[9][1] = __('Yes').'&nbsp;'.html_print_radio_button('delete_notinit', 1, '', $config['delete_notinit'], true).'&nbsp;&nbsp;';
$table_other->data[9][1] .= __('No').'&nbsp;'.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);

View File

@ -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').'&nbsp;'.html_print_radio_button('fallback_local_auth', 1, '', $config['fallback_local_auth'], true).'&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;'.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').'&nbsp;'.html_print_radio_button_extended('autocreate_remote_users', 1, '', $config['autocreate_remote_users'], false, '', '', true).'&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;'.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).'&nbsp;&nbsp;';
$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').'&nbsp;'.html_print_radio_button('ldap_start_tls', 1, '', $config['ldap_start_tls'], true).'&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;'.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,7 @@ 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').'&nbsp;';
$row['control'] .= html_print_radio_button('double_auth_enabled', 1, '', $config['double_auth_enabled'], true);
$row['control'] .= '&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;';
$row['control'] .= html_print_radio_button('double_auth_enabled', 0, '', $config['double_auth_enabled'], true);
$row['control'] = html_print_checkbox_toogle_switch('double_auth_enabled', 1, $config['double_auth_enabled'], true);
$table->data['double_auth_enabled'] = $row;
// Session timeout

View File

@ -48,8 +48,8 @@ $table_enable->style['name'] = 'font-weight: bold';
// Enable eHorus
$row = [];
$row['name'] = __('Enable eHorus');
$row['control'] = __('Yes').'&nbsp;'.html_print_radio_button('ehorus_enabled', 1, '', $config['ehorus_enabled'], true).'&nbsp;&nbsp;';
$row['control'] .= __('No').'&nbsp;'.html_print_radio_button('ehorus_enabled', 0, '', $config['ehorus_enabled'], true);
$row['control'] = __('Enabled').'&nbsp;'.html_print_radio_button('ehorus_enabled', 1, '', $config['ehorus_enabled'], true).'&nbsp;&nbsp;';
$row['control'] .= __('Disabled').'&nbsp;'.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;

View File

@ -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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('autoupdate', 1, '', $config['autoupdate'], true).'&nbsp;&nbsp;';
$table->data[10][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.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).'&nbsp;&nbsp;';
$table->data[11][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button_extended('use_cert', 1, '', $config['use_cert'], false, '', '', true).'&nbsp;&nbsp;';
$table->data[12][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('activate_gis', 1, '', $config['activate_gis'], true).'&nbsp;&nbsp;';
$table->data[17][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button_extended('activate_netflow', 1, '', $config['activate_netflow'], $rbt_disabled, '', '', true).'&nbsp;&nbsp;';
$table->data[19][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('referer_security', 1, '', $config['referer_security'], true).'&nbsp;&nbsp;';
$table->data[29][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('event_storm_protection', 1, '', $config['event_storm_protection'], true).'&nbsp;&nbsp;';
$table->data[30][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('command_snapshot', 1, '', $config['command_snapshot'], true).'&nbsp;&nbsp;';
$table->data[31][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('past_planned_downtimes', 1, '', $config['past_planned_downtimes'], true).'&nbsp;&nbsp;';
$table->data[34][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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,16 +263,13 @@ $table->data[35][1] = html_print_input_text(
);
$table->data[36][0] = __('Include agents manually disabled');
$table->data[36][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('include_agents', 1, '', $config['include_agents'], true).'&nbsp;&nbsp;';
$table->data[36][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.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);
$table->data[38][0] = __('Set alias as name by default in agent creation');
$table->data[38][1] = __('Yes').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('alias_as_name', 1, '', $config['alias_as_name'], true).'&nbsp;&nbsp;';
$table->data[38][1] .= __('No').'&nbsp;&nbsp;&nbsp;'.html_print_radio_button('alias_as_name', 0, '', $config['alias_as_name'], true);
$table->data[38][1] = html_print_checkbox_toogle_switch('alias_as_name', 1, $config['alias_as_name'], true);
echo '<form id="form_setup" method="post" action="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general&amp;pure='.$config['pure'].'">';
echo '<fieldset>';
@ -340,15 +333,24 @@ $(document).ready (function () {
$("#timezone").attr("hidden", false);
});
$("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 +370,3 @@ function get_sounds()
return $return;
}

View File

@ -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

View File

@ -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 ();

View File

@ -20,7 +20,7 @@
/**
* Pandora build version and version
*/
$build_version = 'PC190207';
$build_version = 'PC190214';
$pandora_version = 'v7.0NG.731';
// Do not overwrite default timezone set if defined.

View File

@ -1754,7 +1754,8 @@ function get_snmpwalk(
$quick_print=0,
$base_oid='',
$snmp_port='',
$server_to_exec=0
$server_to_exec=0,
$extra_arguments=''
) {
global $config;
@ -1805,15 +1806,15 @@ function get_snmpwalk(
case '3':
switch ($snmp3_security_level) {
case 'authNoPriv':
$command_str = $snmpwalk_bin.' -m ALL -Oa -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
$command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break;
case 'noAuthNoPriv':
$command_str = $snmpwalk_bin.' -m ALL -Oa -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -l '.escapeshellarg($snmp3_security_level).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
$command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -l '.escapeshellarg($snmp3_security_level).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break;
default:
$command_str = $snmpwalk_bin.' -m ALL -Oa -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' -x '.escapeshellarg($snmp3_privacy_method).' -X '.escapeshellarg($snmp3_privacy_pass).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
$command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' -x '.escapeshellarg($snmp3_privacy_method).' -X '.escapeshellarg($snmp3_privacy_pass).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break;
}
break;
@ -1822,7 +1823,7 @@ function get_snmpwalk(
case '2c':
case '1':
default:
$command_str = $snmpwalk_bin.' -m ALL -Oa -v '.escapeshellarg($snmp_version).' -c '.escapeshellarg(io_safe_output($snmp_community)).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
$command_str = $snmpwalk_bin.' -m ALL '.$extra_arguments.' -Oa -v '.escapeshellarg($snmp_version).' -c '.escapeshellarg(io_safe_output($snmp_community)).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
break;
}

View File

@ -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.
*

View File

@ -472,11 +472,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 +497,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 +542,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',
@ -14609,3 +14610,67 @@ function api_get_users($thrash1, $thrash2, $other, $returnType)
}
}
/**
* Resets module counts and alert counts in the agents
*
* @param $id id of the agent you want to synchronize. Add "All" to synchronize all agents
* @param $trash1
* @param $trash2
* @param $trash3
*
* Example:
* api.php?op=set&op2=reset_agent_counts&apipass=1234&user=admin&pass=pandora&id=All
*/
function api_set_reset_agent_counts($id, $thrash1, $thrash2, $thrash3)
{
global $config;
if (!check_acl($config['id_user'], 0, 'AW')) {
returnError('forbidden', 'string');
return;
}
if ($id == '' || !$id) {
returnError('error_parameter', __('Error. Agent cannot be left blank.'));
return;
}
if ($id != 'All') {
$agent = db_get_row_filter('tagente', ['id_agente' => $id]);
if (empty($agent)) {
returnError('error_agent', __('This agent does not exist.'));
return;
} else {
$return = db_process_sql_update(
'tagente',
[
'update_module_count' => 1,
'update_alert_count' => 1,
],
['id_agente' => $id]
);
}
} else {
$return = db_process_sql_update(
'tagente',
[
'update_module_count' => 1,
'update_alert_count' => 1,
]
);
}
$data = __('Successfully updated module/alert count in id agent %d.', $id);
if ($id == 'All') {
$data = __('Successfully updated module/alert count in all agents');
}
if ($return === false) {
returnError('error_reset_agent_counts', 'Could not be updated module/alert counts in id agent %d.', $id);
} else {
returnData('string', ['type' => 'string', 'data' => $data]);
}
}

View File

@ -166,92 +166,30 @@ function events_get_events_grouped(
$groupby_extra = '';
}
switch ($config['dbtype']) {
case 'mysql':
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.'
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,
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 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;
$sql .= ' '.events_get_sql_order($sort_field, $order, 2);
$sql .= ' LIMIT '.$offset.','.$pagination;
}
break;
case 'postgresql':
if ($total) {
$sql = "SELECT COUNT(*)
FROM $table te
WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agentmodule, id_evento, id_agente, id_usuario, id_grupo, estado, timestamp, utimestamp, event_type, id_alert_am, criticity, user_comment, tags, source, id_extra'.$groupby_extra;
} else {
$sql = "SELECT *, MAX(id_evento) AS id_evento, array_to_string(array_agg(DISTINCT user_comment), '<br>') AS user_comment,
array_to_string(array_agg(DISTINCT id_evento), ',') AS similar_ids,
COUNT(*) 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
FROM $table te
WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agentmodule, id_evento,
id_agente, id_usuario, id_grupo, estado,
timestamp, utimestamp, event_type, id_alert_am,
criticity, user_comment, tags, source, id_extra,
te.critical_instructions,
te.warning_instructions,
te.unknown_instructions,
te.owner_user,
te.ack_utimestamp,
te.custom_data '.$groupby_extra.'
ORDER BY timestamp_rep ASC LIMIT '.$pagination.' OFFSET '.$offset;
}
break;
case 'oracle':
if ($total) {
$sql = "SELECT COUNT(*)
FROM $table te
WHERE 1=1 $sql_post
GROUP BY estado, to_char(evento), id_agentmodule".$groupby_extra.') b ';
} else {
$set = [];
$set['limit'] = $pagination;
$set['offset'] = $offset;
$sql = "SELECT ta.*, tb.event_rep, tb.timestamp_rep, tb.timestamp_rep_min, tb.user_comments, tb.similar_ids
FROM $table ta
INNER JOIN (SELECT MAX(id_evento) AS id_evento, COUNT(id_evento) AS event_rep,
MAX(utimestamp) AS timestamp_rep, MIN(utimestamp) AS timestamp_rep_min,
TAB_TO_STRING(CAST(COLLECT(TO_CHAR(user_comment) ORDER BY id_evento ASC) AS t_varchar2_tab), '<br>') AS user_comments,
TAB_TO_STRING(CAST(COLLECT(CAST(id_evento AS VARCHAR2(4000)) ORDER BY id_evento ASC) AS t_varchar2_tab)) AS similar_ids
FROM $table te
WHERE 1=1 $sql_post
GROUP BY estado, to_char(evento), id_agentmodule$groupby_extra) tb
ON ta.id_evento = tb.id_evento
ORDER BY tb.timestamp_rep ASC";
$sql = oracle_recode_query($sql, $set);
}
break;
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 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(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 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;
$sql .= ' '.events_get_sql_order($sort_field, $order, 2);
$sql .= ' LIMIT '.$offset.','.$pagination;
}
// Extract the events by filter (or not) from db
@ -260,16 +198,6 @@ function events_get_events_grouped(
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;
}
}
@ -4871,6 +4799,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';
}

View File

@ -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.
*
@ -2990,4 +3073,3 @@ function html_print_csrf_error()
);
return true;
}

View File

@ -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;
}

View File

@ -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.'&amp;sec2='.$main["sec2"].($main["refr"] ? '&amp;refr='.$main["refr"] : '').'\'">';
$length = strlen(__($main['text']));
$padding_top = ( $length >= 18) ? 6 : 12;

View File

@ -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;
}

View File

@ -1183,12 +1183,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 +6723,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,16 +6770,31 @@ 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 {
if (!is_numeric($data_res[$index])) {
$return['data'][$ag_name][$mod_name] = $data_res[$index];
} else {
hd($data_res[$index], true);
$return['data'][$ag_name][$mod_name] = format_for_graph($data_res[$index], 2).' '.$unit;
}
}
@ -6896,7 +6910,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]) {

View File

@ -2629,21 +2629,6 @@ function reporting_html_availability_graph(&$table, $item, $pdf=0)
}
function get_agent_first_time($agent_name)
{
$id = agents_get_agent_id($agent_name, true);
$utimestamp = db_get_all_rows_sql(
'SELECT utimestamp FROM tagente_datos WHERE id_agente_modulo IN
(SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente = '.$id.')
ORDER BY utimestamp ASC LIMIT 1'
);
$utimestamp = $utimestamp[0]['utimestamp'];
return $utimestamp;
}
function reporting_html_general(&$table, $item)
{
if (!empty($item['data'])) {
@ -2676,6 +2661,16 @@ function reporting_html_general(&$table, $item)
// End - Order by agent
foreach ($item['data'] as $row) {
if ($row['id_module_type'] == 6 || $row['id_module_type'] == 9 || $row['id_module_type'] == 18 || $row['id_module_type'] == 2) {
$row['formated_value'] = round($row['formated_value'], 0, PHP_ROUND_HALF_DOWN);
}
if (($row['id_module_type'] == 6 || $row['id_module_type'] == 9 || $row['id_module_type'] == 18 || $row['id_module_type'] == 2) && $row['formated_value'] == 1) {
$row['formated_value'] = 'Up';
} else if (($row['id_module_type'] == 6 || $row['id_module_type'] == 9 || $row['id_module_type'] == 18 || $row['id_module_type'] == 2) && $row['formated_value'] == 0) {
$row['formated_value'] = 'Down';
}
if ($item['date']['period'] != 0) {
$table1->data[] = [
$row['agent'],
@ -2738,13 +2733,11 @@ function reporting_html_general(&$table, $item)
}
$list_modules = array_keys($list_modules);
$table1->width = '99%';
$table1->data = [];
$table1->head = array_merge([__('Agent')], $list_modules);
foreach ($item['data'] as $agent => $modules) {
$row = [];
$row['agent'] = $agent;
$table1->style['agent'] = 'text-align: center;';
foreach ($list_modules as $name) {
@ -2804,6 +2797,21 @@ function reporting_html_general(&$table, $item)
}
function get_agent_first_time($agent_name)
{
$id = agents_get_agent_id($agent_name, true);
$utimestamp = db_get_all_rows_sql(
'SELECT utimestamp FROM tagente_datos WHERE id_agente_modulo IN
(SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente = '.$id.')
ORDER BY utimestamp ASC LIMIT 1'
);
$utimestamp = $utimestamp[0]['utimestamp'];
return $utimestamp;
}
function reporting_html_sql(&$table, $item)
{
if (!$item['correct']) {

View File

@ -711,7 +711,7 @@ function update_manager_extract_package()
rrmdir($path_package);
if ($result != 0) {
if ($result == 0) {
db_process_sql_update(
'tconfig',
[

View File

@ -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:

View File

@ -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"]);

View File

@ -911,13 +911,6 @@ input.group_item_min[disabled] {
background: #fefefe url(../../images/group_green.disabled.png) no-repeat
center !important;
}
input.color_cloud_min {
background: #fefefe url(../../images/color_cloud_item.png) no-repeat center !important;
}
input.color_cloud_min[disabled] {
background: #fefefe url(../../images/color_cloud_item.disabled.png) no-repeat
center !important;
}
div#cont {
position: fixed;
@ -1497,12 +1490,14 @@ table.databox {
}
.databox > thead > tr > th,
.databox > tbody > tr > th,
.databox > thead > tr > th a {
.databox > tbody > tr > th {
padding: 9px 7px;
font-weight: normal;
color: #fff;
}
.databox > td {
#border-bottom: 1px solid #e2e2e2;
}
.databox > th * {
color: #fff;
@ -4273,6 +4268,295 @@ div#dialog_messages table th:last-child {
text-align: right;
}
/* --- JQUERY-UI --- */
.ui-button-text-only .ui-button-text {
font-family: "nunito", sans-serif;
font-size: 9pt;
color: #82b92e;
}
.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;
}
/* --- END - JQUERY-UI --- */
.toogle_switch {
position: relative;
display: inline-block;
width: 47px;
height: 24px;
}
.toogle_switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: 0.7s;
transition: 0.7s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 16px;
width: 16px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: 0.7s;
transition: 0.7s;
border-radius: 50%;
}
input:checked + .slider {
background-color: #82b92e;
}
input:focus + .slider {
box-shadow: 0 0 1px #82b92e;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
background-color: rgb(197, 235, 192);
}
/* jQuery dialog */
.no-close .ui-dialog-titlebar-close {
display: none;

View File

@ -113,7 +113,7 @@
<div style='height: 10px'>
<?php
$version = '7.0NG.731';
$build = '190207';
$build = '190214';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -19,7 +19,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 +40,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,7 +206,7 @@ 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);
@ -179,7 +221,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 +234,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 +250,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 +304,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 +315,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 +334,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 +347,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 +360,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;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.731
%define release 190207
%define release 190214
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.731
%define release 190207
%define release 190214
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.731-190207
Version: 7.0NG.731-190214
Architecture: all
Priority: optional
Section: admin

View File

@ -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-190207"
pandora_version="7.0NG.731-190214"
package_cpan=0
package_pandora=1

View File

@ -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 = "190207";
my $pandora_build = "190214";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash

View File

@ -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 = "190207";
my $pandora_build = "190214";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.731
%define release 190207
%define release 190214
Summary: Pandora FMS Server
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.731
%define release 190207
%define release 190214
Summary: Pandora FMS Server
Name: %{name}

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.731"
PI_BUILD="190207"
PI_BUILD="190214"
MODE=$1
if [ $# -gt 1 ]; then

View File

@ -34,7 +34,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
my $version = "7.0NG.731 PS190207";
my $version = "7.0NG.731 PS190214";
# 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;

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "7.0NG.731 PS190207";
my $version = "7.0NG.731 PS190214";
# save program name for logging
my $progname = basename($0);
@ -137,6 +137,7 @@ sub help_screen{
help_screen_line('--delete_cluster_item', '<id_item>', 'Deleting cluster item');
help_screen_line('--get_cluster_status', '<id_cluster>', 'Getting cluster status');
help_screen_line('--set_disabled_and_standby', '<id_agent> <id_node> <value>', 'Overwrite and disable and standby status');
help_screen_line('--reset_agent_counts', '<id_agent>', 'Resets module counts and alert counts in the agents');
print "\nMODULES:\n\n" unless $param ne '';
help_screen_line('--create_data_module', "<module_name> <module_type> <agent_name> [<description> <module_group> \n\t <min> <max> <post_process> <interval> <warning_min> <warning_max> <critical_min> <critical_max> \n\t <history_data> <definition_file> <warning_str> <critical_str>\n\t <unknown_events> <ff_threshold> <each_ff> <ff_threshold_normal>\n\t <ff_threshold_warning> <ff_threshold_critical> <ff_timeout> <warning_inverse> <critical_inverse>\n\t <critical_instructions> <warning_instructions> <unknown_instructions>]", 'Add data server module to agent');
help_screen_line('--create_web_module', "<module_name> <module_type> <agent_name> [<description> <module_group> \n\t <min> <max> <post_process> <interval> <warning_min> <warning_max> <critical_min> <critical_max> \n\t <history_data> <retries> <requests> <agent_browser_id> <auth_server> <auth_realm> <definition_file>\n\t <proxy_url> <proxy_auth_login> <proxy_auth_password> <warning_str> <critical_str>\n\t <unknown_events> <ff_threshold> <each_ff> <ff_threshold_normal>\n\t <ff_threshold_warning> <ff_threshold_critical> <ff_timeout> <warning_inverse> <critical_inverse>\n\t <critical_instructions> <warning_instructions> <unknown_instructions>].\n\t The valid data types are web_data, web_proc, web_content_data or web_content_string", 'Add web server module to agent');
@ -6375,6 +6376,10 @@ sub pandora_manage_main ($$$) {
param_check($ltotal, 3, 1);
cli_set_disabled_and_standby();
}
elsif ($param eq '--reset_agent_counts') {
param_check($ltotal, 1, 0);
cli_reset_agent_counts();
}
else {
print_log "[ERROR] Invalid option '$param'.\n\n";
$param = '';
@ -6978,4 +6983,17 @@ sub cli_set_disabled_and_standby() {
my $exit_code = (defined($result) && "$result" eq "1") ? "1" : "0";
print "\n$exit_code\n";
}
}
##############################################################################
# Resets module counts and alert counts in the agents.
# Related option: --reset_agent_counts
##############################################################################
sub cli_reset_agent_counts() {
my $agent_id = @ARGV[2];
my $result = api_call(\%conf,'set', 'reset_agent_counts', $agent_id);
print "$result \n\n ";
}