diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control
index 122d43ed05..5595f61feb 100644
--- a/pandora_agents/unix/DEBIAN/control
+++ b/pandora_agents/unix/DEBIAN/control
@@ -1,5 +1,5 @@
package: pandorafms-agent-unix
-Version: 7.0NG.776-240503
+Version: 7.0NG.776-240508
Architecture: all
Priority: optional
Section: admin
diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh
index 03461beb0f..97348def98 100644
--- a/pandora_agents/unix/DEBIAN/make_deb_package.sh
+++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh
@@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-pandora_version="7.0NG.776-240503"
+pandora_version="7.0NG.776-240508"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent
index 05d49335cb..a079f00b8c 100755
--- a/pandora_agents/unix/pandora_agent
+++ b/pandora_agents/unix/pandora_agent
@@ -1039,7 +1039,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.776';
-use constant AGENT_BUILD => '240503';
+use constant AGENT_BUILD => '240508';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;
diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec
index 037ebbe6bb..15111e31da 100644
--- a/pandora_agents/unix/pandora_agent.redhat.spec
+++ b/pandora_agents/unix/pandora_agent.redhat.spec
@@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux
%define version 7.0NG.776
-%define release 240503
+%define release 240508
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}
diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec b/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec
index d3558b0026..a3d10d7d68 100644
--- a/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec
+++ b/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec
@@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.776
-%define release 240503
+%define release 240508
%define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version
diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec b/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec
index a7d6c6a620..7cc0459ca5 100644
--- a/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec
+++ b/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec
@@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.776
-%define release 240503
+%define release 240508
%define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version
diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.spec b/pandora_agents/unix/pandora_agent.redhat_bin.spec
index db99b6fbf2..6f6ec4bd74 100644
--- a/pandora_agents/unix/pandora_agent.redhat_bin.spec
+++ b/pandora_agents/unix/pandora_agent.redhat_bin.spec
@@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.776
-%define release 240503
+%define release 240508
Summary: Pandora FMS Linux agent, binary version
Name: %{name}
diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec
index 250f327421..3e1ef473f4 100644
--- a/pandora_agents/unix/pandora_agent.spec
+++ b/pandora_agents/unix/pandora_agent.spec
@@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux
%define version 7.0NG.776
-%define release 240503
+%define release 240508
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}
diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer
index aae9e94d1a..d0c83002bd 100755
--- a/pandora_agents/unix/pandora_agent_installer
+++ b/pandora_agents/unix/pandora_agent_installer
@@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.776"
-PI_BUILD="240503"
+PI_BUILD="240508"
OS_NAME=`uname -s`
FORCE=0
diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi
index 37d4289b18..99a72984a1 100644
--- a/pandora_agents/win32/installer/pandora.mpi
+++ b/pandora_agents/win32/installer/pandora.mpi
@@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
-{240503}
+{240508}
ViewReadme
{Yes}
diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc
index 85da7bbecd..1e466ca4e1 100644
--- a/pandora_agents/win32/pandora.cc
+++ b/pandora_agents/win32/pandora.cc
@@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
-#define PANDORA_VERSION ("7.0NG.776 Build 240503")
+#define PANDORA_VERSION ("7.0NG.776 Build 240508")
string pandora_path;
string pandora_dir;
diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc
index 44c1b8d6a1..3f10acddc7 100644
--- a/pandora_agents/win32/versioninfo.rc
+++ b/pandora_agents/win32/versioninfo.rc
@@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Pandora FMS"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
- VALUE "ProductVersion", "(7.0NG.776(Build 240503))"
+ VALUE "ProductVersion", "(7.0NG.776(Build 240508))"
VALUE "FileVersion", "1.0.0.0"
END
END
diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control
index e947bc0573..73048935d4 100644
--- a/pandora_console/DEBIAN/control
+++ b/pandora_console/DEBIAN/control
@@ -1,5 +1,5 @@
package: pandorafms-console
-Version: 7.0NG.776-240503
+Version: 7.0NG.776-240508
Architecture: all
Priority: optional
Section: admin
diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh
index c6b8402407..69f8082f64 100644
--- a/pandora_console/DEBIAN/make_deb_package.sh
+++ b/pandora_console/DEBIAN/make_deb_package.sh
@@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-pandora_version="7.0NG.776-240503"
+pandora_version="7.0NG.776-240508"
package_pear=0
package_pandora=1
diff --git a/pandora_console/extensions/api_checker.php b/pandora_console/extensions/api_checker.php
index 38488fc9e4..557ec82e1b 100755
--- a/pandora_console/extensions/api_checker.php
+++ b/pandora_console/extensions/api_checker.php
@@ -69,38 +69,41 @@ function api_execute(
if (empty($url) === true) {
$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) {
- $data['op'] = $op;
- }
+ if (empty($op) === false) {
+ $data['op'] = $op;
+ }
- if (empty($op2) === false) {
- $data['op2'] = $op2;
- }
+ if (empty($op2) === false) {
+ $data['op2'] = $op2;
+ }
- if (empty($id) === false) {
- $data['id'] = $id;
- }
+ if (empty($id) === false) {
+ $data['id'] = $id;
+ }
- if (empty($id2) === false) {
- $data['id2'] = $id2;
- }
+ if (empty($id2) === false) {
+ $data['id2'] = $id2;
+ }
- if (empty($return_type) === false) {
- $data['return_type'] = $return_type;
- }
+ if (empty($return_type) === false) {
+ $data['return_type'] = $return_type;
+ }
- if (empty($other) === false) {
- $data['other_mode'] = $other_mode;
- $data['other'] = $other;
- }
+ if (empty($other) === false) {
+ $data['other_mode'] = $other_mode;
+ $data['other'] = $other;
+ }
- // If token is not reported,use old method.
- if (empty($token) === true) {
- $data['apipass'] = $apipass;
- $data['user'] = $user;
- $data['pass'] = $password;
- }
+ // If token is not reported,use old method.
+ if (empty($token) === true) {
+ $data['apipass'] = $apipass;
+ $data['user'] = $user;
+ $data['pass'] = $password;
}
$url_protocol = parse_url($url)['scheme'];
diff --git a/pandora_console/extras/mr/69.sql b/pandora_console/extras/mr/69.sql
index 534cef73ef..eb381781ca 100644
--- a/pandora_console/extras/mr/69.sql
+++ b/pandora_console/extras/mr/69.sql
@@ -15,6 +15,8 @@ ALTER TABLE tfiles_repo_group CONVERT TO CHARACTER SET UTF8MB4;
ALTER TABLE `tusuario`
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 --
SET @current_app_type = 12;
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';
+-- Delete Create incident from event, from tevent_response
+DELETE FROM tevent_response WHERE name = 'Create incident from event';
+
COMMIT;
\ No newline at end of file
diff --git a/pandora_console/godmode/agentes/modificar_agente.php b/pandora_console/godmode/agentes/modificar_agente.php
index 662bdd6e72..9f734ec539 100644
--- a/pandora_console/godmode/agentes/modificar_agente.php
+++ b/pandora_console/godmode/agentes/modificar_agente.php
@@ -566,10 +566,10 @@ if ($search != '') {
if ($id != '') {
$aux = $id[0]['id_agent'];
$search_sql = sprintf(
- ' AND ( REPLACE(nombre, " ", " ") LIKE "%%%s%%"
- OR REPLACE(alias, " ", " ") LIKE "%%%s%%"
- OR REPLACE(comentarios, " ", " ") LIKE "%%%s%%"
- OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND REPLACE(description, " ", " ") LIKE "%%%s%%")
+ ' AND ( nombre LIKE "%%%s%%"
+ OR alias LIKE "%%%s%%"
+ OR comentarios LIKE "%%%s%%"
+ OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%")
OR tagente.id_agente = %d',
$search,
$search,
@@ -591,10 +591,10 @@ if ($search != '') {
$search_sql .= ')';
} else {
$search_sql = sprintf(
- ' AND ( REPLACE(nombre, " ", " ")
- LIKE "%%%s%%" OR REPLACE(alias, " ", " ")
- LIKE "%%%s%%" OR REPLACE(comentarios, " ", " ") LIKE "%%%s%%"
- OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND REPLACE(description, " ", " ") LIKE "%%%s%%"))',
+ ' AND ( nombre
+ LIKE "%%%s%%" OR alias
+ LIKE "%%%s%%" OR comentarios LIKE "%%%s%%"
+ OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%"))',
$search,
$search,
$search,
diff --git a/pandora_console/godmode/setup/setup_auth.php b/pandora_console/godmode/setup/setup_auth.php
index e17d13806f..5d7922cce0 100644
--- a/pandora_console/godmode/setup/setup_auth.php
+++ b/pandora_console/godmode/setup/setup_auth.php
@@ -362,14 +362,20 @@ if (is_ajax() === true) {
$row['name'] = __('Admin secondary LDAP password');
$row['control'] = html_print_input_password(
'ldap_admin_pass_secondary',
- io_output_password($config['ldap_admin_pass_secondary']),
+ (empty(io_output_password($config['ldap_admin_pass_secondary'])) === false) ? '*****' : '',
$alt = '',
60,
100,
true,
false,
false,
- 'w400px-important'
+ 'w400px-important',
+ 'on',
+ false,
+ '',
+ true,
+ false,
+ true
);
$table->data['ldap_admin_pass_secondary'] = $row;
break;
diff --git a/pandora_console/include/class/SnmpConsole.class.php b/pandora_console/include/class/SnmpConsole.class.php
index fefce2e54f..1a2707868d 100644
--- a/pandora_console/include/class/SnmpConsole.class.php
+++ b/pandora_console/include/class/SnmpConsole.class.php
@@ -85,6 +85,13 @@ class SnmpConsole extends HTML
*/
private $filter_free_search;
+ /**
+ * Filter alias.
+ *
+ * @var string
+ */
+ private $filter_alias_search;
+
/**
* Filter status.
*
@@ -135,7 +142,8 @@ class SnmpConsole extends HTML
int $filter_group_by,
int $filter_hours_ago,
int $filter_trap_type,
- int $refr
+ int $refr,
+ string $filter_alias_search
) {
global $config;
@@ -157,6 +165,7 @@ class SnmpConsole extends HTML
$this->filter_alert = $filter_alert;
$this->filter_severity = $filter_severity;
$this->filter_free_search = $filter_free_search;
+ $this->filter_alias_search = $filter_alias_search;
$this->filter_status = $filter_status;
$this->filter_group_by = $filter_group_by;
$this->filter_hours_ago = $filter_hours_ago;
@@ -375,13 +384,21 @@ class SnmpConsole extends HTML
'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',
'id' => 'filter_free_search',
'input_class' => 'filter_input_datatable',
'name' => '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'),
'type' => 'select',
@@ -449,7 +466,7 @@ class SnmpConsole extends HTML
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) {
@@ -554,10 +571,6 @@ class SnmpConsole extends HTML
$filters = get_parameter('filter', []);
// Build ranges.
- if (empty($filters['filter_hours_ago']) === true) {
- $filters['filter_hours_ago'] = 8;
- }
-
$now_timestamp = time();
$interval_seconds = ($filters['filter_hours_ago'] * 3600);
$ago_timestamp = ($now_timestamp - $interval_seconds);
@@ -577,118 +590,148 @@ class SnmpConsole extends HTML
ob_start();
$data = [];
- $user_groups = users_get_groups($config['id_user'], 'AR', false);
- $prea = array_keys($user_groups);
- $ids = join(',', $prea);
+ $whereSubquery = '';
+ $sql = 'SELECT
+ *
+ 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))');
- if ($user_in_group_wo_agents == 0) {
+ $sql_count = 'SELECT
+ 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(
'tagente',
['id_grupo' => array_keys($user_groups)],
['id_agente']
);
+
$id_agents = [];
foreach ($rows as $row) {
$id_agents[] = $row['id_agente'];
}
- if (!empty($id_agents)) {
+ if (empty($id_agents) === false) {
$address_by_user_groups = agents_get_addresses($id_agents);
foreach ($address_by_user_groups as $i => $a) {
$address_by_user_groups[$i] = '"'.$a.'"';
}
}
- } else {
- $rows = db_get_all_rows_filter(
- 'tagente',
- [],
- ['id_agente']
+
+ if (empty($address_by_user_groups) === true) {
+ $address_by_user_groups = [];
+ array_unshift($address_by_user_groups, '""');
+ }
+
+ $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)) {
- $address_by_user_groups = [];
- array_unshift($address_by_user_groups, '""');
+ if ($filters['filter_alias_search'] !== '') {
+ $sql_join = '
+ 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) {
- $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) {
// There are two special severity values aimed to match two different trap standard severities
// in database: warning/critical and critical/normal.
- if ($filters['filter_severity'] !== EVENT_CRIT_OR_NORMAL
- && $filters['filter_severity'] !== EVENT_CRIT_WARNING_OR_CRITICAL
- && $filters['filter_severity'] !== EVENT_CRIT_NOT_NORMAL
+ if ($filters['filter_severity'] != EVENT_CRIT_OR_NORMAL
+ && $filters['filter_severity'] != EVENT_CRIT_WARNING_OR_CRITICAL
) {
// 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) {
// 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) {
// 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.')';
- } else if ($filters['filter_severity'] === EVENT_CRIT_NOT_NORMAL) {
- // 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_NOT_NORMAL.')';
+ if ($config['enterprise_installed']) {
+ $whereSubquery .= ' AND (
+ (`ttrap`.`alerted` = 0 AND (`ttrap`.`severity` = '.EVENT_CRIT_NORMAL.' OR `ttrap`.`severity` = '.EVENT_CRIT_CRITICAL.')) OR
+ (`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'] !== '') {
$free_search_str = io_safe_output($filters['filter_free_search']);
$whereSubquery .= '
- AND (source LIKE "%'.$free_search_str.'%" OR
- oid LIKE "%'.$free_search_str.'%" OR
- oid_custom LIKE "%'.$free_search_str.'%" OR
- type_custom LIKE "%'.$free_search_str.'%" OR
- value LIKE "%'.$free_search_str.'%" OR
- value_custom LIKE "%'.$free_search_str.'%" OR
- id_usuario LIKE "%'.$free_search_str.'%" OR
- text LIKE "%'.$free_search_str.'%" OR
- description LIKE "%'.$free_search_str.'%")';
+ AND (`ttrap`.`source` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`oid` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`oid_custom` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`type_custom` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`value` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`value_custom` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`id_usuario` LIKE "%'.$free_search_str.'%" OR
+ `ttrap`.`text` LIKE "%'.$free_search_str.'%" OR
+ `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) {
- $whereSubquery .= ' AND status = '.$filters['filter_status'];
+ $whereSubquery .= ' AND `ttrap`.`status` = '.$filters['filter_status'];
}
if ($date_from_trap != '') {
if ($time_from_trap != '') {
$whereSubquery .= '
- AND (utimestamp > '.$ago_timestamp.')
+ AND (`ttrap`.`utimestamp` > '.$ago_timestamp.')
';
} else {
$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 ($time_to_trap) {
$whereSubquery .= '
- AND (utimestamp < '.$now_timestamp.')
+ AND (`ttrap`.`utimestamp` < '.$now_timestamp.')
';
} else {
$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) {
- $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) {
- $whereSubquery .= ' AND type = '.$filters['filter_trap_type'];
+ $whereSubquery .= ' AND `ttrap`.`type` = '.$filters['filter_trap_type'];
}
+ $where_without_group = '';
if ($filters['filter_group_by']) {
$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_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);
+ $sql = sprintf($sql, $sql_join, $whereSubquery, $start, $length);
+ $sql_count = sprintf($sql_count, $sql_join, $whereSubquery);
$traps = db_get_all_rows_sql($sql, true);
$total = (int) db_get_value_sql($sql_count, false, false);
@@ -781,8 +818,8 @@ class SnmpConsole extends HTML
$tmp->snmp_agent .= ''.$tmp->source.'';
} else {
$tmp->snmp_agent .= '
';
if (empty($status) === false) {
- $tmp->user_id .= '
'.substr($tmp->id_usuario, 0, 8).'';
+ 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 .= '
'.substr($tmp->id_usuario, 0, 8).'';
+ } else {
+ $tmp->user_id .= substr($tmp->id_usuario, 0, 8);
+ }
+
if (!empty($tmp->id_usuario)) {
$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;
}
- $severity = (int) $severity;
- if ($severity !== -1) {
+ if ($severity != -1) {
// There are two special severity values aimed to match two different trap standard severities
// in database: warning/critical and critical/normal.
- if ($severity !== EVENT_CRIT_OR_NORMAL
- && $severity !== EVENT_CRIT_WARNING_OR_CRITICAL
- && $severity !== EVENT_CRIT_NOT_NORMAL
+ if ($severity != EVENT_CRIT_OR_NORMAL
+ && $severity != EVENT_CRIT_WARNING_OR_CRITICAL
) {
// 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) {
// 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) {
// 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.')';
- } else if ($severity === EVENT_CRIT_NOT_NORMAL) {
- // 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_NOT_NORMAL.')';
+ if ($config['enterprise_installed']) {
+ $whereSubquery .= ' AND (
+ (alerted = 0 AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
+ (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.')))';
+ }
}
}
diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php
index 9af4949d06..eda52ce705 100644
--- a/pandora_console/include/config_process.php
+++ b/pandora_console/include/config_process.php
@@ -22,7 +22,7 @@ use DI\ContainerBuilder;
/*
* Pandora build version and version
*/
-$build_version = 'PC240503';
+$build_version = 'PC240508';
$pandora_version = 'v7.0NG.776';
// Do not overwrite default timezone set if defined.
diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php
index 7026165089..d4c71597fc 100644
--- a/pandora_console/include/functions_config.php
+++ b/pandora_console/include/functions_config.php
@@ -741,8 +741,10 @@ function config_update_config()
$error_update[] = __('Admin secondary LDAP login');
}
- if (config_update_value('ldap_admin_pass_secondary', get_parameter('ldap_admin_pass_secondary'), true, true) === false) {
- $error_update[] = __('Admin secondary LDAP password');
+ if ((bool) get_parameter('ldap_admin_pass_secondary_password_changed', false) === true) {
+ 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) {
diff --git a/pandora_console/include/functions_forecast.php b/pandora_console/include/functions_forecast.php
index 1f0d1e59d9..e4fb43a7c5 100644
--- a/pandora_console/include/functions_forecast.php
+++ b/pandora_console/include/functions_forecast.php
@@ -134,11 +134,14 @@ function forecast_projection_graph(
// 3.1 Standard deviation for X: sqrt((Sum(Xi²)/Obs) - (avg X)²)
// 3.2 Standard deviation for Y: sqrt((Sum(Yi²)/Obs) - (avg Y)²)
// 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) {
$agent_interval = SECONDS_5MINUTES;
} else {
$agent_interval = ($sum_diff_dates / $sum_obs);
+ if ($agent_interval < 60) {
+ $agent_interval = SECONDS_1MINUTE;
+ }
}
// Could be a inverse correlation coefficient
@@ -170,7 +173,7 @@ function forecast_projection_graph(
$a = 0;
}
- // Data inicialization
+ // Data inicialization.
$output_data = [];
if ($prediction_period != false) {
$limit_timestamp = ($last_timestamp + $prediction_period);
@@ -199,50 +202,54 @@ function forecast_projection_graph(
$time_format = 'M d';
}
- // Aplying linear regression to module data in order to do the prediction
- $idx = 0;
- // Create data in graph format like
- while ($in_range) {
- $now = time();
+ try {
+ // Aplying linear regression to module data in order to do the prediction.
+ $idx = 0;
+ // Create data in graph format like.
+ while ($in_range) {
+ $now = time();
- // Check that exec time is not greater than half max exec server time
- if ($max_exec_time != false) {
- if (($begin_time + ($max_exec_time / 2)) < $now) {
- 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;
+ // Check that exec time is not greater than half max exec server time.
+ if ($max_exec_time != false) {
+ if (($begin_time + ($max_exec_time / 2)) < $now) {
+ 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;
- }
+ $timestamp_f = ($current_ts * 1000);
- $current_ts = ($current_ts + $agent_interval);
- $idx++;
+ 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.
+ 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;
diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php
index b08267d2bf..64e7ed2063 100644
--- a/pandora_console/include/functions_graph.php
+++ b/pandora_console/include/functions_graph.php
@@ -3509,7 +3509,7 @@ function graph_custom_sql_graph(
}
if ((int) $ttl === 2) {
- $options['dataLabel'] = ['display' => 'auto'];
+ $options['dataLabel'] = ['display' => true];
if ($layout !== false && is_array($layout) === true) {
$options['layout'] = $layout;
diff --git a/pandora_console/include/functions_groups.php b/pandora_console/include/functions_groups.php
index 5dd99ebce9..079aaa555a 100644
--- a/pandora_console/include/functions_groups.php
+++ b/pandora_console/include/functions_groups.php
@@ -2662,7 +2662,20 @@ function tactical_groups_get_agents_and_monitoring($id_groups, $data='')
$tdata[1] = '
'.$tdata[1].'';
if ($data['total_agents'] > 500 && !enterprise_installed()) {
- $tdata[2] = "
";
+ $tdata[2] = "
";
+ $tdata[2] .= html_print_image(
+ 'images/alert_enterprise.png',
+ true,
+ [
+ 'title' => __('Enterprise version not installed'),
+ 'class' => 'img_help'
+ ],
+ false,
+ false,
+ false,
+ true
+ );
+ $tdata[2] .= '
';
}
$tdata[3] = html_print_image('images/module.png', true, ['title' => __('Monitor checks'), 'class' => 'invert_filter'], false, false, false, true);
@@ -2676,7 +2689,20 @@ function tactical_groups_get_agents_and_monitoring($id_groups, $data='')
*/
if ($data['total_agents']) {
if (($data['monitor_total'] / $data['total_agents'] > 100) && !enterprise_installed()) {
- $tdata[5] = "
";
+ $tdata[5] = "
";
+ $tdata[5] .= html_print_image(
+ 'images/alert_enterprise.png',
+ true,
+ [
+ 'title' => __('Enterprise version not installed'),
+ 'class' => 'img_help'
+ ],
+ false,
+ false,
+ false,
+ true
+ );
+ $tdata[5] .= '
';
}
}
@@ -2728,7 +2754,20 @@ function tactical_groups_get_stats_alerts($id_groups, $data='')
*/
if ($data['monitor_alerts'] > $data['total_agents'] && !enterprise_installed()) {
- $tdata[2] = "
";
+ $tdata[2] = "
";
+ $tdata[2] .= html_print_image(
+ 'images/alert_enterprise.png',
+ true,
+ [
+ 'title' => __('Enterprise version not installed'),
+ 'class' => 'img_help'
+ ],
+ false,
+ false,
+ false,
+ true
+ );
+ $tdata[2] .= '
';
}
$tdata[3] = html_print_image(
diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php
index 6de4467d83..a1ecf8d219 100644
--- a/pandora_console/include/functions_html.php
+++ b/pandora_console/include/functions_html.php
@@ -7942,6 +7942,7 @@ function html_print_select_date_range(
$date_format_js='yy/mm/dd',
$time_format_js='HH:mm:ss',
$id='',
+ $units_selected='1',
) {
global $config;
@@ -8136,7 +8137,7 @@ function html_print_select_date_range(
$output .= html_print_select(
$units,
$name.'_units',
- '1',
+ $units_selected,
'',
'',
0,
diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php
index aa2567952b..4d4ec989c8 100755
--- a/pandora_console/include/functions_reporting.php
+++ b/pandora_console/include/functions_reporting.php
@@ -6128,7 +6128,7 @@ function reporting_alert_get_fired($id_agent_module, $id_alert_template_module,
$datelimit = ($datetime - $period);
- $empty = '----------------------------';
+ $empty = '';
if (empty($firedTimes)) {
$firedTimes = [];
$firedTimes[0]['timestamp'] = $empty;
@@ -6429,7 +6429,7 @@ function reporting_alert_report_agent($report, $content)
$data_action[$naction]['name'] = $action['name'];
$fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
- $data_action[$naction]['fired'] = '----------------------------';
+ $data_action[$naction]['fired'] = '';
} else {
$data_action[$naction]['fired'] = $fired;
}
@@ -6441,7 +6441,7 @@ function reporting_alert_report_agent($report, $content)
$data_action[$naction]['name'] = $action['name'];
$fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
- $data_action[$naction]['fired'] = '----------------------------';
+ $data_action[$naction]['fired'] = '';
} else {
$data_action[$naction]['fired'] = $fired;
}
@@ -6453,7 +6453,7 @@ function reporting_alert_report_agent($report, $content)
$data_action[$naction]['name'] = $action['name'];
$fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
- $data_action[$naction]['fired'] = '----------------------------';
+ $data_action[$naction]['fired'] = '';
} else {
$data_action[$naction]['fired'] = $fired;
}
@@ -6604,7 +6604,7 @@ function reporting_alert_report_module($report, $content)
$data_action[$naction]['name'] = $action['name'];
$fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
- $data_action[$naction]['fired'] = '----------------------------';
+ $data_action[$naction]['fired'] = '';
} else {
$data_action[$naction]['fired'] = $fired;
}
@@ -6616,7 +6616,7 @@ function reporting_alert_report_module($report, $content)
$data_action[$naction]['name'] = $action['name'];
$fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
- $data_action[$naction]['fired'] = '----------------------------';
+ $data_action[$naction]['fired'] = '';
} else {
$data_action[$naction]['fired'] = $fired;
}
@@ -6628,7 +6628,7 @@ function reporting_alert_report_module($report, $content)
$data_action[$naction]['name'] = $action['name'];
$fired = $action['fired'];
if ($fired == 0 || ($fired <= $datelimit || $fired > $datetime)) {
- $data_action[$naction]['fired'] = '----------------------------';
+ $data_action[$naction]['fired'] = '';
} else {
$data_action[$naction]['fired'] = $fired;
}
@@ -6692,6 +6692,7 @@ function reporting_sql_graph(
switch ($type_sql_graph) {
case 'sql_graph_hbar':
default:
+ $layout = ['padding' => ['right' => '40']];
$return['type'] = 'sql_graph_hbar';
break;
diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php
index c3fceb7644..1238609915 100644
--- a/pandora_console/include/functions_reporting_html.php
+++ b/pandora_console/include/functions_reporting_html.php
@@ -1712,7 +1712,7 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
$table1->head[3] = __('Name');
$table1->head[4] = __('Agent');
$table1->head[5] = __('Severity');
- $table1->head[6] = __('Val. by');
+ $table1->head[6] = __('Validated by');
$table1->head[7] = __('Timestamp');
} else {
$table1->head[0] = __('Status');
@@ -1720,7 +1720,7 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
$table1->head[2] = __('Name');
$table1->head[3] = __('Agent');
$table1->head[4] = __('Severity');
- $table1->head[5] = __('Val. by');
+ $table1->head[5] = __('Validated by');
$table1->head[6] = __('Timestamp');
}
@@ -1801,7 +1801,11 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
'id_user',
$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']) {
@@ -3845,7 +3849,7 @@ function reporting_html_event_report_agent($table, $item, $pdf=0)
$table1->head[2] = __('Name');
$table1->head[4] = __('Severity');
- $table1->head[5] = __('Val. by');
+ $table1->head[5] = __('Validated by');
$table1->head[6] = __('Timestamp');
if ((bool) $item['show_custom_data'] === true) {
$table1->head[7] = __('Custom data');
@@ -3904,7 +3908,11 @@ function reporting_html_event_report_agent($table, $item, $pdf=0)
$data[] = '
'.__('System').'';
} else {
$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']) {
diff --git a/pandora_console/include/javascript/pandora_dashboards.js b/pandora_console/include/javascript/pandora_dashboards.js
index b6e20aa4ba..9acd059543 100644
--- a/pandora_console/include/javascript/pandora_dashboards.js
+++ b/pandora_console/include/javascript/pandora_dashboards.js
@@ -1722,3 +1722,16 @@ function show_projection_period() {
$("#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");
+ }
+ });
+}
diff --git a/pandora_console/install.php b/pandora_console/install.php
index d97bd64d26..3b55fe9968 100644
--- a/pandora_console/install.php
+++ b/pandora_console/install.php
@@ -131,7 +131,7 @@
= $datetime_end) {
$datetime_init = $date_init_less;
@@ -55,7 +56,6 @@ if ($custom_date === '1') {
$date_end = date('Y/m/d H:i:s', $datetime_end);
$period = ($datetime_end - $datetime_init);
} else if ($custom_date === '2') {
- $date_units = get_parameter('utimestamp_units');
$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)));
$period = (strtotime($date_end) - strtotime($date_init));
@@ -768,7 +768,14 @@ if (is_metaconsole() === false) {
date('H:i:s', $date_init),
date('Y/m/d', $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
)
);
}
diff --git a/pandora_console/operation/reporting/graph_analytics.php b/pandora_console/operation/reporting/graph_analytics.php
index 4b5facb139..e5c910bb43 100644
--- a/pandora_console/operation/reporting/graph_analytics.php
+++ b/pandora_console/operation/reporting/graph_analytics.php
@@ -55,11 +55,12 @@ if (is_ajax()) {
$search = io_safe_input($search_left);
// 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_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));
$search_sql = ' AND (nombre LIKE "%%'.$search.'%%" OR alias LIKE "%%'.$search.'%%")';
@@ -197,6 +198,9 @@ if (is_ajax()) {
'graph_analytics' => true,
];
+ // Included dependencies when is an ajax request.
+ include_javascript_dependencies_flot_graph(false);
+
$graph_return = graphic_combined_module(
$modules,
$params,
diff --git a/pandora_console/operation/snmpconsole/snmp_view.php b/pandora_console/operation/snmpconsole/snmp_view.php
index 1073598c51..c9fea95119 100755
--- a/pandora_console/operation/snmpconsole/snmp_view.php
+++ b/pandora_console/operation/snmpconsole/snmp_view.php
@@ -36,6 +36,7 @@ $ajaxPage = $config['homedir'].'/operation/snmpconsole/snmp_view';
$filter_alert = get_parameter('filter_alert', -1);
$filter_severity = get_parameter('filter_severity', -1);
$filter_free_search = get_parameter('filter_free_search', '');
+$filter_alias_search = get_parameter('filter_alias_search', '');
$filter_status = get_parameter('filter_status', 0);
$filter_group_by = get_parameter('filter_group_by', 0);
$filter_hours_ago = get_parameter('filter_hours_ago', 8);
@@ -54,7 +55,8 @@ try {
$filter_group_by,
$filter_hours_ago,
$filter_trap_type,
- $refr
+ $refr,
+ $filter_alias_search
);
} catch (Exception $e) {
if ((bool) is_ajax() === true) {
diff --git a/pandora_console/pandora_console.redhat.spec b/pandora_console/pandora_console.redhat.spec
index 542063a115..b823863f7d 100644
--- a/pandora_console/pandora_console.redhat.spec
+++ b/pandora_console/pandora_console.redhat.spec
@@ -6,7 +6,7 @@
%define debug_package %{nil}
%define name pandorafms_console
%define version 7.0NG.776
-%define release 240503
+%define release 240508
# User and Group under which Apache is running
%define httpd_name httpd
diff --git a/pandora_console/pandora_console.rhel7.spec b/pandora_console/pandora_console.rhel7.spec
index adde143f1b..fe3d58e948 100644
--- a/pandora_console/pandora_console.rhel7.spec
+++ b/pandora_console/pandora_console.rhel7.spec
@@ -6,7 +6,7 @@
%define debug_package %{nil}
%define name pandorafms_console
%define version 7.0NG.776
-%define release 240503
+%define release 240508
# User and Group under which Apache is running
%define httpd_name httpd
diff --git a/pandora_console/pandora_console.spec b/pandora_console/pandora_console.spec
index 95b39754c8..a14c540e7e 100644
--- a/pandora_console/pandora_console.spec
+++ b/pandora_console/pandora_console.spec
@@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.776
-%define release 240503
+%define release 240508
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index 9b4d2b595a..8696d17d95 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -3777,6 +3777,7 @@ CREATE TABLE IF NOT EXISTS `tlayout_template` (
`maintenance_mode` TEXT,
`grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc',
`grid_size` VARCHAR(45) NOT NULL DEFAULT '10',
+ `create_from` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql
index 83f017d531..d76f65b3f8 100644
--- a/pandora_console/pandoradb_data.sql
+++ b/pandora_console/pandoradb_data.sql
@@ -1217,7 +1217,7 @@ INSERT INTO `tagent_custom_fields` VALUES (1,'Serial Number',0,0,'',0),(2,'
INSERT INTO `ttag` VALUES (1,'network','Network equipment','http://pandorafms.com','','',''),(2,'critical','Critical modules','','','',''),(3,'dmz','DMZ Network Zone','','','',''),(4,'performance','Performance anda capacity modules','','','',''),(5,'configuration','','','','','');
-INSERT INTO `tevent_response` VALUES (1,'Ping to host','Ping to the agent host','ping -c 5 _agent_address_','command',0,620,500,0,'',0,90,0),(3,'Create incident from event','Create a incident from the event with the standard incidents system of Pandora FMS','index.php?sec=workspace&sec2=operation/incidents/incident_detail&insert_form&from_event=_event_id_','url',0,0,0,1,'',0,90,0),(5,'Restart agent','Restart the agent with using UDP protocol.
To use this response is necessary to have installed Pandora FMS server and console in the same machine.','/usr/share/pandora_server/util/udp_client.pl _agent_address_ 41122 "REFRESH AGENT"','command',0,620,500,0,'',0,90,0),(6,'Ping to module agent host','Ping to the module agent host','ping -c 5 _module_address_','command',0,620,500,0,'',0,90,0),(7,'Create ticket in Pandora ITSM from event','Create a ticket in Pandora ITSM from an event','index.php?sec=manageTickets&sec2=operation/ITSM/itsm&operation=edit&from_event=_event_id_','url',0,0,0,1,'',0,90,1);
+INSERT INTO `tevent_response` VALUES (1,'Ping to host','Ping to the agent host','ping -c 5 _agent_address_','command',0,620,500,0,'',0,90,0),(5,'Restart agent','Restart the agent with using UDP protocol.
To use this response is necessary to have installed Pandora FMS server and console in the same machine.','/usr/share/pandora_server/util/udp_client.pl _agent_address_ 41122 "REFRESH AGENT"','command',0,620,500,0,'',0,90,0),(6,'Ping to module agent host','Ping to the module agent host','ping -c 5 _module_address_','command',0,620,500,0,'',0,90,0),(7,'Create ticket in Pandora ITSM from event','Create a ticket in Pandora ITSM from an event','index.php?sec=manageTickets&sec2=operation/ITSM/itsm&operation=edit&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', '');
diff --git a/pandora_console/views/dashboard/layout.php b/pandora_console/views/dashboard/layout.php
index 4d1553dd7e..478d0f0f4e 100644
--- a/pandora_console/views/dashboard/layout.php
+++ b/pandora_console/views/dashboard/layout.php
@@ -94,5 +94,8 @@ echo $output;
$("#button-add-widget-"+cellId).trigger("click");
}, 500);
}
+
+ // Paused and resume if edit mode is checked.
+ paused_resume_dashboard_countdown();
});
diff --git a/pandora_server/DEBIAN/control b/pandora_server/DEBIAN/control
index f4737b6c1d..b588d7b1d1 100644
--- a/pandora_server/DEBIAN/control
+++ b/pandora_server/DEBIAN/control
@@ -1,5 +1,5 @@
package: pandorafms-server
-Version: 7.0NG.776-240503
+Version: 7.0NG.776-240508
Architecture: all
Priority: optional
Section: admin
diff --git a/pandora_server/DEBIAN/make_deb_package.sh b/pandora_server/DEBIAN/make_deb_package.sh
index d6809d6d40..7a20561466 100644
--- a/pandora_server/DEBIAN/make_deb_package.sh
+++ b/pandora_server/DEBIAN/make_deb_package.sh
@@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-pandora_version="7.0NG.776-240503"
+pandora_version="7.0NG.776-240508"
package_cpan=0
package_pandora=1
diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm
index 1c0fe1b622..cb158a6872 100644
--- a/pandora_server/lib/PandoraFMS/Config.pm
+++ b/pandora_server/lib/PandoraFMS/Config.pm
@@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776";
-my $pandora_build = "240503";
+my $pandora_build = "240508";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash
diff --git a/pandora_server/lib/PandoraFMS/PluginTools.pm b/pandora_server/lib/PandoraFMS/PluginTools.pm
index b5c72ab6c1..8d7a7db7a8 100644
--- a/pandora_server/lib/PandoraFMS/PluginTools.pm
+++ b/pandora_server/lib/PandoraFMS/PluginTools.pm
@@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776";
-my $pandora_build = "240503";
+my $pandora_build = "240508";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec
index 7cc4e63064..8e03bdd0f6 100644
--- a/pandora_server/pandora_server.redhat.spec
+++ b/pandora_server/pandora_server.redhat.spec
@@ -7,7 +7,7 @@
%define debug_package %{nil}
%define name pandorafms_server
%define version 7.0NG.776
-%define release 240503
+%define release 240508
Summary: Pandora FMS Server
Name: %{name}
diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec
index 16ad3ac618..b60ef75ce8 100644
--- a/pandora_server/pandora_server.spec
+++ b/pandora_server/pandora_server.spec
@@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_server
%define version 7.0NG.776
-%define release 240503
+%define release 240508
Summary: Pandora FMS Server
Name: %{name}
diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer
index 5a42f571c6..092681a8b4 100755
--- a/pandora_server/pandora_server_installer
+++ b/pandora_server/pandora_server_installer
@@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.776"
-PI_BUILD="240503"
+PI_BUILD="240508"
MODE=$1
if [ $# -gt 1 ]; then
diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl
index 511a173cf1..49587f6da2 100755
--- a/pandora_server/util/pandora_db.pl
+++ b/pandora_server/util/pandora_db.pl
@@ -38,7 +38,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
-my $version = "7.0NG.776 Build 240503";
+my $version = "7.0NG.776 Build 240508";
# Pandora server configuration
my %conf;
diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl
index a74b93661d..5bcdac301e 100755
--- a/pandora_server/util/pandora_manage.pl
+++ b/pandora_server/util/pandora_manage.pl
@@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
-my $version = "7.0NG.776 Build 240503";
+my $version = "7.0NG.776 Build 240508";
# save program name for logging
my $progname = basename($0);