Merge branch 'develop' into ent-12997-eliminar-sistema-de-skins

This commit is contained in:
Jonathan 2024-03-19 10:51:15 +01:00
commit 9fc77e69b2
113 changed files with 143939 additions and 144985 deletions

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, AIX version
# Version 7.0NG.776, AIX version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, FreeBSD Version
# Version 7.0NG.776, FreeBSD Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, HP-UX Version
# Version 7.0NG.776, HP-UX Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, GNU/Linux
# Version 7.0NG.776, GNU/Linux
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, GNU/Linux
# Version 7.0NG.776, GNU/Linux
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, Solaris Version
# Version 7.0NG.776, Solaris Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,6 +1,6 @@
# Base config file for Pandora FMS Windows Agent
# (c) 2006-2023 Pandora FMS
# Version 7.0NG.775
# Version 7.0NG.776
# This program is Free Software, you can redistribute it and/or modify it
# under the terms of the GNU General Public Licence as published by the Free Software
# Foundation; either version 2 of the Licence or any later version

View File

@ -1,6 +1,6 @@
# Fichero de configuracion base de agentes de Pandora
# Base config file for Pandora agents
# Version 7.0NG.775, AIX version
# Version 7.0NG.776, AIX version
# General Parameters
# ==================

View File

@ -1,6 +1,6 @@
# Fichero de configuracion base de agentes de Pandora
# Base config file for Pandora agents
# Version 7.0NG.775
# Version 7.0NG.776
# FreeBSD/IPSO version
# Licenced under GPL licence, 2003-2007 Sancho Lerena

View File

@ -1,6 +1,6 @@
# Fichero de configuracion base de agentes de Pandora
# Base config file for Pandora agents
# Version 7.0NG.775, HPUX Version
# Version 7.0NG.776, HPUX Version
# General Parameters
# ==================

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775
# Version 7.0NG.776
# Licensed under GPL license v2,
# (c) 2003-2023 Pandora FMS
# please visit http://pandora.sourceforge.net

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775
# Version 7.0NG.776
# Licensed under GPL license v2,
# (c) 2003-2023 Pandora FMS
# please visit http://pandora.sourceforge.net

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775
# Version 7.0NG.776
# Licensed under GPL license v2,
# please visit http://pandora.sourceforge.net

View File

@ -1,6 +1,6 @@
# Fichero de configuracion base de agentes de Pandora
# Base config file for Pandora agents
# Version 7.0NG.775, Solaris version
# Version 7.0NG.776, Solaris version
# General Parameters
# ==================

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, AIX version
# Version 7.0NG.776, AIX version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

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

View File

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

View File

@ -31,7 +31,7 @@ fi
if [ "$#" -ge 2 ]; then
VERSION="$2"
else
VERSION="7.0NG.775"
VERSION="7.0NG.776"
fi
# Path for the generated DMG file

View File

@ -19,11 +19,11 @@
<choice id="com.pandorafms.pandorafms_src" visible="false">
<pkg-ref id="com.pandorafms.pandorafms_src"/>
</choice>
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.775" onConclusion="none">pandorafms_src.pdk</pkg-ref>
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.776" onConclusion="none">pandorafms_src.pdk</pkg-ref>
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
</choice>
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.775" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.776" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
<!-- <installation-check script="check()" />
<script>
<![CDATA[

View File

@ -5,9 +5,9 @@
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
<key>CFBundleVersion</key> <string>7.0NG.775</string>
<key>CFBundleGetInfoString</key> <string>7.0NG.775 Pandora FMS on Aug 2020</string>
<key>CFBundleShortVersionString</key> <string>7.0NG.775</string>
<key>CFBundleVersion</key> <string>7.0NG.776</string>
<key>CFBundleGetInfoString</key> <string>7.0NG.776 Pandora FMS on Aug 2020</string>
<key>CFBundleShortVersionString</key> <string>7.0NG.776</string>
<key>NSPrincipalClass</key><string>NSApplication</string>
<key>NSMainNibFile</key><string>MainMenu</string>

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, GNU/Linux
# Version 7.0NG.776, GNU/Linux
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, FreeBSD Version
# Version 7.0NG.776, FreeBSD Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, HP-UX Version
# Version 7.0NG.776, HP-UX Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775
# Version 7.0NG.776
# Licensed under GPL license v2,
# Copyright (c) 2004-2023 Pandora FMS
# https://pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, GNU/Linux
# Version 7.0NG.776, GNU/Linux
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, NetBSD Version
# Version 7.0NG.776, NetBSD Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1,5 +1,5 @@
# Base config file for Pandora FMS agents
# Version 7.0NG.775, Solaris Version
# Version 7.0NG.776, Solaris Version
# Licensed under GPL license v2,
# Copyright (c) 2003-2023 Pandora FMS
# http://www.pandorafms.com

View File

@ -1038,8 +1038,8 @@ my $Sem = undef;
# Semaphore used to control the number of threads
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.775';
use constant AGENT_BUILD => '240311';
use constant AGENT_VERSION => '7.0NG.776';
use constant AGENT_BUILD => '240319';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,8 +3,8 @@
#
%global __os_install_post %{nil}
%define name pandorafms_agent_linux
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -4,8 +4,8 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
%define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version

View File

@ -4,8 +4,8 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
%define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version

View File

@ -4,8 +4,8 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
Summary: Pandora FMS Linux agent, binary version
Name: %{name}

View File

@ -3,8 +3,8 @@
#
%global __os_install_post %{nil}
%define name pandorafms_agent_linux
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -9,8 +9,8 @@
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
# **********************************************************************
PI_VERSION="7.0NG.775"
PI_BUILD="240311"
PI_VERSION="7.0NG.776"
PI_BUILD="240319"
OS_NAME=`uname -s`
FORCE=0

View File

@ -1,6 +1,6 @@
# Base config file for Pandora FMS Windows Agent
# (c) 2006-2023 Pandora FMS
# Version 7.0NG.775
# Version 7.0NG.776
# This program is Free Software, you can redistribute it and/or modify it
# under the terms of the GNU General Public Licence as published by the Free Software
# Foundation; either version 2 of the Licence or any later version

View File

@ -3,7 +3,7 @@ AllowLanguageSelection
{Yes}
AppName
{Pandora FMS Windows Agent v7.0NG.775}
{Pandora FMS Windows Agent v7.0NG.776}
ApplicationID
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{240311}
{240319}
ViewReadme
{Yes}

View File

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

View File

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

View File

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

View File

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

View File

@ -23,7 +23,7 @@ window.onload = function() {
// the following lines will be replaced by docker/configurator, when it runs in a docker-container
const ui = SwaggerUIBundle({
url: "../v1/swagger.json",
url: "../v2/swagger.json",
dom_id: "#swagger-ui",
docExpansion: "none",
deepLinking: true,

View File

@ -7,7 +7,7 @@
},
"servers": [
{
"url": "/api/v1",
"url": "/api/v2",
"description": "PandoraFMS API Server"
}
],

View File

@ -1,4 +1,6 @@
pandorafms.vmware=248788e0fb2cd4e11623e4a52ee7d05b
pandorafms.vmware=a272ee00a9b5f201bb708bef72bbe276
pandorafms.mysql=fadb4750d18285c0eca34f47c6aa3cfe
pandorafms.vmware=1deafce1d55d3574645d8b136104e9ad
pandorafms.mysql=ca7dd8b80a1a03a25eb0fb077818ad63
pandorafms.mssql=1cc215409741d19080269ffba112810e
pandorafms.oracle=abdfd7280f76276f696115cabdac731e

View File

@ -61,6 +61,11 @@ CREATE TABLE IF NOT EXISTS `tmerge_queries` (
ALTER TABLE `tmerge_queries` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
-- Update version for plugin oracle
UPDATE `tdiscovery_apps` SET `version` = '1.2' WHERE `short_name` = 'pandorafms.oracle';
-- Update version for plugin oracle
UPDATE `tdiscovery_apps` SET `version` = '1.3' WHERE `short_name` = 'pandorafms.vmware';
ALTER TABLE `tevent_sound` MODIFY COLUMN `name` text NULL;
ALTER TABLE `tevent_sound` MODIFY COLUMN `sound` text NULL;
ALTER TABLE `treport_content` MODIFY COLUMN `use_prefix_notation` tinyint unsigned NOT NULL DEFAULT 1;
@ -69,8 +74,17 @@ ALTER TABLE `tsesion_filter` MODIFY COLUMN `id_name` text NULL;
ALTER TABLE `tsesion_filter` MODIFY COLUMN `ip` text NULL;
ALTER TABLE `tsesion_filter` MODIFY COLUMN `type` text NULL;
ALTER TABLE `tsesion_filter` MODIFY COLUMN `user` text NULL;
ALTER TABLE `tncm_agent_data`
ADD COLUMN `id_agent_data` int not null default 0 AFTER `script_type`;
SET @st_oum776 = (SELECT IF(
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tncm_agent_data' AND table_schema = DATABASE() AND column_name = 'id_agent_data') > 0,
"SELECT 1",
"ALTER TABLE `tncm_agent_data` ADD COLUMN `id_agent_data` int not null default 0 AFTER `script_type`"
));
PREPARE pr_oum776 FROM @st_oum776;
EXECUTE pr_oum776;
DEALLOCATE PREPARE pr_oum776;
ALTER TABLE `tusuario` CHANGE COLUMN `metaconsole_data_section` `metaconsole_data_section` TEXT NOT NULL DEFAULT '' ;
ALTER TABLE `tmensajes` ADD COLUMN `icon_notification` VARCHAR(250) NULL DEFAULT NULL AFTER `url`;
@ -159,4 +173,8 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_ha_databases` (
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
ALTER TABLE `tserver` ADD COLUMN `disabled` BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE `tuser_task_scheduled` ADD COLUMN `id_report` INT NULL AFTER `id_user_task`;
ALTER TABLE `tuser_task_scheduled` ADD COLUMN `name` VARCHAR(255) NULL AFTER `id_user_task`;
COMMIT;

View File

@ -2,7 +2,7 @@
echo '<script src="'.ui_get_full_url('include/javascript/jquery.current.js', false, false, false).'" type="text/javascript"></script>';
$message = '';
$config['ignore_cache_translate'] = true;
if ($config['history_db_connection'] === false) {
$message = __('Failure to connect to historical database, please check the configuration or contact system administrator if you need assistance.');
} else {

View File

@ -376,6 +376,7 @@ $img_style = [
];
if ($id_agente) {
$menu_tabs = [];
// View tab.
$viewtab['text'] = html_print_anchor(
[
@ -391,6 +392,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente='.$id_agente.'">'.__('View').'</a>';
array_push($menu_tabs, $menu_tab_url);
$viewtab['active'] = ($tab === 'view');
$viewtab['operation'] = 1;
@ -410,6 +413,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=main&amp;id_agente='.$id_agente.'">'.__('Setup').'</a>';
array_push($menu_tabs, $menu_tab_url);
$maintab['active'] = ($tab === 'main');
@ -428,6 +433,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=module&amp;id_agente='.$id_agente.'">'.__('Modules').'</a>';
array_push($menu_tabs, $menu_tab_url);
$moduletab['active'] = ($tab === 'module');
@ -446,6 +453,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=alert&amp;id_agente='.$id_agente.'">'.__('Alerts').'</a>';
array_push($menu_tabs, $menu_tab_url);
$alerttab['active'] = ($tab === 'alert');
@ -458,6 +467,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=template&amp;id_agente='.$id_agente.'">'.__('Module templates').'</a>';
array_push($menu_tabs, $menu_tab_url);
$templatetab['active'] = ($tab === 'template');
@ -470,6 +481,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=policy&amp;id_agente='.$id_agente.'">'.__('Manage policy').'</a>';
array_push($menu_tabs, $menu_tab_url);
$policyTab['active'] = ($tab === 'policy');
@ -482,6 +495,8 @@ if ($id_agente) {
'class' => 'main_menu_icon invert_filter',
]
).'</a>';
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=inventory&id_agente='.$id_agente.'">'.__('Inventory').'</a>';
array_push($menu_tabs, $menu_tab_url);
if ($tab == 'inventory') {
$inventorytab['active'] = true;
@ -502,6 +517,9 @@ if ($id_agente) {
$pluginstab = enterprise_hook('plugins_tab');
if ($pluginstab === ENTERPRISE_NOT_HOOK) {
$pluginstab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=plugins&id_agente='.$id_agente.'">'.__('Plugins').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
} else {
$pluginstab = '';
@ -512,6 +530,9 @@ if ($id_agente) {
$collectiontab = enterprise_hook('collection_tab');
if ($collectiontab === ENTERPRISE_NOT_HOOK) {
$collectiontab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=collection&id_agente='.$id_agente.'">'.__('Collection').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
} else {
$collectiontab = '';
@ -532,6 +553,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&ag_group='.$group.'">'.__('Group').'</a>';
array_push($menu_tabs, $menu_tab_url);
$grouptab['active'] = false;
@ -550,6 +573,8 @@ if ($id_agente) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=gis&id_agente='.$id_agente.'">'.__('GIS data').'</a>';
array_push($menu_tabs, $menu_tab_url);
$gistab['active'] = ($tab === 'gis');
}
@ -598,6 +623,12 @@ if ($id_agente) {
).'</a>';
$agent_wizard['sub_menu'] .= '</li>';
$agent_wizard['sub_menu'] .= '</ul>';
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_explorer&id_agente='.$id_agente.'">'.__('SNMP Wizard').'</a>';
array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_interfaces_explorer&id_agente='.$id_agente.'">'.__('SNMP Interfaces wizard').'</a>';
array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=wmi_explorer&id_agente='.$id_agente.'">'.__('WMI Wizard').'</a>';
array_push($menu_tabs, $menu_tab_url);
if ($tab == 'agent_wizard') {
@ -816,22 +847,6 @@ if ($id_agente) {
$helper = ($help_header === 'main_tab') ? 'main_tab' : '';
$pure = (int) get_parameter('pure');
$menu_tabs = [];
// Agent details.
$menu_tab_url = '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&section=general">'.__('General setup').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Agent details.
$menu_tab_url = '<a href="index.php?sec=view&sec2=operation/agentes/estado_agente">'.__('Agent detail').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Manage agents.
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente">'.__('Manage agents').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Events.
$menu_tab_url = '<a href="index.php?sec=eventos&sec2=operation/events/events">'.__('View events').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Events.
$menu_tab_url = '<a href="index.php?sec=reporting&sec2=godmode/reporting/reporting_builder">'.__('Custom reports').'</a>';
array_push($menu_tabs, $menu_tab_url);
$dots = dot_tab($menu_tabs);
if ($pure === 0) {
ui_print_standard_header(

View File

@ -71,7 +71,7 @@ if ((bool) check_acl($config['id_user'], 0, 'AR') === true
$sub2['godmode/servers/discovery&wiz=hd&mode=managenetscanscripts']['text'] = __('Manage scan scripts');
}
$sub['godmode/servers/discovery&wiz=hd']['text'] = __('Host & devices');
$sub['godmode/servers/discovery&wiz=hd']['text'] = __('Host & Devices');
$sub['godmode/servers/discovery&wiz=hd']['id'] = 'hd';
$sub['godmode/servers/discovery&wiz=hd']['type'] = 'direct';
$sub['godmode/servers/discovery&wiz=hd']['subtype'] = 'nolink';

View File

@ -0,0 +1,343 @@
<?php
// Pandora FMS - https://pandorafms.com
// ==================================================
// Copyright (c) 2005-2023 Pandora FMS
// Please see https://pandorafms.com/community/ for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars.
global $config;
// Check ACL.
if (!check_acl($config['id_user'], 0, 'RW')
&& !check_acl($config['id_user'], 0, 'RM')
) {
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access SNMP Filter Management'
);
include 'general/noaccess.php';
return;
}
require 'include/functions_cron.php';
// Header.
ui_print_standard_header(
__('Schedule'),
'images/op_snmp.png',
false,
'',
false,
[],
[
[
'link' => '',
'label' => __('Reporting'),
],
[
'link' => '',
'label' => __('Custom Reports'),
],
]
);
$id_task = get_parameter('id_task', null);
$name = '';
$id_report = '';
$task = '';
$group = 0;
$schedule = '';
$console = '';
$date = '';
$time = '';
$args = '';
if (isset($id_task) === true) {
$row = db_get_row('tuser_task_scheduled', 'id', $id_task);
$name = $row['name'];
$id_report = $row['id_report'];
$task = $row['id_user_task'];
$group = $row['id_grupo'];
$schedule = $row['scheduled'];
$console = $row['id_console'];
$args = unserialize($row['args']);
$date = date('Y/m/d', $args['first_execution']);
$time = date('H:i:s', $args['first_execution']);
}
$table = new stdClass();
$traps_generator = '<form id="form_manage" class="max_floating_element_size" method="POST" action="index.php?sec=custom_report&sec2=godmode/reporting/schedule">';
$table->id = 'table_manage';
$table->width = '100%';
$table->class = 'filter-table-adv databox';
$table->size = [];
$table->data = [];
$table->size[0] = '50%';
$table->size[1] = '50%';
$table->data[0][0] = html_print_label_input_block(
__('Name'),
html_print_input_text(
'name',
$name,
'',
50,
255,
true
)
);
$reports = db_get_all_rows_sql('SELECT id_report, name FROM treport');
if ($reports !== false) {
$array_reports = [];
foreach ($reports as $row) {
$array_reports[$row['id_report']] = $row['name'];
}
}
$table->data[0][1] = html_print_label_input_block(
__('Report'),
html_print_select(
$array_reports,
'id_report',
$id_report,
'',
__('Select'),
-1,
true,
false,
true,
'w100p'
)
);
// Remove Send csv log in list new console task.
$tasks = get_tasks();
// Unset to take just Reports ones.
unset($tasks[4], $tasks[5], $tasks[6], $tasks[7]);
if (($key = array_search('Send csv log', $tasks)) !== false) {
unset($tasks[$key]);
}
$table->data[1][0] = html_print_label_input_block(
__('Task'),
html_print_select(
$tasks,
'id_user_task',
$task,
'',
__('Select'),
-1,
true,
false,
false,
'',
false,
'width: 100%'
)
);
$table->data[1][1] = html_print_label_input_block(
__('Group'),
html_print_select_groups(
false,
'AR',
true,
'group',
$group,
'',
'',
'',
true,
false,
true,
'',
false,
'width: 100%',
false,
false,
false,
false,
false,
false,
false,
false,
true
)
);
$table->data[2][0] = html_print_label_input_block(
__('Scheduled'),
html_print_select(
cron_get_scheduled_options(),
'scheduled',
$schedule,
'',
'',
0,
true,
false,
false,
'',
false,
'width: 100%'
)
);
$table->data[2][1] = html_print_label_input_block(
__('Console'),
html_print_select(
$registered_consoles_opts,
'console',
$console,
'',
__('Any'),
0,
true,
false,
false,
'',
false,
'width: 100%'
)
);
$table->data[3][0] = html_print_label_input_block(
__('Next execution'),
html_print_input_text(
'date',
$date,
'',
50,
255,
true
)
);
$table->data[3][1] = html_print_label_input_block(
__('Hour'),
html_print_input_text(
'time',
$time,
'',
50,
255,
true
)
);
$table->colspan[4][0] = 2;
$table->data[4][0] = html_print_label_input_block(__('Parameters'), cron_render_parameters($task, $args, $id_report, true));
$traps_generator .= html_print_table($table, true);
if (isset($id_task) === true) {
$buttons[] = html_print_submit_button(
__('Update schedule'),
'btn_generate_trap',
false,
[
'class' => 'sub ok submitButton',
'icon' => 'next',
],
true
).html_print_input_hidden('update_schedule', 1, true).html_print_input_hidden('id', $id_task, true);
} else {
$buttons[] = html_print_submit_button(
__('Create schedule'),
'btn_generate_trap',
false,
[
'class' => 'sub ok submitButton',
'icon' => 'next',
],
true
).html_print_input_hidden('new_schedule', 1, true);
}
$buttons[] = html_print_button(
__('Go back'),
'button_back',
false,
'',
[
'icon' => 'back',
'mode' => 'secondary',
],
true
);
$traps_generator .= '<div class="action-buttons">'.html_print_action_buttons(implode('', $buttons), ['type' => 'form_action'], true).'</div>';
unset($table);
$traps_generator .= '</form>';
echo $traps_generator;
ui_require_css_file('datepicker');
ui_include_time_picker();
ui_require_jquery_file('ui.datepicker-'.get_user_language(), 'include/javascript/i18n/');
?>
<script type="text/javascript">
$(document).ready(function() {
$('#text-time').timepicker({
showSecond: true,
timeFormat: '<?php echo TIME_FORMAT_JS; ?>',
timeOnlyTitle: '<?php echo __('Choose time'); ?>',
timeText: '<?php echo __('Time'); ?>',
hourText: '<?php echo __('Hour'); ?>',
minuteText: '<?php echo __('Minute'); ?>',
secondText: '<?php echo __('Second'); ?>',
currentText: '<?php echo __('Now'); ?>',
closeText: '<?php echo __('Close'); ?>'});
$('#text-date').datepicker ({
dateFormat: '<?php echo DATE_FORMAT_JS; ?>',
changeMonth: true,
changeYear: true,
showAnim: 'slideDown',
firstDay: "<?php echo $config['datepicker_first_day']; ?>",
});
$('#id_user_task, #id_report').on('change', function() {
$.ajax({
url: 'ajax.php',
data: {
"page" : "enterprise/include/ajax/ConsoleTasks.ajax",
"get_task_parameters": 1,
"id_user_task": $('#id_user_task :selected').val(),
"id_report": $('#id_report :selected').val(),
},
type: 'POST',
success: function (data) {
$('#table_manage-4-0').find('table').html("");
$('#table_manage-4-0').append(data);
}
});
});
$('#button-btn_generate_trap').on('click', function() {
event.preventDefault();
var name = $('#text-name').val();
var report = $('#id_report :selected').val();
var task = $('#id_user_task :selected').val();
var group = $('#group :selected').val();
if (name !== '' && report !== '-1' && task !== '-1' && group !== '') {
$('#form_manage').submit();
} else {
confirmDialog({
title: "<?php echo __('Error'); ?>",
message: "<?php echo __('Name, Report, Task and Group are required.'); ?>",
hideCancelButton: true,
});
}
})
});
$('#button-button_back').on('click', function(){
window.location = '<?php echo ui_get_full_url('index.php?sec=custom_report&sec2=godmode/reporting/schedule'); ?>';
});
</script>

View File

@ -1282,24 +1282,6 @@ switch ($action) {
);
}
$discovery_tasklist = new DiscoveryTaskList();
$report_task_data = $discovery_tasklist->showListConsoleTask(true);
if (is_array($report_task_data) === true || (strpos($report_task_data, 'class="nf"') === false && $report_task_data !== -1)) {
$task_table = '<div class="mrgn_top_15px white_box">';
$task_table .= '<span class="white_table_graph_header">'.__('Report tasks');
$task_table .= ui_print_help_tip(__('To schedule a report, do it from the editing view of each report.'), true);
$task_table .= '</span><div>';
$task_table .= $report_task_data;
$task_table .= '</div></div>';
echo $task_table;
} else {
if ($report_task_data === -1) {
$report_task_data = '';
}
ui_print_info_message($report_task_data.__('To schedule a report, do it from the editing view of each report.'));
}
if (check_acl($config['id_user'], 0, 'RW')
|| check_acl($config['id_user'], 0, 'RM')
) {

View File

@ -0,0 +1,271 @@
<?php
/**
* Report item list.
*
* @category Reporting
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2023 Pandora FMS
* Please see https://pandorafms.com/community/ for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
global $config;
// Login check.
check_login();
if (!check_acl($config['id_user'], 0, 'RW')
&& !check_acl($config['id_user'], 0, 'RM')
) {
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access report builder'
);
include 'general/noaccess.php';
exit;
}
require_once $config['homedir'].'/include/functions_agents.php';
enterprise_include_once('include/functions_metaconsole.php');
// Header.
ui_print_standard_header(
__('Schedule'),
'images/op_reporting.png',
false,
'',
false,
[],
[
[
'link' => '',
'label' => __('Reporting'),
],
[
'link' => '',
'label' => __('Custom reports'),
],
]
);
$delete_task = get_parameter('delete_task', false);
if ($delete_task !== false) {
db_process_sql(sprintf('DELETE FROM tuser_task_scheduled WHERE id = %s', $delete_task));
ui_print_result_message(
true,
__('Successfully deleted')
);
}
$update_schedule = get_parameter('update_schedule', false);
if ($update_schedule === '1') {
enterprise_include_once('/godmode/wizards/ConsoleTasks.class.php');
$task = new ConsoleTasks(0, 'Default message. Not set.', '/images/wizard/consoletasks.png', 'Report Tasks', true);
$task->updateTask();
ui_print_result_message(
true,
__('Successfully updated')
);
}
$new_schedule = get_parameter('new_schedule', false);
if ($new_schedule === '1') {
$name = get_parameter('name', null);
$sql = sprintf('SELECT * FROM tuser_task_scheduled WHERE name = "%s"', $name);
if (db_get_all_rows_sql($sql) === false) {
enterprise_include_once('/godmode/wizards/ConsoleTasks.class.php');
$task = new ConsoleTasks(0, 'Default message. Not set.', '/images/wizard/consoletasks.png', 'Report Tasks', true);
$result = $task->createTask();
} else {
$result = false;
$_SESSION['report_task_msg'] = __('The schedule name is already in use.');
}
ui_print_result_message(
$result,
__('Successfully created'),
$_SESSION['report_task_msg']
);
}
$id_group = get_parameter('id_group', 0);
$search = get_parameter('search', '');
$table_aux = new stdClass();
$table_aux->width = '100%';
$table_aux->class = 'filter-table-adv';
$table_aux->size[0] = '50%';
$table_aux->size[1] = '50%';
$table_aux->data[0][0] = html_print_label_input_block(
__('Group'),
html_print_select_groups(
false,
$access,
true,
'id_group',
$id_group,
'',
'',
'',
true,
false,
true,
'',
false,
'',
false,
false,
'id_grupo'
)
);
$table_aux->data[0][1] = html_print_label_input_block(
__('Free text for search: ').ui_print_help_tip(
__('Search by report name or description, list matches.'),
true
),
html_print_input_text(
__('search'),
$search,
'',
30,
'',
true
)
);
$where = '';
if ((bool) users_is_admin() === false) {
$where = sprintf(' AND id_usuario = "%s"', $config['id_user']);
}
$sql = 'SELECT * FROM tuser_task_scheduled WHERE id_user_task IN (1,2,3,4) '.$where;
$reports = db_get_all_rows_sql($sql);
if ($reports !== false) {
$table = new stdClass();
$table->class = 'info_table';
$table->width = '100%';
$table->data = [];
$table->head[0] = __('Name');
$table->head[1] = __('Report');
$table->head[2] = __('Type');
$table->head[3] = __('Schedule / Day');
$table->head[4] = __('Action');
$table->head[5] = __('Operations');
foreach ($reports as $row) {
$table->cellclass[][5] = 'table_action_buttons';
$function_name = db_get_value(
'name',
'tuser_task',
'id',
$row['id_user_task']
);
$params = unserialize($row['args']);
$id_report = ($row['id_report'] ?? $params[0]);
$report_name = db_get_value(
'name',
'treport',
'id_report',
$id_report
);
$data = [];
$data[0] = ($row['name'] ?? __('No name'));
$data[1] = $report_name;
$data[2] = $function_name;
$data[3] = date('Y/m/d H:i:s', $params['first_execution']);
$data[4] = cron_get_scheduled_string($row['scheduled']);
$data[5] = '';
if (check_acl($config['id_user'], 0, 'RW')) {
$data[5] .= html_print_anchor(
[
'href' => ui_get_full_url(
sprintf(
'index.php?sec=reporting&sec2=godmode/reporting/manage_schedule&id_task=%s',
$row['id']
)
),
'content' => html_print_image(
'images/edit.svg',
true,
[
'title' => __('Edit'),
'class' => 'main_menu_icon invert_filter',
]
),
],
true
);
$data[5] .= html_print_anchor(
[
'href' => sprintf(
'index.php?sec=custom_report&sec2=godmode/reporting/schedule&delete_task=%s',
$row['id']
),
'onClick' => 'if (!confirm(\''.__('Are you sure?').'\')) return false;',
'content' => html_print_image(
'images/delete.svg',
true,
[
'title' => __('Delete'),
'class' => 'main_menu_icon invert_filter',
]
),
],
true
);
}
array_push($table->data, $data);
}
html_print_table($table);
} else {
ui_print_info_message(
__('No data to show')
);
}
if (check_acl($config['id_user'], 0, 'RW') || check_acl($config['id_user'], 0, 'RM')
) {
$buttonsOutput = [];
// Create form.
$buttonsOutput[] = '<form method="post" action="index.php?sec=reporting&sec2=godmode/reporting/manage_schedule">';
$buttonsOutput[] = html_print_submit_button(
__('Create report'),
'create',
false,
[ 'icon' => 'next' ],
true
);
$buttonsOutput[] = '</form>';
echo html_print_action_buttons(
implode('', $buttonsOutput),
[
'type' => 'form_action',
'right_content' => $tablePagination,
],
true
);
}

View File

@ -85,6 +85,7 @@ enterprise_include_once('godmode/setup/setup.php');
$section = (string) get_parameter('section', 'general');
$buttons = [];
$menu_tabs = [];
// Draws header.
$buttons['general'] = [
@ -99,9 +100,22 @@ $buttons['general'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=general').'">'.__('General setup').'</a>';
array_push($menu_tabs, $menu_tab_url);
if (enterprise_installed()) {
$buttons = setup_enterprise_add_Tabs($buttons);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=enterprise').'">'.__('Enterprise').'</a>';
array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=pass').'">'.__('Password').'</a>';
array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=hist_db').'">'.__('History database').'</a>';
array_push($menu_tabs, $menu_tab_url);
if ($config['log_collector']) {
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=log').'">'.__('Log collector').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
}
$buttons['auth'] = [
@ -115,6 +129,8 @@ $buttons['auth'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=auth').'">'.__('Authentication').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['perf'] = [
'active' => false,
@ -127,6 +143,8 @@ $buttons['perf'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=perf').'">'.__('Performance').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['vis'] = [
'active' => false,
@ -139,6 +157,8 @@ $buttons['vis'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=vis').'">'.__('Visual styles').'</a>';
array_push($menu_tabs, $menu_tab_url);
if (check_acl($config['id_user'], 0, 'AW')) {
if ($config['activate_netflow']) {
@ -153,6 +173,8 @@ if (check_acl($config['id_user'], 0, 'AW')) {
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=net').'">'.__('Netflow').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
if ($config['activate_sflow']) {
@ -167,6 +189,8 @@ if (check_acl($config['id_user'], 0, 'AW')) {
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=sflow').'">'.__('Sflow').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
}
@ -181,6 +205,8 @@ $buttons['ITSM'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=ITSM').'">'.__('ITSM').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['ehorus'] = [
'active' => false,
@ -193,6 +219,8 @@ $buttons['ehorus'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=pandorarc').'">'.__('Pandora RC').'</a>';
array_push($menu_tabs, $menu_tab_url);
if (check_acl($config['id_user'], 0, 'PM') && enterprise_installed()) {
$buttons['module_library'] = [
@ -206,6 +234,8 @@ if (check_acl($config['id_user'], 0, 'PM') && enterprise_installed()) {
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=module_library').'">'.__('Module Library').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
// FIXME: Not definitive icon
@ -220,6 +250,8 @@ $buttons['notifications'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=notifications').'">'.__('Notifications').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['quickshell'] = [
'active' => false,
@ -232,21 +264,29 @@ $buttons['quickshell'] = [
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=quickshell').'">'.__('QuickShell').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['external_tools'] = [
'active' => false,
'text' => '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=external_tools').'">'.html_print_image('images/nettool.png', true, ['title' => __('External Tools'), 'class' => 'invert_filter']).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=external_tools').'">'.__('External Tools').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['welcome_tips'] = [
'active' => false,
'text' => '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=welcome_tips').'">'.html_print_image('images/inventory.png', true, ['title' => __('Welcome tips'), 'class' => 'invert_filter']).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=welcome_tips').'">'.__('Welcome tips').'</a>';
array_push($menu_tabs, $menu_tab_url);
$buttons['demo_data'] = [
'active' => false,
'text' => '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=demo_data').'">'.html_print_image('images/demo_data.png', true, ['title' => __('Demo data'), 'class' => 'invert_filter']).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=demo_data').'">'.__('Demo data').'</a>';
array_push($menu_tabs, $menu_tab_url);
if ($config['activate_gis']) {
$buttons['gis'] = [
@ -260,6 +300,8 @@ if ($config['activate_gis']) {
]
).'</a>',
];
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=gis').'">'.__('GIS Map connection').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
$help_header = '';
@ -386,26 +428,6 @@ switch ($section) {
break;
}
$menu_tabs = [];
// Agent details.
$menu_tab_url = '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&section=general">'.__('General setup').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Agent details.
$menu_tab_url = '<a href="index.php?sec=view&sec2=operation/agentes/estado_agente">'.__('Agent detail').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Manage agents.
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente">'.__('Manage agents').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Events.
$menu_tab_url = '<a href="index.php?sec=eventos&sec2=operation/events/events">'.__('View events').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Events.
$menu_tab_url = '<a href="index.php?sec=reporting&sec2=godmode/reporting/reporting_builder">'.__('Custom reports').'</a>';
array_push($menu_tabs, $menu_tab_url);
$dots = dot_tab($menu_tabs);
// Header.

View File

@ -123,7 +123,7 @@ $table_remote->data['ITSM_user_level_conf'] = $row;
$row = [];
$row['hostname'] = html_print_label_input_block(
__('URL to Pandora ITSM setup').ui_print_help_tip(
__('Full URL to your Pandora ITSM setup (e.g., http://192.168.1.20/integria/api/v1).'),
__('Full URL to your Pandora ITSM setup (e.g., http://192.168.1.20/integria/api/v2).'),
true
),
html_print_input_text(

View File

@ -76,7 +76,7 @@ class Applications extends Wizard
$this->msg = $msg;
$this->icon = $icon;
$this->class = $class_style;
$this->label = $label;
$this->label = __($label);
$this->page = $page;
$this->url = ui_get_full_url(
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=app'

View File

@ -97,7 +97,7 @@ class Cloud extends Wizard
$this->task = [];
$this->msg = $msg;
$this->icon = $icon;
$this->label = $label;
$this->label = __($label);
$this->page = $page;
$this->url = ui_get_full_url(
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=cloud'

View File

@ -90,7 +90,7 @@ class HostDevices extends Wizard
$this->task = [];
$this->msg = $msg;
$this->icon = $icon;
$this->label = $label;
$this->label = __($label);
$this->page = $page;
$this->url = ui_get_full_url(
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd'

View File

@ -129,7 +129,7 @@ class ManageExtensions extends HTML
{
return [
'icon' => $this->icon,
'label' => $this->label,
'label' => __($this->label),
'url' => $this->url,
];

View File

@ -294,7 +294,7 @@ function process_user_login_remote($login, $pass, $api=false)
$pass,
false,
true,
defined('METACONSOLE'),
defined('METACONSOLE') && is_centralized() === false,
]
);

View File

@ -314,6 +314,13 @@ class ConsoleSupervisor
*/
$this->checkTotalModulesByAgent();
/*
* Check connection with historical DB (if enabled).
* NOTIF.HISTORYDB
*/
$this->checkPandoraHistoryDB();
}
@ -2041,7 +2048,7 @@ class ConsoleSupervisor
'title' => __('Historical database not available'),
'message' => __('Historical database is enabled, though not accessible with the current configuration.'),
'url' => '__url__/index.php?sec=general&sec2=godmode/setup/setup&section=hist_db',
'icon_notification' => self::ICON_QUESTION,
'icon_notification' => self::ICON_ERROR,
]
);
} else {

View File

@ -1270,6 +1270,7 @@ class Heatmap
*/
public function showHeatmap()
{
global $config;
$result = $this->getData();
if (empty($result) === true) {
@ -1371,6 +1372,8 @@ class Heatmap
type: type,
id: id,
id_server: server,
auth_hash: '<?php echo $this->hash; ?>',
id_user: '<?php echo $config['id_user']; ?>'
},
dataType: 'html',
success: function(data) {

View File

@ -22,8 +22,8 @@ use DI\ContainerBuilder;
/*
* Pandora build version and version
*/
$build_version = 'PC240311';
$pandora_version = 'v7.0NG.775';
$build_version = 'PC240319';
$pandora_version = 'v7.0NG.776';
// Do not overwrite default timezone set if defined.
$script_tz = @date_default_timezone_get();
@ -345,7 +345,7 @@ if (empty($container) === true) {
// Solution to load the ContainerBuilder class.
$containerBuilder = new ContainerBuilder();
$containerBuilder->addDefinitions(__DIR__.'/../api/v1/config/container.php');
$containerBuilder->addDefinitions(__DIR__.'/../api/v2/config/container.php');
// Create DI container instance.
$container = $containerBuilder->build();

View File

@ -925,3 +925,6 @@ define('HPUX', '5');
define('CISCO', '7');
define('MACOS', '8');
define('WINDOWS', '9');
// Alert list.
define('AGENT_ALERT_LIMIT', 20);

View File

@ -33,7 +33,8 @@ function mysql_connect_db(
$port=null,
$charset=null,
$ssl=null,
$verify=null
$verify=null,
$history=false
) {
global $config;
@ -83,11 +84,17 @@ function mysql_connect_db(
try {
$connect_id = mysqli_connect($host, $user, $pass, $db, $port);
if (mysqli_connect_errno() > 0) {
include 'general/mysqlerr.php';
if ($history === false) {
include 'general/mysqlerr.php';
}
return false;
}
} catch (\mysqli_sql_exception $e) {
include 'general/mysqlerr.php';
if ($history === false) {
include 'general/mysqlerr.php';
}
return false;
}
@ -110,7 +117,10 @@ function mysql_connect_db(
}
if (mysqli_connect_errno() > 0) {
include 'general/mysqlerr.php';
if ($history === false) {
include 'general/mysqlerr.php';
}
return false;
}
}
@ -156,7 +166,7 @@ function mysql_db_get_all_rows_sql($sql, $search_history_db=false, $cache=true,
// Connect to the history DB
if (!isset($config['history_db_connection']) || $config['history_db_connection'] === false) {
$config['history_db_connection'] = db_connect($config['history_db_host'], $config['history_db_name'], $config['history_db_user'], io_output_password($config['history_db_pass']), $config['history_db_port'], false);
$config['history_db_connection'] = db_connect($config['history_db_host'], $config['history_db_name'], $config['history_db_user'], io_output_password($config['history_db_pass']), $config['history_db_port'], false, null, true);
}
if ($config['history_db_connection'] !== false) {

View File

@ -6904,7 +6904,9 @@ function get_defined_translation($string)
}
}
if (is_array($cache_translation) === true && count($cache_translation) === 0) {
if ((isset($config['ignore_cache_translate']) === false || $config['ignore_cache_translate'] !== true)
&& is_array($cache_translation) === true && count($cache_translation) === 0
) {
$cache_translation_all = db_get_all_rows_sql(
sprintf(
'SELECT translation, string

View File

@ -4553,12 +4553,14 @@ function agents_get_starmap(
var randomPoint = getRandomInteger(1, total_modules);
let target = $(`#rect_${randomPoint}`);
let class_name = target.attr('class');
class_name = class_name.split('_')[0];
setTimeout(function() {
target.removeClass();
target.addClass(`${class_name}_${solid}`);
oneSquare(getRandomInteger(1, 10), getRandomInteger(100, 900));
}, time);
if(target.length){
class_name = class_name.split('_')[0];
setTimeout(function() {
target.removeClass();
target.addClass(`${class_name}_${solid}`);
oneSquare(getRandomInteger(1, 10), getRandomInteger(100, 900));
}, time);
}
}
let cont = 0;

View File

@ -87,7 +87,8 @@ function db_connect(
$pass=null,
$port=null,
$critical=true,
$charset=null
$charset=null,
$history=false,
) {
global $config;
static $error = 0;
@ -100,7 +101,10 @@ function db_connect(
$user,
$pass,
$port,
$charset
$charset,
null,
null,
$history,
);
break;
@ -143,9 +147,11 @@ function db_connect(
// Display the error once even if multiple
// connection attempts are made.
$error = 1;
ui_print_error_message(
__('Error connecting to database %s at %s.', $db, $host)
);
if ($history === false) {
ui_print_error_message(
__('Error connecting to database %s at %s.', $db, $host)
);
}
}
}

View File

@ -151,6 +151,14 @@ function menu_print_menu(&$menu)
if (empty($operation) === false) {
$sec2 = $sec2.'&operation='.$operation;
}
} else if ($sec2 === 'godmode/reporting/reporting_builder') {
$tab = (string) get_parameter('tab', '');
$action = (string) get_parameter('action', '');
if ($tab === 'template' && $action === 'list_template') {
$sec2 = $sec2.'&tab=template&action=list_template';
}
} else if ($sec2 === 'godmode/reporting/manage_schedule') {
$sec2 = 'godmode/reporting/schedule';
} else if ($sec2 === 'godmode/users/configure_user') {
$sec2 = 'godmode/users/user_list';
} else if ($sec2 === 'godmode/modules/manage_inventory_modules_form') {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -164,8 +164,6 @@ class GroupRepositoryMySQL extends RepositoryMySQL implements GroupRepository
$pagination
);
hd($sql, true);
return $sql;
}
}

View File

@ -33,7 +33,7 @@ More useful links:
* bearerFormat="pandoraBearer",
* ),
* @OA\Server(
* url="/api/v1",
* url="/api/v2",
* description="PandoraFMS API Server"
* ),
* @OA\Tag(

View File

@ -25,15 +25,6 @@ final class UserTokenMiddleware
public function check(Request $request): bool
{
hd('El server UUID:', true);
hd($this->config->get('server_unique_identifier'), true);
hd('El api pass es:', true);
hd($this->config->get('api_password'), true);
hd('El token de md5 con el que se puede loguear: ', true);
hd(md5($this->config->get('server_unique_identifier')).'-'.md5($this->config->get('api_password')), true);
$authorization = ($request->getHeader('Authorization')[0] ?? '');
$token = null;
@ -46,6 +37,9 @@ final class UserTokenMiddleware
);
$uuid = ($matches[0] ?? '');
if (empty($uuid) === true) {
return false;
}
$strToken = str_replace($uuid.'-', '', $authorization);
$validTokenUiniqueServerIdentifier = $this->validateServerIdentifierTokenService->__invoke($strToken);
if ($validTokenUiniqueServerIdentifier === false) {
@ -64,7 +58,7 @@ final class UserTokenMiddleware
$token = null;
}
if ($token !== null) {
if ($token !== null && $validToken) {
if (session_status() === PHP_SESSION_NONE) {
session_start();
}

View File

@ -228,29 +228,29 @@ class GeneralTacticalView
if ($name !== '') {
$emojiOptions = [
'have_good_day' => __('Have a good day %s', $name),
'welcome_back' => __('Welcome back! %s 👋', $name),
'merry_christmas' => __('Welcome back! %s 🎅', $name),
'good_morning' => __('Good morning, %s!', $name),
'good_evening' => __('Good evening, %s 🌇', $name),
'good_night' => __('Good night, %s 🌕', $name),
'happy_summer' => __('Happy summer, %s 🌞', $name),
'happy_winter' => __('Happy winter, %s', $name),
'happy_autumn' => __('Happy autumn, %s 🍂', $name),
'happy_spring' => __('Happy spring, %s 🌻', $name),
'have_good_day' => __('Have a good day %s', $name).' ✌',
'welcome_back' => __('Welcome back! %s', $name).' 👋',
'merry_christmas' => __('Welcome back! %s', $name).' 🎅',
'good_morning' => __('Good morning, %s!', $name).' ☕',
'good_evening' => __('Good evening, %s', $name).' 🌇',
'good_night' => __('Good night, %s', $name).' 🌕',
'happy_summer' => __('Happy summer, %s', $name).' 🌞',
'happy_winter' => __('Happy winter, %s', $name).' ⛄',
'happy_autumn' => __('Happy autumn, %s', $name).' 🍂',
'happy_spring' => __('Happy spring, %s', $name).' 🌻',
];
} else {
$emojiOptions = [
'have_good_day' => __('Have a good day ✌'),
'welcome_back' => __('Welcome back! 👋'),
'merry_christmas' => __('Welcome back! 🎅'),
'good_morning' => __('Good morning! ☕'),
'good_evening' => __('Good evening 🌇'),
'good_night' => __('Good night 🌕'),
'happy_summer' => __('Happy summer 🌞'),
'happy_winter' => __('Happy winter ⛄'),
'happy_autumn' => __('Happy autumn 🍂'),
'happy_spring' => __('Happy spring 🌻'),
'have_good_day' => __('Have a good day').' ✌',
'welcome_back' => __('Welcome back!').' 👋',
'merry_christmas' => __('Welcome back!').' 🎅',
'good_morning' => __('Good morning!').' ☕',
'good_evening' => __('Good evening').' 🌇',
'good_night' => __('Good night').' 🌕',
'happy_summer' => __('Happy summer').' 🌞',
'happy_winter' => __('Happy winter').' ⛄',
'happy_autumn' => __('Happy autumn').' 🍂',
'happy_spring' => __('Happy spring').' 🌻',
];
}

View File

@ -13722,7 +13722,7 @@ button.disabled {
border: 0px;
}
.ui-draggable-handle {
#graph_analytics .ui-draggable-handle {
z-index: 2 !important;
}

View File

@ -130,8 +130,8 @@
</div>
<div style='padding-bottom: 50px'>
<?php
$version = '7.0NG.775';
$build = '240311';
$version = '7.0NG.776';
$build = '240319';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -363,6 +363,13 @@ if (isset($agent_view_page) === false) {
}
if ($agent_view_page === true) {
$alerts_count = alerts_get_alerts(0, '', 'all', -1, true, true, $agent['id_agente']);
$disabled_alert = false;
// Optimal limit to display alerts.
if ((int) $alerts_count > AGENT_ALERT_LIMIT) {
$disabled_alert = true;
}
ui_print_datatable(
[
'id' => 'alerts_status_datatable',
@ -405,7 +412,7 @@ if ($agent_view_page === true) {
'no_toggle' => true,
'class' => 'flex',
],
'start_disabled' => true,
'start_disabled' => $disabled_alert,
]
);
} else {
@ -505,7 +512,6 @@ $html_content = ob_get_clean();
if ($agent_view_page === true) {
// Create controlled toggle content.
$alerts_count = alerts_get_alerts(0, '', 'all', -1, $true, true, $agent['id_agente']);
html_print_div(
[
'class' => 'agent_details_line',

View File

@ -431,7 +431,7 @@ ui_include_time_picker(true);
margin = 50;
}
var browserZoomLevel = (Math.round(window.devicePixelRatio * 100)/100);
var browserZoomLevel = window.outerWidth / window.innerWidth;
let height = ($('#chart-modal').height() + margin) * browserZoomLevel;
let width = 800 * browserZoomLevel;
window.resizeTo(width, height);

View File

@ -1525,6 +1525,7 @@ $tab = get_parameter('tab', 'main');
// Manage tab.
$managetab = [];
$menu_tabs = [];
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') === true) {
$managetab['text'] = html_print_menu_button(
@ -1538,9 +1539,10 @@ if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') === true) {
$managetab['active'] = ($tab === 'manage');
$managetab['godmode'] = 1;
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'">'.__('Manage').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
// Main tab.
$maintab['text'] = html_print_menu_button(
[
@ -1550,6 +1552,8 @@ $maintab['text'] = html_print_menu_button(
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">'.__('Main').'</a>';
array_push($menu_tabs, $menu_tab_url);
$maintab['active'] = ($tab === 'main');
@ -1579,6 +1583,8 @@ if ($agent_interfaces_count > 0) {
'class' => 'invert_filter',
]
).'</a>';
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'&tab=interface">'.__('Interfaces').'</a>';
array_push($menu_tabs, $menu_tab_url);
if ($tab === 'interface') {
$interfacetab['active'] = true;
@ -1596,6 +1602,8 @@ $alerttab['text'] = html_print_menu_button(
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'&tab=alert">'.__('Alerts').'</a>';
array_push($menu_tabs, $menu_tab_url);
$alerttab['active'] = ($tab === 'alert');
@ -1611,6 +1619,8 @@ if ($inventoryCount > 0) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=inventory&id_agente='.$id_agente.'">'.__('Inventory').'</a>';
array_push($menu_tabs, $menu_tab_url);
if ($tab === 'inventory') {
$inventorytab['active'] = true;
@ -1624,6 +1634,9 @@ if ((int) $config['license_nms'] !== 1) {
$collectiontab = enterprise_hook('collection_tab');
if ($collectiontab === ENTERPRISE_NOT_HOOK) {
$collectiontab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=collection&id_agente='.$id_agente.'">'.__('Collection').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
} else {
$collectiontab = '';
@ -1634,6 +1647,9 @@ if ((int) $config['license_nms'] !== 1) {
$policyTab = enterprise_hook('policy_tab');
if ($policyTab === ENTERPRISE_NOT_HOOK) {
$policyTab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=policy&id_agente='.$id_agente.'">'.__('Policies').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
// Omnishell.
@ -1643,6 +1659,9 @@ if ($tasks === true) {
$omnishellTab = enterprise_hook('omnishell_tab');
if ($omnishellTab == -1) {
$omnishellTab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=omnishell&id_agente='.$id_agente.'">'.__('Omnishell').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
}
@ -1652,6 +1671,9 @@ if ((bool) $modules_wux === true) {
$wux_console_tab = enterprise_hook('wux_console_tab');
if ($wux_console_tab === ENTERPRISE_NOT_HOOK) {
$wux_console_tab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=wux_console_tab&id_agente='.$id_agente.'">'.__('WUX Console').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
}
@ -1660,12 +1682,18 @@ if ((bool) $url_route_analyzer === true) {
$url_route_analyzer_tab = enterprise_hook('url_route_analyzer_tab');
if ($url_route_analyzer_tab === ENTERPRISE_NOT_HOOK) {
$url_route_analyzer_tab = '';
} else {
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=url_route_analyzer_tab&id_agente='.$id_agente.'">'.__('URL Route Analyzer').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
}
$ncm_tab = enterprise_hook('networkconfigmanager_console_tab');
if ($ncm_tab === ENTERPRISE_NOT_HOOK) {
$ncm_tab = '';
} else if (isset($ncm)) {
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=ncm&id_agente='.$id_agente.'">'.__('Network config manager').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
// GIS tab.
@ -1680,6 +1708,9 @@ if ((bool) $config['activate_gis'] === true) {
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente.'">'.__('GIS data').'</a>';
array_push($menu_tabs, $menu_tab_url);
$gistab['active'] = ($tab === 'gis');
}
@ -1706,6 +1737,9 @@ if ((bool) $config['ITSM_enabled'] === true) {
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=operation/agentes/ver_agente&tab=incident&id_agente='.$id_agente.'">'.__('Incidents').'</a>';
array_push($menu_tabs, $menu_tab_url);
$incidenttab['active'] = ($tab === 'incident');
}
}
@ -1720,6 +1754,8 @@ if (empty($agent['url_address']) === false) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=gagente&amp;sec2=operation/agentes/ver_agente&tab=url_address&id_agente='.$id_agente.'">'.__('Url address').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
$urladdresstab['active'] = ($tab === 'url_address');
@ -1733,6 +1769,8 @@ $custom_fields['text'] = html_print_menu_button(
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=custom_fields&id_agente='.$id_agente.'">'.__('Custom fields').'</a>';
array_push($menu_tabs, $menu_tab_url);
$custom_fields['active'] = ($tab === 'custom_fields');
@ -1746,6 +1784,8 @@ $graphs['text'] = html_print_menu_button(
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=graphs&id_agente='.$id_agente.'">'.__('Graphs').'</a>';
array_push($menu_tabs, $menu_tab_url);
$graphs['active'] = ($tab === 'graphs');
@ -1764,6 +1804,8 @@ if (enterprise_installed() === true && (bool) $config['log_collector'] === true)
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=log_viewer&id_agente='.$id_agente.'">'.__('Log Viewer').'</a>';
array_push($menu_tabs, $menu_tab_url);
$log_viewer_tab['active'] = ($tab === 'log_viewer');
}
}
@ -1791,6 +1833,8 @@ if ((bool) $config['ehorus_enabled'] === true && empty($config['ehorus_custom_fi
'class' => 'invert_filter',
]
).'</a>';
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=ehorus&id_agente='.$id_agente.'">'.__('Pandora RC').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Hidden subtab layer.
$ehorus_tab['sub_menu'] = '<ul class="mn subsubmenu float-none">';
@ -1866,6 +1910,8 @@ if ($is_sap === true) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=sap_view&page=1&id_agente='.$id_agente.'">'.__('SAP view').'</a>';
array_push($menu_tabs, $menu_tab_url);
$saptab['active'] = ($tab === 'sap_view');
} else {
@ -1881,6 +1927,8 @@ $external_tools['text'] = html_print_menu_button(
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=external_tools&id_agente='.$id_agente.'">'.__('External Tools').'</a>';
array_push($menu_tabs, $menu_tab_url);
$external_tools['active'] = ($tab === 'external_tools');
@ -1893,6 +1941,8 @@ if (enterprise_installed() === true && security_hardening_installed() === true)
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=security_hardening&id_agente='.$id_agente.'">'.__('Security hardening').'</a>';
array_push($menu_tabs, $menu_tab_url);
$security_hardening['active'] = ($tab === 'security_hardening');
}
@ -1911,6 +1961,8 @@ if (function_exists('vulnerabilities_last_scan_agent') === true) {
],
true
);
$menu_tab_url = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=vulnerabilities&id_agente='.$id_agente.'">'.__('Vulnerabilities').'</a>';
array_push($menu_tabs, $menu_tab_url);
$vulnerabilities['active'] = ($tab === 'vulnerabilities');
}
@ -2131,26 +2183,6 @@ switch ($tab) {
}
if ((bool) $config['pure'] === false) {
$menu_tabs = [];
// Agent details.
$menu_tab_url = '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&section=general">'.__('General setup').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Agent details.
$menu_tab_url = '<a href="index.php?sec=view&sec2=operation/agentes/estado_agente">'.__('Agent detail').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Manage agents.
$menu_tab_url = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente">'.__('Manage agents').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Events.
$menu_tab_url = '<a href="index.php?sec=eventos&sec2=operation/events/events">'.__('View events').'</a>';
array_push($menu_tabs, $menu_tab_url);
// Events.
$menu_tab_url = '<a href="index.php?sec=reporting&sec2=godmode/reporting/reporting_builder">'.__('Custom reports').'</a>';
array_push($menu_tabs, $menu_tab_url);
$dots = dot_tab($menu_tabs);
ui_print_standard_header(
__('Agent main view').' ( '.strtolower(agents_get_alias($id_agente)).' )',

View File

@ -51,6 +51,8 @@ $height = get_parameter('height', 0);
$width = get_parameter('width', 0);
$search = get_parameter('search', '');
$filter = get_parameter('filter', []);
$hash = get_parameter('auth_hash', '');
if (is_array($filter) === false) {
$filter = explode(',', $filter);
}
@ -233,7 +235,7 @@ if ($is_ajax === false && $pure === true) {
// Control call flow.
try {
// Heatmap construct.
$heatmap = new Heatmap($type, $filter, $randomId, $refresh, $width, $height, $search, $group, $dashboard);
$heatmap = new Heatmap($type, $filter, $randomId, $refresh, $width, $height, $search, $group, $dashboard, $hash);
} catch (Exception $e) {
if (is_ajax() === true) {
echo json_encode(['error' => '[Heatmap]'.$e->getMessage() ]);
@ -261,7 +263,7 @@ if ($is_ajax === true) {
}
// Stop any execution.
exit;
return;
} else {
// Run.
$heatmap->run();

View File

@ -460,13 +460,20 @@ if ($access_console_node === true) {
$sub = [];
$sub['godmode/reporting/reporting_builder']['text'] = __('Custom reporting');
$sub['godmode/reporting/reporting_builder']['id'] = 'Custom_reporting';
// Set godomode path.
$sub['godmode/reporting/reporting_builder']['subsecs'] = [
'godmode/reporting/reporting_builder',
'operation/reporting/reporting_viewer',
];
$sub['custom_report']['text'] = __('Custom Reports');
$sub['custom_report']['id'] = 'Custom_reporting';
$sub['custom_report']['type'] = 'direct';
$sub['custom_report']['subtype'] = 'nolink';
$sub['custom_report']['refr'] = 0;
$sub2 = [];
$sub2['godmode/reporting/reporting_builder']['text'] = __('Reports');
$sub2['godmode/reporting/reporting_builder&tab=template&action=list_template']['text'] = __('Templates');
if (check_acl($config['id_user'], 0, 'RW') || check_acl($config['id_user'], 0, 'RM')) {
$sub2['godmode/reporting/schedule']['text'] = __('Schedule');
}
$sub['custom_report']['sub2'] = $sub2;
$sub['godmode/reporting/graphs']['text'] = __('Custom graphs');
@ -655,9 +662,17 @@ if (!empty($rows)) {
$menu_operation['links']['sec2'] = '';
$menu_operation['links']['id'] = 'god-links';
$traslations = [
'Get support' => __('Get support'),
'Report a bug' => __('Report a bug'),
'Suggest new feature' => __('Suggest new feature'),
];
$sub = [];
foreach ($rows as $row) {
$sub[$row['link']]['text'] = __($row['name']);
$sub[$row['link']]['text'] = (empty($traslations[$row['name']]) === false)
? $traslations[$row['name']]
: __($row['name']);
$sub[$row['link']]['id'] = $row['name'];
$sub[$row['link']]['type'] = 'direct';
$sub[$row['link']]['subtype'] = 'new_blank';

View File

@ -954,6 +954,7 @@ $filters_div = html_print_div(
$graphs_div = html_print_div(
[
'id' => 'graph_analytics',
'class' => 'padding-div graphs-div-main',
'content' => $right_content,
],

View File

@ -5,8 +5,8 @@
%define __strip /bin/true
%define debug_package %{nil}
%define name pandorafms_console
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -5,8 +5,8 @@
%define __strip /bin/true
%define debug_package %{nil}
%define name pandorafms_console
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -2,8 +2,8 @@
# Pandora FMS Console
#
%define name pandorafms_console
%define version 7.0NG.775
%define release 240311
%define version 7.0NG.776
%define release 240319
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -9,7 +9,7 @@
# This code is licensed under GPL 2.0 license.
# **********************************************************************
PI_VERSION="7.0NG.775"
PI_VERSION="7.0NG.776"
FORCE=0
DESTDIR=""
LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"`

View File

@ -3885,6 +3885,8 @@ CREATE TABLE IF NOT EXISTS `tuser_task_scheduled` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_usuario` VARCHAR(255) NOT NULL DEFAULT '0',
`id_user_task` INT UNSIGNED NOT NULL DEFAULT 0,
`id_report` INT NULL,
`name` VARCHAR(255) NULL,
`args` TEXT,
`scheduled` ENUM('no','hourly','daily','weekly','monthly','yearly','custom') DEFAULT 'no',
`last_run` INT UNSIGNED DEFAULT 0,

View File

@ -125,10 +125,10 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
('custom_report_front_header', ''),
('custom_report_front_footer', ''),
('MR', 67),
('MR', 68),
('identification_reminder', 1),
('identification_reminder_timestamp', 0),
('current_package', 775),
('current_package', 776),
('post_process_custom_values', '{"0.00000038580247":"Seconds&#x20;to&#x20;months","0.00000165343915":"Seconds&#x20;to&#x20;weeks","0.00001157407407":"Seconds&#x20;to&#x20;days","0.01666666666667":"Seconds&#x20;to&#x20;minutes","0.00000000093132":"Bytes&#x20;to&#x20;Gigabytes","0.00000095367432":"Bytes&#x20;to&#x20;Megabytes","0.00097656250000":"Bytes&#x20;to&#x20;Kilobytes","0.00000001653439":"Timeticks&#x20;to&#x20;weeks","0.00000011574074":"Timeticks&#x20;to&#x20;days"}'),
('custom_docs_logo', 'default_docs.png'),
('custom_support_logo', 'default_support.png'),
@ -2869,7 +2869,7 @@ SET @short_name = 'pandorafms.vmware';
SET @name = 'VMware';
SET @section = 'app';
SET @description = 'Monitor&#x20;ESXi&#x20;hosts,&#x20;datastores&#x20;and&#x20;VMs&#x20;from&#x20;a&#x20;specific&#x20;datacenter';
SET @version = '1.2';
SET @version = '1.3';
INSERT IGNORE INTO `tdiscovery_apps` (`id_app`, `short_name`, `name`, `section`, `description`, `version`) VALUES ('', @short_name, @name, @section, @description, @version);
SELECT @id_app := `id_app` FROM `tdiscovery_apps` WHERE `short_name` = @short_name;

Some files were not shown because too many files have changed in this diff Show More