Merge remote-tracking branch 'origin/develop' into ent-13566-modo-proxy-no-funciona-como-root

This commit is contained in:
daniel 2024-05-07 20:16:01 +02:00
commit a992396d4d
45 changed files with 341 additions and 218 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 7.0NG.776-240503 Version: 7.0NG.776-240507
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.776-240503" pandora_version="7.0NG.776-240507"
echo "Test if you has the tools for to make the packages." echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

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

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_agent_linux %define name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
%define debug_package %{nil} %define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
%define debug_package %{nil} %define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version
Name: %{name} Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_agent_linux %define name pandorafms_agent_linux
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -10,7 +10,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.776" PI_VERSION="7.0NG.776"
PI_BUILD="240503" PI_BUILD="240507"
OS_NAME=`uname -s` OS_NAME=`uname -s`
FORCE=0 FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{240503} {240507}
ViewReadme ViewReadme
{Yes} {Yes}

View File

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

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Pandora FMS" VALUE "LegalCopyright", "Pandora FMS"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.776(Build 240503))" VALUE "ProductVersion", "(7.0NG.776(Build 240507))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 7.0NG.776-240503 Version: 7.0NG.776-240507
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.776-240503" pandora_version="7.0NG.776-240507"
package_pear=0 package_pear=0
package_pandora=1 package_pandora=1

View File

@ -69,38 +69,41 @@ function api_execute(
if (empty($url) === true) { if (empty($url) === true) {
$url = 'http://'.$ip.$pandora_url.'/include/api.php?'; $url = 'http://'.$ip.$pandora_url.'/include/api.php?';
} else {
$url_schema = parse_url($url);
$url = $url_schema['scheme'].'://'.$url_schema['host'].$pandora_url.'/include/api.php?';
}
if (empty($op) === false) { if (empty($op) === false) {
$data['op'] = $op; $data['op'] = $op;
} }
if (empty($op2) === false) { if (empty($op2) === false) {
$data['op2'] = $op2; $data['op2'] = $op2;
} }
if (empty($id) === false) { if (empty($id) === false) {
$data['id'] = $id; $data['id'] = $id;
} }
if (empty($id2) === false) { if (empty($id2) === false) {
$data['id2'] = $id2; $data['id2'] = $id2;
} }
if (empty($return_type) === false) { if (empty($return_type) === false) {
$data['return_type'] = $return_type; $data['return_type'] = $return_type;
} }
if (empty($other) === false) { if (empty($other) === false) {
$data['other_mode'] = $other_mode; $data['other_mode'] = $other_mode;
$data['other'] = $other; $data['other'] = $other;
} }
// If token is not reported,use old method. // If token is not reported,use old method.
if (empty($token) === true) { if (empty($token) === true) {
$data['apipass'] = $apipass; $data['apipass'] = $apipass;
$data['user'] = $user; $data['user'] = $user;
$data['pass'] = $password; $data['pass'] = $password;
}
} }
$url_protocol = parse_url($url)['scheme']; $url_protocol = parse_url($url)['scheme'];

View File

@ -15,6 +15,8 @@ ALTER TABLE tfiles_repo_group CONVERT TO CHARACTER SET UTF8MB4;
ALTER TABLE `tusuario` ALTER TABLE `tusuario`
ADD COLUMN `stop_lts_modal` TINYINT NOT NULL DEFAULT 0 AFTER `session_max_time_expire`; ADD COLUMN `stop_lts_modal` TINYINT NOT NULL DEFAULT 0 AFTER `session_max_time_expire`;
ALTER TABLE `tlayout_template` ADD COLUMN `create_from` INT UNSIGNED NOT NULL DEFAULT 0;
-- START MIGRATION MSSQL -- -- START MIGRATION MSSQL --
SET @current_app_type = 12; SET @current_app_type = 12;
SET @short_name = 'pandorafms.mssql'; SET @short_name = 'pandorafms.mssql';
@ -7764,4 +7766,7 @@ DELETE FROM tconfig WHERE `token` = 'loginhash_pwd';
UPDATE `tdiscovery_apps` SET `version` = '1.5' WHERE `short_name` = 'pandorafms.vmware'; UPDATE `tdiscovery_apps` SET `version` = '1.5' WHERE `short_name` = 'pandorafms.vmware';
-- Delete Create incident from event, from tevent_response
DELETE FROM tevent_response WHERE name = 'Create incident from event';
COMMIT; COMMIT;

View File

@ -362,14 +362,20 @@ if (is_ajax() === true) {
$row['name'] = __('Admin secondary LDAP password'); $row['name'] = __('Admin secondary LDAP password');
$row['control'] = html_print_input_password( $row['control'] = html_print_input_password(
'ldap_admin_pass_secondary', 'ldap_admin_pass_secondary',
io_output_password($config['ldap_admin_pass_secondary']), (empty(io_output_password($config['ldap_admin_pass_secondary'])) === false) ? '*****' : '',
$alt = '', $alt = '',
60, 60,
100, 100,
true, true,
false, false,
false, false,
'w400px-important' 'w400px-important',
'on',
false,
'',
true,
false,
true
); );
$table->data['ldap_admin_pass_secondary'] = $row; $table->data['ldap_admin_pass_secondary'] = $row;
break; break;

View File

@ -85,6 +85,13 @@ class SnmpConsole extends HTML
*/ */
private $filter_free_search; private $filter_free_search;
/**
* Filter alias.
*
* @var string
*/
private $filter_alias_search;
/** /**
* Filter status. * Filter status.
* *
@ -135,7 +142,8 @@ class SnmpConsole extends HTML
int $filter_group_by, int $filter_group_by,
int $filter_hours_ago, int $filter_hours_ago,
int $filter_trap_type, int $filter_trap_type,
int $refr int $refr,
string $filter_alias_search
) { ) {
global $config; global $config;
@ -157,6 +165,7 @@ class SnmpConsole extends HTML
$this->filter_alert = $filter_alert; $this->filter_alert = $filter_alert;
$this->filter_severity = $filter_severity; $this->filter_severity = $filter_severity;
$this->filter_free_search = $filter_free_search; $this->filter_free_search = $filter_free_search;
$this->filter_alias_search = $filter_alias_search;
$this->filter_status = $filter_status; $this->filter_status = $filter_status;
$this->filter_group_by = $filter_group_by; $this->filter_group_by = $filter_group_by;
$this->filter_hours_ago = $filter_hours_ago; $this->filter_hours_ago = $filter_hours_ago;
@ -375,13 +384,21 @@ class SnmpConsole extends HTML
'style' => 'widht:100%', 'style' => 'widht:100%',
], ],
[ [
'label' => __('Free search'), 'label' => __('Search').ui_print_help_tip(__('It will search through the contents of the raw trap, which does not include the agent name. You can search by the next values: IP, OID, Value, Text, Description, User ID and Source.'), true),
'type' => 'text', 'type' => 'text',
'id' => 'filter_free_search', 'id' => 'filter_free_search',
'input_class' => 'filter_input_datatable', 'input_class' => 'filter_input_datatable',
'name' => 'filter_free_search', 'name' => 'filter_free_search',
'value' => $this->filter_free_search, 'value' => $this->filter_free_search,
], ],
[
'label' => __('Search Alias').ui_print_help_tip(__('It will search by the agent alias. This option could make the system slower.'), true),
'type' => 'text',
'id' => 'filter_alias_search',
'input_class' => 'filter_input_datatable',
'name' => 'filter_alias_search',
'value' => $this->filter_alias_search,
],
[ [
'label' => __('Status'), 'label' => __('Status'),
'type' => 'select', 'type' => 'select',
@ -449,7 +466,7 @@ class SnmpConsole extends HTML
1000, 1000,
], ],
], ],
'filter_main_class' => 'box-flat white_table_graph fixed_filter_bar', 'filter_main_class' => 'box-flat white_table_graph fixed_filter_bar snmp-console-filter',
] ]
); );
} catch (Exception $e) { } catch (Exception $e) {
@ -554,10 +571,6 @@ class SnmpConsole extends HTML
$filters = get_parameter('filter', []); $filters = get_parameter('filter', []);
// Build ranges. // Build ranges.
if (empty($filters['filter_hours_ago']) === true) {
$filters['filter_hours_ago'] = 8;
}
$now_timestamp = time(); $now_timestamp = time();
$interval_seconds = ($filters['filter_hours_ago'] * 3600); $interval_seconds = ($filters['filter_hours_ago'] * 3600);
$ago_timestamp = ($now_timestamp - $interval_seconds); $ago_timestamp = ($now_timestamp - $interval_seconds);
@ -577,118 +590,148 @@ class SnmpConsole extends HTML
ob_start(); ob_start();
$data = []; $data = [];
$user_groups = users_get_groups($config['id_user'], 'AR', false); $whereSubquery = '';
$prea = array_keys($user_groups); $sql = 'SELECT
$ids = join(',', $prea); *
FROM
ttrap
%s
WHERE 1=1
%s
ORDER BY
timestamp DESC
LIMIT %d, %d';
$user_in_group_wo_agents = db_get_value_sql('select count(DISTINCT(id_usuario)) from tusuario_perfil where id_usuario ="'.$config['id_user'].'" and id_perfil = 1 and id_grupo in (select id_grupo from tgrupo where id_grupo in ('.$ids.') and id_grupo not in (select id_grupo from tagente))'); $sql_count = 'SELECT
if ($user_in_group_wo_agents == 0) { COUNT(`ttrap`.`id_trap`)
FROM
ttrap
%s
WHERE 1=1
%s';
if (users_is_admin() === false || users_can_manage_group_all('AR') === false) {
$user_groups = users_get_groups($config['id_user'], 'AR', false);
$rows = db_get_all_rows_filter( $rows = db_get_all_rows_filter(
'tagente', 'tagente',
['id_grupo' => array_keys($user_groups)], ['id_grupo' => array_keys($user_groups)],
['id_agente'] ['id_agente']
); );
$id_agents = []; $id_agents = [];
foreach ($rows as $row) { foreach ($rows as $row) {
$id_agents[] = $row['id_agente']; $id_agents[] = $row['id_agente'];
} }
if (!empty($id_agents)) { if (empty($id_agents) === false) {
$address_by_user_groups = agents_get_addresses($id_agents); $address_by_user_groups = agents_get_addresses($id_agents);
foreach ($address_by_user_groups as $i => $a) { foreach ($address_by_user_groups as $i => $a) {
$address_by_user_groups[$i] = '"'.$a.'"'; $address_by_user_groups[$i] = '"'.$a.'"';
} }
} }
} else {
$rows = db_get_all_rows_filter( if (empty($address_by_user_groups) === true) {
'tagente', $address_by_user_groups = [];
[], array_unshift($address_by_user_groups, '""');
['id_agente'] }
$whereSubquery .= sprintf(
'AND (
`ttrap`.`source` IN (%s) OR
`ttrap`.`source`=""
)',
implode(',', $address_by_user_groups)
); );
$id_agents = [];
foreach ($rows as $row) {
$id_agents[] = $row['id_agente'];
}
$all_address_agents = agents_get_addresses($id_agents);
foreach ($all_address_agents as $i => $a) {
$all_address_agents[$i] = '"'.$a.'"';
}
} }
if (empty($address_by_user_groups)) { if ($filters['filter_alias_search'] !== '') {
$address_by_user_groups = []; $sql_join = '
array_unshift($address_by_user_groups, '""'); LEFT JOIN `tagente`
ON `tagente`.`direccion` = `ttrap`.`source`
LEFT JOIN `taddress_agent`
ON `tagente`.`id_agente` = `taddress_agent`.`id_agent`
LEFT JOIN `taddress`
ON `taddress_agent`.`id_a` = `taddress`.`id_a`
';
} else {
$sql_join = '';
} }
if (empty($all_address_agents)) {
$all_address_agents = [];
array_unshift($all_address_agents, '""');
}
$sql = 'SELECT * FROM ttrap
WHERE (
`source` IN ('.implode(',', $address_by_user_groups).") OR
`source`='' OR
`source` NOT IN (".implode(',', $all_address_agents).')
)
%s
ORDER BY timestamp DESC
LIMIT %d,%d';
$whereSubquery = '';
if ($filters['filter_alert'] != -1) { if ($filters['filter_alert'] != -1) {
$whereSubquery .= ' AND alerted = '.$filters['filter_alert']; $whereSubquery .= ' AND `ttrap`.`alerted` = '.$filters['filter_alert'];
} }
$filters['filter_severity'] = (int) $filters['filter_severity'];
if ($filters['filter_severity'] != -1) { if ($filters['filter_severity'] != -1) {
// There are two special severity values aimed to match two different trap standard severities // There are two special severity values aimed to match two different trap standard severities
// in database: warning/critical and critical/normal. // in database: warning/critical and critical/normal.
if ($filters['filter_severity'] !== EVENT_CRIT_OR_NORMAL if ($filters['filter_severity'] != EVENT_CRIT_OR_NORMAL
&& $filters['filter_severity'] !== EVENT_CRIT_WARNING_OR_CRITICAL && $filters['filter_severity'] != EVENT_CRIT_WARNING_OR_CRITICAL
&& $filters['filter_severity'] !== EVENT_CRIT_NOT_NORMAL
) { ) {
// Test if enterprise is installed to search oid in text or oid field in ttrap. // Test if enterprise is installed to search oid in text or oid field in ttrap.
$whereSubquery .= ' AND severity = '.$filters['filter_severity']; if ($config['enterprise_installed']) {
$whereSubquery .= ' AND (
(`ttrap`.`alerted` = 0 AND `ttrap`.`severity` = '.$filters['filter_severity'].') OR
(`ttrap`.`alerted` = 1 AND `ttrap`.`priority` = '.$filters['filter_severity'].'))';
} else {
$whereSubquery .= ' AND (
(`ttrap`.`alerted` = 0 AND 1 = '.$filters['filter_severity'].') OR
(`ttrap`.`alerted` = 1 AND `ttrap`.`priority` = '.$filters['filter_severity'].'))';
}
} else if ($filters['filter_severity'] === EVENT_CRIT_WARNING_OR_CRITICAL) { } else if ($filters['filter_severity'] === EVENT_CRIT_WARNING_OR_CRITICAL) {
// Test if enterprise is installed to search oid in text or oid field in ttrap. // Test if enterprise is installed to search oid in text or oid field in ttrap.
$whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_WARNING_OR_CRITICAL.')'; if ($config['enterprise_installed']) {
$whereSubquery .= ' AND (
(`ttrap`.`alerted` = 0 AND (`ttrap`.`severity` = '.EVENT_CRIT_WARNING.' OR `ttrap`.`severity` = '.EVENT_CRIT_CRITICAL.')) OR
(`ttrap`.`alerted` = 1 AND (`ttrap`.`priority` = '.EVENT_CRIT_WARNING.' OR `ttrap`.`priority` = '.EVENT_CRIT_CRITICAL.')))';
} else {
$whereSubquery .= ' AND (
(`ttrap`.`alerted` = 1 AND (`ttrap`.`priority` = '.EVENT_CRIT_WARNING.' OR `ttrap`.`priority` = '.EVENT_CRIT_CRITICAL.')))';
}
} else if ($filters['filter_severity'] === EVENT_CRIT_OR_NORMAL) { } else if ($filters['filter_severity'] === EVENT_CRIT_OR_NORMAL) {
// Test if enterprise is installed to search oid in text or oid field in ttrap. // Test if enterprise is installed to search oid in text or oid field in ttrap.
$whereSubquery .= ' AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_OR_NORMAL.')'; if ($config['enterprise_installed']) {
} else if ($filters['filter_severity'] === EVENT_CRIT_NOT_NORMAL) { $whereSubquery .= ' AND (
// Test if enterprise is installed to search oid in text or oid field in ttrap. (`ttrap`.`alerted` = 0 AND (`ttrap`.`severity` = '.EVENT_CRIT_NORMAL.' OR `ttrap`.`severity` = '.EVENT_CRIT_CRITICAL.')) OR
$whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_NOT_NORMAL.')'; (`ttrap`.`alerted` = 1 AND (`ttrap`.`priority` = '.EVENT_CRIT_NORMAL.' OR `ttrap`.`priority` = '.EVENT_CRIT_CRITICAL.')))';
} else {
$whereSubquery .= ' AND (
(`ttrap`.`alerted` = 1 AND (`ttrap`.`priority` = '.EVENT_CRIT_NORMAL.' OR `ttrap`.`priority` = '.EVENT_CRIT_CRITICAL.')))';
}
} }
} }
if ($filters['filter_free_search'] !== '') { if ($filters['filter_free_search'] !== '') {
$free_search_str = io_safe_output($filters['filter_free_search']); $free_search_str = io_safe_output($filters['filter_free_search']);
$whereSubquery .= ' $whereSubquery .= '
AND (source LIKE "%'.$free_search_str.'%" OR AND (`ttrap`.`source` LIKE "%'.$free_search_str.'%" OR
oid LIKE "%'.$free_search_str.'%" OR `ttrap`.`oid` LIKE "%'.$free_search_str.'%" OR
oid_custom LIKE "%'.$free_search_str.'%" OR `ttrap`.`oid_custom` LIKE "%'.$free_search_str.'%" OR
type_custom LIKE "%'.$free_search_str.'%" OR `ttrap`.`type_custom` LIKE "%'.$free_search_str.'%" OR
value LIKE "%'.$free_search_str.'%" OR `ttrap`.`value` LIKE "%'.$free_search_str.'%" OR
value_custom LIKE "%'.$free_search_str.'%" OR `ttrap`.`value_custom` LIKE "%'.$free_search_str.'%" OR
id_usuario LIKE "%'.$free_search_str.'%" OR `ttrap`.`id_usuario` LIKE "%'.$free_search_str.'%" OR
text LIKE "%'.$free_search_str.'%" OR `ttrap`.`text` LIKE "%'.$free_search_str.'%" OR
description LIKE "%'.$free_search_str.'%")'; `ttrap`.`description` LIKE "%'.$free_search_str.'%")';
}
if ($filters['filter_alias_search'] !== '') {
$alias_search = io_safe_output($filters['filter_alias_search']);
$whereSubquery .= '
AND `tagente`.`alias` LIKE "%'.$alias_search.'%"';
} }
if ($filters['filter_status'] != -1) { if ($filters['filter_status'] != -1) {
$whereSubquery .= ' AND status = '.$filters['filter_status']; $whereSubquery .= ' AND `ttrap`.`status` = '.$filters['filter_status'];
} }
if ($date_from_trap != '') { if ($date_from_trap != '') {
if ($time_from_trap != '') { if ($time_from_trap != '') {
$whereSubquery .= ' $whereSubquery .= '
AND (utimestamp > '.$ago_timestamp.') AND (`ttrap`.`utimestamp` > '.$ago_timestamp.')
'; ';
} else { } else {
$whereSubquery .= ' $whereSubquery .= '
AND (UNIX_TIMESTAMP(timestamp) > UNIX_TIMESTAMP("'.$date_from_trap.' 23:59:59")) AND (UNIX_TIMESTAMP(`ttrap`.`timestamp`) > UNIX_TIMESTAMP("'.$date_from_trap.' 23:59:59"))
'; ';
} }
} }
@ -696,37 +739,31 @@ class SnmpConsole extends HTML
if ($date_to_trap != '') { if ($date_to_trap != '') {
if ($time_to_trap) { if ($time_to_trap) {
$whereSubquery .= ' $whereSubquery .= '
AND (utimestamp < '.$now_timestamp.') AND (`ttrap`.`utimestamp` < '.$now_timestamp.')
'; ';
} else { } else {
$whereSubquery .= ' $whereSubquery .= '
AND (UNIX_TIMESTAMP(timestamp) < UNIX_TIMESTAMP("'.$date_to_trap.' 23:59:59")) AND (UNIX_TIMESTAMP(`ttrap`.`timestamp`) < UNIX_TIMESTAMP("'.$date_to_trap.' 23:59:59"))
'; ';
} }
} }
if ($filters['filter_trap_type'] == 5) { if ($filters['filter_trap_type'] == 5) {
$whereSubquery .= ' AND type NOT IN (0, 1, 2, 3, 4)'; $whereSubquery .= ' AND `ttrap`.`type` NOT IN (0, 1, 2, 3, 4)';
} else if ($filters['filter_trap_type'] != -1) { } else if ($filters['filter_trap_type'] != -1) {
$whereSubquery .= ' AND type = '.$filters['filter_trap_type']; $whereSubquery .= ' AND `ttrap`.`type` = '.$filters['filter_trap_type'];
} }
$where_without_group = '';
if ($filters['filter_group_by']) { if ($filters['filter_group_by']) {
$where_without_group = $whereSubquery; $where_without_group = $whereSubquery;
$whereSubquery .= ' GROUP BY source,oid'; $whereSubquery .= ' GROUP BY `ttrap`.`source`,`ttrap`.`oid`,`ttrap`.`id_trap`';
} else if ($filters['filter_alias_search'] !== '') {
$whereSubquery .= ' GROUP BY `ttrap`.`id_trap`';
} }
$sql = sprintf($sql, $whereSubquery, $start, $length); $sql = sprintf($sql, $sql_join, $whereSubquery, $start, $length);
$sql_count = sprintf($sql_count, $sql_join, $whereSubquery);
$sql_count = 'SELECT COUNT(id_trap) FROM ttrap
WHERE (
source IN ('.implode(',', $address_by_user_groups).") OR
source='' OR
source NOT IN (".implode(',', $all_address_agents).')
)
%s';
$sql_count = sprintf($sql_count, $whereSubquery);
$traps = db_get_all_rows_sql($sql, true); $traps = db_get_all_rows_sql($sql, true);
$total = (int) db_get_value_sql($sql_count, false, false); $total = (int) db_get_value_sql($sql_count, false, false);
@ -781,8 +818,8 @@ class SnmpConsole extends HTML
$tmp->snmp_agent .= '<a class="'.$severity_class.'" href="index.php?sec=estado&sec2=godmode/agentes/configurar_agente&new_agent=1&direccion='.$tmp->source.'" title="'.__('Create agent').'">'.$tmp->source.'</a>'; $tmp->snmp_agent .= '<a class="'.$severity_class.'" href="index.php?sec=estado&sec2=godmode/agentes/configurar_agente&new_agent=1&direccion='.$tmp->source.'" title="'.__('Create agent').'">'.$tmp->source.'</a>';
} else { } else {
$tmp->snmp_agent .= '<div class="'.$severity_class.' snmp-div"><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'" title="'.__('View agent details').'">'; $tmp->snmp_agent .= '<div class="'.$severity_class.' snmp-div"><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'" title="'.__('View agent details').'">';
$tmp->snmp_agent .= '<strong>'.$agent['alias'].'</strong></a>'.ui_print_help_tip($tmp->source, true); $tmp->snmp_agent .= '<strong>'.$agent['alias'].ui_print_help_tip($tmp->source, true);
'</div>'; '</strong></a></div>';
} }
// Enterprise string. // Enterprise string.
@ -819,7 +856,13 @@ class SnmpConsole extends HTML
// User ID. // User ID.
$tmp->user_id = '<div class="'.$severity_class.' snmp-div">'; $tmp->user_id = '<div class="'.$severity_class.' snmp-div">';
if (empty($status) === false) { if (empty($status) === false) {
$tmp->user_id .= '<a href="index.php?sec=workspace&sec2=operation/users/user_edit&ver='.$tmp->id_usuario.'">'.substr($tmp->id_usuario, 0, 8).'</a>'; if (users_is_admin($config['id_user']) === true || check_acl($config['id_user'], 0, 'UM') === true) {
$url = ui_get_full_url('index.php?sec=gusuarios&sec2=godmode/users/configure_user&edit_user=1&pure=0&id_user='.$tmp->id_usuario);
$tmp->user_id .= '<a href="'.$url.'">'.substr($tmp->id_usuario, 0, 8).'</a>';
} else {
$tmp->user_id .= substr($tmp->id_usuario, 0, 8);
}
if (!empty($tmp->id_usuario)) { if (!empty($tmp->id_usuario)) {
$tmp->user_id .= ui_print_help_tip(get_user_fullname($tmp->id_usuario), true); $tmp->user_id .= ui_print_help_tip(get_user_fullname($tmp->id_usuario), true);
} }
@ -1129,25 +1172,42 @@ class SnmpConsole extends HTML
$whereSubquery .= ' AND alerted = '.$$alert; $whereSubquery .= ' AND alerted = '.$$alert;
} }
$severity = (int) $severity; if ($severity != -1) {
if ($severity !== -1) {
// There are two special severity values aimed to match two different trap standard severities // There are two special severity values aimed to match two different trap standard severities
// in database: warning/critical and critical/normal. // in database: warning/critical and critical/normal.
if ($severity !== EVENT_CRIT_OR_NORMAL if ($severity != EVENT_CRIT_OR_NORMAL
&& $severity !== EVENT_CRIT_WARNING_OR_CRITICAL && $severity != EVENT_CRIT_WARNING_OR_CRITICAL
&& $severity !== EVENT_CRIT_NOT_NORMAL
) { ) {
// Test if enterprise is installed to search oid in text or oid field in ttrap. // Test if enterprise is installed to search oid in text or oid field in ttrap.
$whereSubquery .= ' AND severity = '.$severity; if ($config['enterprise_installed']) {
$whereSubquery .= ' AND (
(alerted = 0 AND severity = '.$severity.') OR
(alerted = 1 AND priority = '.$severity.'))';
} else {
$whereSubquery .= ' AND (
(alerted = 0 AND 1 = '.$severity.') OR
(alerted = 1 AND priority = '.$severity.'))';
}
} else if ($severity === EVENT_CRIT_WARNING_OR_CRITICAL) { } else if ($severity === EVENT_CRIT_WARNING_OR_CRITICAL) {
// Test if enterprise is installed to search oid in text or oid field in ttrap. // Test if enterprise is installed to search oid in text or oid field in ttrap.
$whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_WARNING_OR_CRITICAL.')'; if ($config['enterprise_installed']) {
$whereSubquery .= ' AND (
(alerted = 0 AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
(alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
} else {
$whereSubquery .= ' AND (
(alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
}
} else if ($severity === EVENT_CRIT_OR_NORMAL) { } else if ($severity === EVENT_CRIT_OR_NORMAL) {
// Test if enterprise is installed to search oid in text or oid field in ttrap. // Test if enterprise is installed to search oid in text or oid field in ttrap.
$whereSubquery .= ' AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_OR_NORMAL.')'; if ($config['enterprise_installed']) {
} else if ($severity === EVENT_CRIT_NOT_NORMAL) { $whereSubquery .= ' AND (
// Test if enterprise is installed to search oid in text or oid field in ttrap. (alerted = 0 AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
$whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_NOT_NORMAL.')'; (alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
} else {
$whereSubquery .= ' AND (
(alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
}
} }
} }

View File

@ -22,7 +22,7 @@ use DI\ContainerBuilder;
/* /*
* Pandora build version and version * Pandora build version and version
*/ */
$build_version = 'PC240503'; $build_version = 'PC240507';
$pandora_version = 'v7.0NG.776'; $pandora_version = 'v7.0NG.776';
// Do not overwrite default timezone set if defined. // Do not overwrite default timezone set if defined.

View File

@ -741,8 +741,10 @@ function config_update_config()
$error_update[] = __('Admin secondary LDAP login'); $error_update[] = __('Admin secondary LDAP login');
} }
if (config_update_value('ldap_admin_pass_secondary', get_parameter('ldap_admin_pass_secondary'), true, true) === false) { if ((bool) get_parameter('ldap_admin_pass_secondary_password_changed', false) === true) {
$error_update[] = __('Admin secondary LDAP password'); if (config_update_value('ldap_admin_pass_secondary', get_parameter('ldap_admin_pass_secondary'), true, true) === false) {
$error_update[] = __('Admin LDAP password secondary');
}
} }
if (config_update_value('fallback_local_auth', get_parameter('fallback_local_auth'), true) === false) { if (config_update_value('fallback_local_auth', get_parameter('fallback_local_auth'), true) === false) {

View File

@ -134,11 +134,14 @@ function forecast_projection_graph(
// 3.1 Standard deviation for X: sqrt((Sum(Xi²)/Obs) - (avg X)²) // 3.1 Standard deviation for X: sqrt((Sum(Xi²)/Obs) - (avg X)²)
// 3.2 Standard deviation for Y: sqrt((Sum(Yi²)/Obs) - (avg Y)²) // 3.2 Standard deviation for Y: sqrt((Sum(Yi²)/Obs) - (avg Y)²)
// Linear correlation coefficient: // Linear correlation coefficient:
// Agent interval could be zero, 300 is the predefined // Agent interval could be zero, 300 is the predefined.
if ($sum_obs == 0) { if ($sum_obs == 0) {
$agent_interval = SECONDS_5MINUTES; $agent_interval = SECONDS_5MINUTES;
} else { } else {
$agent_interval = ($sum_diff_dates / $sum_obs); $agent_interval = ($sum_diff_dates / $sum_obs);
if ($agent_interval < 60) {
$agent_interval = SECONDS_1MINUTE;
}
} }
// Could be a inverse correlation coefficient // Could be a inverse correlation coefficient
@ -170,7 +173,7 @@ function forecast_projection_graph(
$a = 0; $a = 0;
} }
// Data inicialization // Data inicialization.
$output_data = []; $output_data = [];
if ($prediction_period != false) { if ($prediction_period != false) {
$limit_timestamp = ($last_timestamp + $prediction_period); $limit_timestamp = ($last_timestamp + $prediction_period);
@ -199,50 +202,54 @@ function forecast_projection_graph(
$time_format = 'M d'; $time_format = 'M d';
} }
// Aplying linear regression to module data in order to do the prediction try {
$idx = 0; // Aplying linear regression to module data in order to do the prediction.
// Create data in graph format like $idx = 0;
while ($in_range) { // Create data in graph format like.
$now = time(); while ($in_range) {
$now = time();
// Check that exec time is not greater than half max exec server time // Check that exec time is not greater than half max exec server time.
if ($max_exec_time != false) { if ($max_exec_time != false) {
if (($begin_time + ($max_exec_time / 2)) < $now) { if (($begin_time + ($max_exec_time / 2)) < $now) {
return false; return false;
} }
}
$timestamp_f = ($current_ts * 1000);
if ($csv) {
$output_data[$idx]['date'] = $current_ts;
$output_data[$idx]['data'] = ($a + ($b * $current_ts));
} else {
$output_data[$idx][0] = $timestamp_f;
$output_data[$idx][1] = ($a + ($b * $current_ts));
}
// Using this function for prediction_date
if ($prediction_period == false) {
// These statements stop the prediction when interval is greater than 2 years
if (($current_ts - $last_timestamp) >= 94608000
|| $max_value == $min_value
) {
return false;
} }
// Found it $timestamp_f = ($current_ts * 1000);
if (($max_value >= $output_data[$idx][1])
&& ($min_value <= $output_data[$idx][0])
) {
return ($current_ts + ($sum_diff_dates * $agent_interval));
}
} else if ($current_ts > $limit_timestamp) {
$in_range = false;
}
$current_ts = ($current_ts + $agent_interval); if ($csv) {
$idx++; $output_data[$idx]['date'] = $current_ts;
$output_data[$idx]['data'] = ($a + ($b * $current_ts));
} else {
$output_data[$idx][0] = $timestamp_f;
$output_data[$idx][1] = ($a + ($b * $current_ts));
}
// Using this function for prediction_date.
if ($prediction_period == false) {
// These statements stop the prediction when interval is greater than 2 years.
if (($current_ts - $last_timestamp) >= 94608000
|| $max_value == $min_value
) {
return false;
}
// Found it.
if (($max_value >= $output_data[$idx][1])
&& ($min_value <= $output_data[$idx][0])
) {
return ($current_ts + ($sum_diff_dates * $agent_interval));
}
} else if ($current_ts > $limit_timestamp) {
$in_range = false;
}
$current_ts = ($current_ts + $agent_interval);
$idx++;
}
} catch (\Exception $e) {
return false;
} }
return $output_data; return $output_data;

View File

@ -3509,7 +3509,7 @@ function graph_custom_sql_graph(
} }
if ((int) $ttl === 2) { if ((int) $ttl === 2) {
$options['dataLabel'] = ['display' => 'auto']; $options['dataLabel'] = ['display' => true];
if ($layout !== false && is_array($layout) === true) { if ($layout !== false && is_array($layout) === true) {
$options['layout'] = $layout; $options['layout'] = $layout;

View File

@ -7942,6 +7942,7 @@ function html_print_select_date_range(
$date_format_js='yy/mm/dd', $date_format_js='yy/mm/dd',
$time_format_js='HH:mm:ss', $time_format_js='HH:mm:ss',
$id='', $id='',
$units_selected='1',
) { ) {
global $config; global $config;
@ -8136,7 +8137,7 @@ function html_print_select_date_range(
$output .= html_print_select( $output .= html_print_select(
$units, $units,
$name.'_units', $name.'_units',
'1', $units_selected,
'', '',
'', '',
0, 0,

View File

@ -6128,7 +6128,7 @@ function reporting_alert_get_fired($id_agent_module, $id_alert_template_module,
$datelimit = ($datetime - $period); $datelimit = ($datetime - $period);
$empty = '----------------------------'; $empty = '';
if (empty($firedTimes)) { if (empty($firedTimes)) {
$firedTimes = []; $firedTimes = [];
$firedTimes[0]['timestamp'] = $empty; $firedTimes[0]['timestamp'] = $empty;
@ -6429,7 +6429,7 @@ function reporting_alert_report_agent($report, $content)
$data_action[$naction]['name'] = $action['name']; $data_action[$naction]['name'] = $action['name'];
$fired = $action['fired']; $fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) { if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
$data_action[$naction]['fired'] = '----------------------------'; $data_action[$naction]['fired'] = '';
} else { } else {
$data_action[$naction]['fired'] = $fired; $data_action[$naction]['fired'] = $fired;
} }
@ -6441,7 +6441,7 @@ function reporting_alert_report_agent($report, $content)
$data_action[$naction]['name'] = $action['name']; $data_action[$naction]['name'] = $action['name'];
$fired = $action['fired']; $fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) { if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
$data_action[$naction]['fired'] = '----------------------------'; $data_action[$naction]['fired'] = '';
} else { } else {
$data_action[$naction]['fired'] = $fired; $data_action[$naction]['fired'] = $fired;
} }
@ -6453,7 +6453,7 @@ function reporting_alert_report_agent($report, $content)
$data_action[$naction]['name'] = $action['name']; $data_action[$naction]['name'] = $action['name'];
$fired = $action['fired']; $fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) { if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
$data_action[$naction]['fired'] = '----------------------------'; $data_action[$naction]['fired'] = '';
} else { } else {
$data_action[$naction]['fired'] = $fired; $data_action[$naction]['fired'] = $fired;
} }
@ -6604,7 +6604,7 @@ function reporting_alert_report_module($report, $content)
$data_action[$naction]['name'] = $action['name']; $data_action[$naction]['name'] = $action['name'];
$fired = $action['fired']; $fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) { if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
$data_action[$naction]['fired'] = '----------------------------'; $data_action[$naction]['fired'] = '';
} else { } else {
$data_action[$naction]['fired'] = $fired; $data_action[$naction]['fired'] = $fired;
} }
@ -6616,7 +6616,7 @@ function reporting_alert_report_module($report, $content)
$data_action[$naction]['name'] = $action['name']; $data_action[$naction]['name'] = $action['name'];
$fired = $action['fired']; $fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) { if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
$data_action[$naction]['fired'] = '----------------------------'; $data_action[$naction]['fired'] = '';
} else { } else {
$data_action[$naction]['fired'] = $fired; $data_action[$naction]['fired'] = $fired;
} }
@ -6628,7 +6628,7 @@ function reporting_alert_report_module($report, $content)
$data_action[$naction]['name'] = $action['name']; $data_action[$naction]['name'] = $action['name'];
$fired = $action['fired']; $fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) { if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
$data_action[$naction]['fired'] = '----------------------------'; $data_action[$naction]['fired'] = '';
} else { } else {
$data_action[$naction]['fired'] = $fired; $data_action[$naction]['fired'] = $fired;
} }
@ -6692,6 +6692,7 @@ function reporting_sql_graph(
switch ($type_sql_graph) { switch ($type_sql_graph) {
case 'sql_graph_hbar': case 'sql_graph_hbar':
default: default:
$layout = ['padding' => ['right' => '40']];
$return['type'] = 'sql_graph_hbar'; $return['type'] = 'sql_graph_hbar';
break; break;

View File

@ -1712,7 +1712,7 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
$table1->head[3] = __('Name'); $table1->head[3] = __('Name');
$table1->head[4] = __('Agent'); $table1->head[4] = __('Agent');
$table1->head[5] = __('Severity'); $table1->head[5] = __('Severity');
$table1->head[6] = __('Val. by'); $table1->head[6] = __('Validated by');
$table1->head[7] = __('Timestamp'); $table1->head[7] = __('Timestamp');
} else { } else {
$table1->head[0] = __('Status'); $table1->head[0] = __('Status');
@ -1720,7 +1720,7 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
$table1->head[2] = __('Name'); $table1->head[2] = __('Name');
$table1->head[3] = __('Agent'); $table1->head[3] = __('Agent');
$table1->head[4] = __('Severity'); $table1->head[4] = __('Severity');
$table1->head[5] = __('Val. by'); $table1->head[5] = __('Validated by');
$table1->head[6] = __('Timestamp'); $table1->head[6] = __('Timestamp');
} }
@ -1801,7 +1801,11 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
'id_user', 'id_user',
$event['id_usuario'] $event['id_usuario']
); );
$data[] = io_safe_output($user_name); if (isset($event['id_usuario']) === true && empty($event['id_usuario']) === false) {
$data[] = io_safe_output($user_name).' ('.$event['id_usuario'].')';
} else {
$data[] = '';
}
} }
if ($item['show_summary_group']) { if ($item['show_summary_group']) {
@ -3845,7 +3849,7 @@ function reporting_html_event_report_agent($table, $item, $pdf=0)
$table1->head[2] = __('Name'); $table1->head[2] = __('Name');
$table1->head[4] = __('Severity'); $table1->head[4] = __('Severity');
$table1->head[5] = __('Val. by'); $table1->head[5] = __('Validated by');
$table1->head[6] = __('Timestamp'); $table1->head[6] = __('Timestamp');
if ((bool) $item['show_custom_data'] === true) { if ((bool) $item['show_custom_data'] === true) {
$table1->head[7] = __('Custom data'); $table1->head[7] = __('Custom data');
@ -3904,7 +3908,11 @@ function reporting_html_event_report_agent($table, $item, $pdf=0)
$data[] = '<i>'.__('System').'</i>'; $data[] = '<i>'.__('System').'</i>';
} else { } else {
$user_name = db_get_value('fullname', 'tusuario', 'id_user', $event['validated_by']); $user_name = db_get_value('fullname', 'tusuario', 'id_user', $event['validated_by']);
$data[] = io_safe_output($user_name); if (isset($event['id_usuario']) === true && empty($event['id_usuario']) === false) {
$data[] = io_safe_output($user_name).' ('.$event['id_usuario'].')';
} else {
$data[] = '';
}
} }
if ($item['show_summary_group']) { if ($item['show_summary_group']) {

View File

@ -1722,3 +1722,16 @@ function show_projection_period() {
$("#div_projection_period").hide(); $("#div_projection_period").hide();
} }
} }
// Paused and resume if edit mode is checked.
// eslint-disable-next-line no-unused-vars
function paused_resume_dashboard_countdown() {
$("#checkbox-edit-mode").on("click", function() {
let isChecked = $("#checkbox-edit-mode").is(":checked");
if (isChecked) {
$("#refrcounter").countdown("pause");
} else {
$("#refrcounter").countdown("resume");
}
});
}

View File

@ -131,7 +131,7 @@
<div style='padding-bottom: 50px'> <div style='padding-bottom: 50px'>
<?php <?php
$version = '7.0NG.776'; $version = '7.0NG.776';
$build = '240503'; $build = '240507';
$banner = "v$version Build $build"; $banner = "v$version Build $build";
error_reporting(0); error_reporting(0);

View File

@ -46,6 +46,7 @@ $date_init_less = (strtotime(date('Y/m/d')) - SECONDS_1DAY);
$date_init = get_parameter('date_init', date(DATE_FORMAT, $date_init_less)); $date_init = get_parameter('date_init', date(DATE_FORMAT, $date_init_less));
$time_init = get_parameter('time_init', date(TIME_FORMAT, $date_init_less)); $time_init = get_parameter('time_init', date(TIME_FORMAT, $date_init_less));
$datetime_init = strtotime($date_init.' '.$time_init); $datetime_init = strtotime($date_init.' '.$time_init);
$date_units = get_parameter('utimestamp_units');
if ($custom_date === '1') { if ($custom_date === '1') {
if ($datetime_init >= $datetime_end) { if ($datetime_init >= $datetime_end) {
$datetime_init = $date_init_less; $datetime_init = $date_init_less;
@ -55,7 +56,6 @@ if ($custom_date === '1') {
$date_end = date('Y/m/d H:i:s', $datetime_end); $date_end = date('Y/m/d H:i:s', $datetime_end);
$period = ($datetime_end - $datetime_init); $period = ($datetime_end - $datetime_init);
} else if ($custom_date === '2') { } else if ($custom_date === '2') {
$date_units = get_parameter('utimestamp_units');
$date_end = date('Y/m/d H:i:s'); $date_end = date('Y/m/d H:i:s');
$date_init = date('Y/m/d H:i:s', (strtotime($date_end) - ((int) $date_text * (int) $date_units))); $date_init = date('Y/m/d H:i:s', (strtotime($date_end) - ((int) $date_text * (int) $date_units)));
$period = (strtotime($date_end) - strtotime($date_init)); $period = (strtotime($date_end) - strtotime($date_init));
@ -768,7 +768,14 @@ if (is_metaconsole() === false) {
date('H:i:s', $date_init), date('H:i:s', $date_init),
date('Y/m/d', $utimestamp), date('Y/m/d', $utimestamp),
date('H:i:s', $utimestamp), date('H:i:s', $utimestamp),
$date_text $date_text,
'w100p',
'Y/m/d',
'H:i:s',
'yy/mm/dd',
'HH:mm:ss',
'',
$date_units
) )
); );
} }

View File

@ -55,11 +55,12 @@ if (is_ajax()) {
$search = io_safe_input($search_left); $search = io_safe_input($search_left);
// Agents. // Agents.
// Concatenate AW and AD permisions to get all the possible groups where the user can manage. // Concatenate AR, AW and AD permisions to get all the possible groups where the user can manage.
$user_groupsAW = users_get_groups($config['id_user'], 'AW'); $user_groupsAW = users_get_groups($config['id_user'], 'AW');
$user_groupsAD = users_get_groups($config['id_user'], 'AD'); $user_groupsAD = users_get_groups($config['id_user'], 'AD');
$user_groupsAR = users_get_groups($config['id_user'], 'AR');
$user_groups = ($user_groupsAW + $user_groupsAD); $user_groups = ($user_groupsAW + $user_groupsAD + $user_groupsAR);
$user_groups_to_sql = implode(',', array_keys($user_groups)); $user_groups_to_sql = implode(',', array_keys($user_groups));
$search_sql = ' AND (nombre LIKE "%%'.$search.'%%" OR alias LIKE "%%'.$search.'%%")'; $search_sql = ' AND (nombre LIKE "%%'.$search.'%%" OR alias LIKE "%%'.$search.'%%")';
@ -197,6 +198,9 @@ if (is_ajax()) {
'graph_analytics' => true, 'graph_analytics' => true,
]; ];
// Included dependencies when is an ajax request.
include_javascript_dependencies_flot_graph(false);
$graph_return = graphic_combined_module( $graph_return = graphic_combined_module(
$modules, $modules,
$params, $params,

View File

@ -36,6 +36,7 @@ $ajaxPage = $config['homedir'].'/operation/snmpconsole/snmp_view';
$filter_alert = get_parameter('filter_alert', -1); $filter_alert = get_parameter('filter_alert', -1);
$filter_severity = get_parameter('filter_severity', -1); $filter_severity = get_parameter('filter_severity', -1);
$filter_free_search = get_parameter('filter_free_search', ''); $filter_free_search = get_parameter('filter_free_search', '');
$filter_alias_search = get_parameter('filter_alias_search', '');
$filter_status = get_parameter('filter_status', 0); $filter_status = get_parameter('filter_status', 0);
$filter_group_by = get_parameter('filter_group_by', 0); $filter_group_by = get_parameter('filter_group_by', 0);
$filter_hours_ago = get_parameter('filter_hours_ago', 8); $filter_hours_ago = get_parameter('filter_hours_ago', 8);
@ -54,7 +55,8 @@ try {
$filter_group_by, $filter_group_by,
$filter_hours_ago, $filter_hours_ago,
$filter_trap_type, $filter_trap_type,
$refr $refr,
$filter_alias_search
); );
} catch (Exception $e) { } catch (Exception $e) {
if ((bool) is_ajax() === true) { if ((bool) is_ajax() === true) {

View File

@ -6,7 +6,7 @@
%define debug_package %{nil} %define debug_package %{nil}
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

@ -6,7 +6,7 @@
%define debug_package %{nil} %define debug_package %{nil}
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

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

View File

@ -3777,6 +3777,7 @@ CREATE TABLE IF NOT EXISTS `tlayout_template` (
`maintenance_mode` TEXT, `maintenance_mode` TEXT,
`grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc', `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc',
`grid_size` VARCHAR(45) NOT NULL DEFAULT '10', `grid_size` VARCHAR(45) NOT NULL DEFAULT '10',
`create_from` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY(`id`) PRIMARY KEY(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;

View File

@ -1217,7 +1217,7 @@ INSERT INTO `tagent_custom_fields` VALUES (1,'Serial&#x20;Number',0,0,'',0),(2,'
INSERT INTO `ttag` VALUES (1,'network','Network&#x20;equipment','http://pandorafms.com','','',''),(2,'critical','Critical&#x20;modules','','','',''),(3,'dmz','DMZ&#x20;Network&#x20;Zone','','','',''),(4,'performance','Performance&#x20;anda&#x20;capacity&#x20;modules','','','',''),(5,'configuration','','','','',''); INSERT INTO `ttag` VALUES (1,'network','Network&#x20;equipment','http://pandorafms.com','','',''),(2,'critical','Critical&#x20;modules','','','',''),(3,'dmz','DMZ&#x20;Network&#x20;Zone','','','',''),(4,'performance','Performance&#x20;anda&#x20;capacity&#x20;modules','','','',''),(5,'configuration','','','','','');
INSERT INTO `tevent_response` VALUES (1,'Ping&#x20;to&#x20;host','Ping&#x20;to&#x20;the&#x20;agent&#x20;host','ping&#x20;-c&#x20;5&#x20;_agent_address_','command',0,620,500,0,'',0,90,0),(3,'Create&#x20;incident&#x20;from&#x20;event','Create&#x20;a&#x20;incident&#x20;from&#x20;the&#x20;event&#x20;with&#x20;the&#x20;standard&#x20;incidents&#x20;system&#x20;of&#x20;Pandora&#x20;FMS','index.php?sec=workspace&amp;sec2=operation/incidents/incident_detail&amp;insert_form&amp;from_event=_event_id_','url',0,0,0,1,'',0,90,0),(5,'Restart&#x20;agent','Restart&#x20;the&#x20;agent&#x20;with&#x20;using&#x20;UDP&#x20;protocol.&#x0d;&#x0a;&#x0d;&#x0a;To&#x20;use&#x20;this&#x20;response&#x20;is&#x20;necessary&#x20;to&#x20;have&#x20;installed&#x20;Pandora&#x20;FMS&#x20;server&#x20;and&#x20;console&#x20;in&#x20;the&#x20;same&#x20;machine.','/usr/share/pandora_server/util/udp_client.pl&#x20;_agent_address_&#x20;41122&#x20;&quot;REFRESH&#x20;AGENT&quot;','command',0,620,500,0,'',0,90,0),(6,'Ping&#x20;to&#x20;module&#x20;agent&#x20;host','Ping&#x20;to&#x20;the&#x20;module&#x20;agent&#x20;host','ping&#x20;-c&#x20;5&#x20;_module_address_','command',0,620,500,0,'',0,90,0),(7,'Create&#x20;ticket&#x20;in&#x20;Pandora&#x20;ITSM&#x20;from&#x20;event','Create&#x20;a&#x20;ticket&#x20;in&#x20;Pandora&#x20;ITSM&#x20;from&#x20;an&#x20;event','index.php?sec=manageTickets&amp;sec2=operation/ITSM/itsm&amp;operation=edit&amp;from_event=_event_id_','url',0,0,0,1,'',0,90,1); INSERT INTO `tevent_response` VALUES (1,'Ping&#x20;to&#x20;host','Ping&#x20;to&#x20;the&#x20;agent&#x20;host','ping&#x20;-c&#x20;5&#x20;_agent_address_','command',0,620,500,0,'',0,90,0),(5,'Restart&#x20;agent','Restart&#x20;the&#x20;agent&#x20;with&#x20;using&#x20;UDP&#x20;protocol.&#x0d;&#x0a;&#x0d;&#x0a;To&#x20;use&#x20;this&#x20;response&#x20;is&#x20;necessary&#x20;to&#x20;have&#x20;installed&#x20;Pandora&#x20;FMS&#x20;server&#x20;and&#x20;console&#x20;in&#x20;the&#x20;same&#x20;machine.','/usr/share/pandora_server/util/udp_client.pl&#x20;_agent_address_&#x20;41122&#x20;&quot;REFRESH&#x20;AGENT&quot;','command',0,620,500,0,'',0,90,0),(6,'Ping&#x20;to&#x20;module&#x20;agent&#x20;host','Ping&#x20;to&#x20;the&#x20;module&#x20;agent&#x20;host','ping&#x20;-c&#x20;5&#x20;_module_address_','command',0,620,500,0,'',0,90,0),(7,'Create&#x20;ticket&#x20;in&#x20;Pandora&#x20;ITSM&#x20;from&#x20;event','Create&#x20;a&#x20;ticket&#x20;in&#x20;Pandora&#x20;ITSM&#x20;from&#x20;an&#x20;event','index.php?sec=manageTickets&amp;sec2=operation/ITSM/itsm&amp;operation=edit&amp;from_event=_event_id_','url',0,0,0,1,'',0,90,1);
INSERT INTO `tupdate_settings` VALUES ('current_update', '412'), ('customer_key', 'PANDORA-FREE'), ('updating_binary_path', 'Path where the updated binary files will be stored'), ('updating_code_path', 'Path where the updated code is stored'), ('dbname', ''), ('dbhost', ''), ('dbpass', ''), ('dbuser', ''), ('dbport', ''), ('proxy', ''), ('proxy_port', ''), ('proxy_user', ''), ('proxy_pass', ''); INSERT INTO `tupdate_settings` VALUES ('current_update', '412'), ('customer_key', 'PANDORA-FREE'), ('updating_binary_path', 'Path where the updated binary files will be stored'), ('updating_code_path', 'Path where the updated code is stored'), ('dbname', ''), ('dbhost', ''), ('dbpass', ''), ('dbuser', ''), ('dbport', ''), ('proxy', ''), ('proxy_port', ''), ('proxy_user', ''), ('proxy_pass', '');

View File

@ -94,5 +94,8 @@ echo $output;
$("#button-add-widget-"+cellId).trigger("click"); $("#button-add-widget-"+cellId).trigger("click");
}, 500); }, 500);
} }
// Paused and resume if edit mode is checked.
paused_resume_dashboard_countdown();
}); });
</script> </script>

View File

@ -1,5 +1,5 @@
package: pandorafms-server package: pandorafms-server
Version: 7.0NG.776-240503 Version: 7.0NG.776-240507
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.776-240503" pandora_version="7.0NG.776-240507"
package_cpan=0 package_cpan=0
package_pandora=1 package_pandora=1

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776"; my $pandora_version = "7.0NG.776";
my $pandora_build = "240503"; my $pandora_build = "240507";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash # Setup hash

View File

@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776"; my $pandora_version = "7.0NG.776";
my $pandora_build = "240503"; my $pandora_build = "240507";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] ); our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -7,7 +7,7 @@
%define debug_package %{nil} %define debug_package %{nil}
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.776 %define version 7.0NG.776
%define release 240503 %define release 240507
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

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

View File

@ -38,7 +38,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB; use PandoraFMS::DB;
# version: define current version # version: define current version
my $version = "7.0NG.776 Build 240503"; my $version = "7.0NG.776 Build 240507";
# Pandora server configuration # Pandora server configuration
my %conf; my %conf;

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv; Encode::Locale::decode_argv;
# version: define current version # version: define current version
my $version = "7.0NG.776 Build 240503"; my $version = "7.0NG.776 Build 240507";
# save program name for logging # save program name for logging
my $progname = basename($0); my $progname = basename($0);