Merge branch 'develop' into 'ent-3740-Buguillo-en-configuracion-de-ACLs'
Conflicts: pandora_console/include/functions_menu.php Former-commit-id: 96e46da859b6d05409a8b2166bb2822493fe6558
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
source build_vars.sh
|
||||
|
||||
if [ ! -d $RPMHOME/RPMS ]; then
|
||||
mkdir -p $RPMHOME/RPMS || exit 1
|
||||
fi
|
||||
|
||||
echo "Creating RPM packages in $RPMHOME/RPMS"
|
||||
|
||||
# Console
|
||||
rpmbuild -ba $CODEHOME/pandora_console/pandora_console.rhel7.spec || exit 1
|
||||
|
||||
# Server
|
||||
rpmbuild -ba $CODEHOME/pandora_server/pandora_server.rhel7.spec || exit 1
|
||||
|
||||
# Unix agent
|
||||
rpmbuild -ba $CODEHOME/pandora_agents/unix/pandora_agent.rhel7.spec || exit 1
|
||||
|
||||
# Enterprise console
|
||||
rpmbuild -ba $PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.rhel7.spec || exit 1
|
||||
|
||||
# Enterprise server
|
||||
rpmbuild -ba $PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.rhel7.spec || exit 1
|
||||
|
||||
exit 0
|
||||
|
|
@ -26,6 +26,7 @@ $CODEHOME/pandora_server/pandora_server.spec \
|
|||
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.spec \
|
||||
$PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.spec \
|
||||
$CODEHOME/pandora_console/pandora_console.redhat.spec \
|
||||
$CODEHOME/pandora_console/pandora_console.rhel7.spec \
|
||||
$CODEHOME/pandora_agents/unix/pandora_agent.redhat.spec \
|
||||
$CODEHOME/pandora_server/pandora_server.redhat.spec \
|
||||
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.redhat.spec \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.733, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, FreeBSD Version
|
||||
# Version 7.0NG.733, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, HP-UX Version
|
||||
# Version 7.0NG.733, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, Solaris Version
|
||||
# Version 7.0NG.733, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2010 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
|
||||
# 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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.733, AIX version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# FreeBSD/IPSO version
|
||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732, HPUX Version
|
||||
# Version 7.0NG.733, HPUX Version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# Licensed under GPL license v2,
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732, Solaris version
|
||||
# Version 7.0NG.733, Solaris version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.733, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.732-190321
|
||||
Version: 7.0NG.733-190405
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.732-190321"
|
||||
pandora_version="7.0NG.733-190405"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2012 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, FreeBSD Version
|
||||
# Version 7.0NG.733, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2016 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, HP-UX Version
|
||||
# Version 7.0NG.733, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2014 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, NetBSD Version
|
||||
# Version 7.0NG.733, NetBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, Solaris Version
|
||||
# Version 7.0NG.733, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -41,8 +41,8 @@ my $Sem = undef;
|
|||
# Semaphore used to control the number of threads
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.732';
|
||||
use constant AGENT_BUILD => '190321';
|
||||
use constant AGENT_VERSION => '7.0NG.733';
|
||||
use constant AGENT_BUILD => '190405';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.732
|
||||
%define release 190321
|
||||
%define version 7.0NG.733
|
||||
%define release 190405
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.732
|
||||
%define release 190321
|
||||
%define version 7.0NG.733
|
||||
%define release 190405
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.732"
|
||||
PI_BUILD="190321"
|
||||
PI_VERSION="7.0NG.733"
|
||||
PI_BUILD="190405"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2017 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
|
||||
# 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
|
||||
|
@ -44,6 +44,8 @@ remote_config 0
|
|||
#agent_name_cmd cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\agentname.vbs"
|
||||
agent_name_cmd __rand__
|
||||
|
||||
# Agent alias. Name should be unique rather than alias. Hostname by default
|
||||
# agent_alias $Alias$
|
||||
|
||||
#Parent agent_name
|
||||
#parent_agent_name caprica
|
||||
|
|
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
|||
{Yes}
|
||||
|
||||
AppName
|
||||
{Pandora FMS Windows Agent v7.0NG.732}
|
||||
{Pandora FMS Windows Agent v7.0NG.733}
|
||||
|
||||
ApplicationID
|
||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{190321}
|
||||
{190405}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.732(Build 190321)")
|
||||
#define PANDORA_VERSION ("7.0NG.733(Build 190405)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.732(Build 190321))"
|
||||
VALUE "ProductVersion", "(7.0NG.733(Build 190405))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.732-190321
|
||||
Version: 7.0NG.733-190405
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.732-190321"
|
||||
pandora_version="7.0NG.733-190405"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -661,7 +661,7 @@ $ignored_params['refresh'] = '';
|
|||
else {
|
||||
|
||||
var agentes_id = $("#id_agents2").val();
|
||||
var id_agentes = $.get("full_agents_id");
|
||||
var id_agentes = getQueryParam("full_agents_id");
|
||||
if (agentes_id === null && id_agentes !== null) {
|
||||
id_agentes = id_agentes.split(";")
|
||||
id_agentes.forEach(function(element) {
|
||||
|
@ -799,7 +799,7 @@ $ignored_params['refresh'] = '';
|
|||
$("#module").append (option);
|
||||
});
|
||||
|
||||
var id_modules = $.get("full_modules_selected");
|
||||
var id_modules = getQueryParam("full_modules_selected");
|
||||
if(id_modules !== null) {
|
||||
id_modules = id_modules.split(";");
|
||||
id_modules.forEach(function(element) {
|
||||
|
@ -812,20 +812,18 @@ $ignored_params['refresh'] = '';
|
|||
);
|
||||
}
|
||||
|
||||
(function($) {
|
||||
$.get = function(key) {
|
||||
key = key.replace(/[[]/, '[');
|
||||
key = key.replace(/[]]/, ']');
|
||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||
var regex = new RegExp(pattern);
|
||||
var url = unescape(window.location.href);
|
||||
var results = regex.exec(url);
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1];
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
||||
function getQueryParam (key) {
|
||||
key = key.replace(/[[]/, '[');
|
||||
key = key.replace(/[]]/, ']');
|
||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||
var regex = new RegExp(pattern);
|
||||
var url = unescape(window.location.href);
|
||||
var results = regex.exec(url);
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1];
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
|
@ -1,3 +1,3 @@
|
|||
/godmode/servers/recorn_script.php
|
||||
/godmode/servers/recon_script.php
|
||||
/godmode/servers/manage_recontask_form.php
|
||||
/godmode/servers/manage_recontask.php
|
|
@ -1,8 +1,24 @@
|
|||
START TRANSACTION;
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- Add column in table `tagent_custom_fields`
|
||||
-- ----------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tnetwork_matrix` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`source` varchar(60) default '',
|
||||
`destination` varchar(60) default '',
|
||||
`utimestamp` bigint(20) default 0,
|
||||
`bytes` int(18) unsigned default 0,
|
||||
`pkts` int(18) unsigned default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE (`source`, `destination`, `utimestamp`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
ALTER TABLE `treport_content` ADD COLUMN `show_extended_events` tinyint(1) default '0';
|
||||
|
||||
UPDATE `treport_content` SET type="netflow_summary" WHERE type="netflow_pie" OR type="netflow_statistics";
|
||||
|
||||
UPDATE `tnetflow_filter` SET aggregate="dstip" WHERE aggregate NOT IN ("dstip", "srcip", "dstport", "srcport");
|
||||
|
||||
ALTER TABLE tagent_custom_fields ADD COLUMN `combo_values` VARCHAR(255) DEFAULT '';
|
||||
|
||||
ALTER TABLE `trecon_task` ADD COLUMN `summary` text;
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
START TRANSACTION;
|
||||
|
||||
UPDATE tuser_task SET parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
|
||||
|
||||
|
||||
COMMIT;
|
|
@ -139,7 +139,7 @@ function get_logs_size($file)
|
|||
function get_status_logs($path)
|
||||
{
|
||||
$status_server_log = '';
|
||||
$size_server_log = number_format(get_logs_size($path));
|
||||
$size_server_log = get_logs_size($path);
|
||||
if ($size_server_log <= 1048576) {
|
||||
$status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   You have less than 10 MB of logs</a>";
|
||||
} else {
|
||||
|
@ -157,9 +157,9 @@ function percentage_modules_per_agent()
|
|||
$total_modules = db_get_value_sql('SELECT count(*) FROM tagente_modulo');
|
||||
$average_modules_per_agent = ($total_modules / $total_agents);
|
||||
if ($average_modules_per_agent <= 40) {
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The average of modules per agent is less than 40 percent</a>";
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The average of modules per agent is less than 40</a>";
|
||||
} else {
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>  The average of modules per agent is more than 40 percent. You can have performance problems</a>";
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>  The average of modules per agent is more than 40. You can have performance problems</a>";
|
||||
}
|
||||
|
||||
return $status_average_modules;
|
||||
|
@ -202,9 +202,9 @@ function interval_average_of_network_modules()
|
|||
$average_time = ((int) $total_module_interval_time / $total_network_modules);
|
||||
|
||||
if ($average_time < 180) {
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The system has a lot of load and a very fine configuration is required</a>";
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The system has a lot of load (average time $average_time) and a very fine configuration is required</a>";
|
||||
} else {
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system has an acceptable charge</a>";
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system has an acceptable charge (average time $average_time) </a>";
|
||||
}
|
||||
|
||||
if ($average_time == 0) {
|
||||
|
@ -274,6 +274,7 @@ if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
|||
}
|
||||
|
||||
$path_server_logs = '/log/pandora/pandora_server.log';
|
||||
$path_err_logs = '/log/pandora/pandora_server.error';
|
||||
$path_console_logs = '/www/html/pandora_console/pandora_console.log';
|
||||
$innodb_log_file_size_min_rec_value = '64M';
|
||||
$innodb_log_buffer_size_min_rec_value = '16M';
|
||||
|
@ -710,6 +711,8 @@ render_info_data(
|
|||
|
||||
render_row(number_format((get_logs_size($path_server_logs) / 1048576), 3).'M', 'Size server logs (current value)');
|
||||
render_row(get_status_logs($path_server_logs), 'Status server logs');
|
||||
render_row(number_format((get_logs_size($path_err_logs) / 1048576), 3).'M', 'Size error logs (current value)');
|
||||
render_row(get_status_logs($path_err_logs), 'Status error logs');
|
||||
render_row(number_format((get_logs_size($path_console_logs) / 1048576), 3).'M', 'Size console logs (current value)');
|
||||
render_row(get_status_logs($path_console_logs), 'Status console logs');
|
||||
|
||||
|
|
|
@ -1199,13 +1199,13 @@ ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 26);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 27);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
||||
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '733');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '734');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
|
@ -1355,6 +1355,7 @@ ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '
|
|||
-- Table `tnetflow_filter`
|
||||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tnetflow_filter ADD COLUMN `router_ip` TEXT NOT NULL DEFAULT "";
|
||||
UPDATE `tnetflow_filter` SET aggregate="dstip" WHERE aggregate NOT IN ("dstip", "srcip", "dstport", "srcport");
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `treport_custom_sql`
|
||||
|
@ -1376,6 +1377,8 @@ ALTER TABLE treport_content ADD COLUMN `lapse` int(11) default '300';
|
|||
ALTER TABLE treport_content ADD COLUMN `visual_format` tinyint(1) default '0';
|
||||
ALTER TABLE treport_content ADD COLUMN `hide_no_data` tinyint(1) default '0';
|
||||
ALTER TABLE treport_content ADD COLUMN `recursion` tinyint(1) default NULL;
|
||||
ALTER TABLE treport_content ADD COLUMN `show_extended_events` tinyint(1) default '0';
|
||||
UPDATE `treport_content` SET type="netflow_summary" WHERE type="netflow_pie" OR type="netflow_statistics";
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tmodule_relationship`
|
||||
|
@ -1410,6 +1413,7 @@ ALTER TABLE trecon_task ADD `vlan_enabled` int(2) unsigned default '0';
|
|||
ALTER TABLE trecon_task ADD `wmi_enabled` tinyint(1) unsigned DEFAULT '0';
|
||||
ALTER TABLE trecon_task ADD `auth_strings` text;
|
||||
ALTER TABLE trecon_task ADD `autoconfiguration_enabled` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE trecon_task ADD `summary` text;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `twidget` AND Table `twidget_dashboard`
|
||||
|
@ -1912,6 +1916,20 @@ CREATE TABLE `tgis_map_layer_groups` (
|
|||
CONSTRAINT `tgis_map_layer_groups_ibfk_3` FOREIGN KEY (`agent_id`) REFERENCES `tagente` (`id_agente`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tnetwork_matrix`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tnetwork_matrix` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`source` varchar(60) default '',
|
||||
`destination` varchar(60) default '',
|
||||
`utimestamp` bigint(20) default 0,
|
||||
`bytes` int(18) unsigned default 0,
|
||||
`pkts` int(18) unsigned default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE (`source`, `destination`, `utimestamp`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tnotification_source`
|
||||
-- -----------------------------------------------------
|
||||
|
@ -2040,3 +2058,8 @@ INSERT INTO `trecon_script` (`name`,`description`,`script`,`macros`) VALUES ('Di
|
|||
-- Add column in table `tagent_custom_fields`
|
||||
-- ----------------------------------------------------------------------
|
||||
ALTER TABLE tagent_custom_fields ADD COLUMN `combo_values` VARCHAR(255) DEFAULT '';
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- Update table `tuser_task`
|
||||
-- ----------------------------------------------------------------------
|
||||
UPDATE tuser_task set parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/icono_grande_reconserver.png', true, ['title' => __('Collections')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Collections'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Collections'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"A file collection is a group of files (e.g. scripts or executables) which are
|
||||
|
|
|
@ -24,7 +24,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no custom
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Custom Fields')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Custom Fields'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Custom Fields'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Custom fields are an easy way to personalized agent's information.
|
||||
|
|
|
@ -24,7 +24,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no custom
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_custom_reporting.png', true, ['title' => __('Custom Graphs')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Custom Graph'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Custom Graph'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Graphs are designed to show the data collected by %s in a temporary scale defined by the user.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Fields Manager')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Fields Manager'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Fields Manager'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Custom fields are an easy way to personalized agent's information.
|
||||
|
|
|
@ -28,7 +28,7 @@ if ($incident_w || $incident_m) {
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_incidencia.png', true, ['title' => __('Incidents')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Incidents'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Incidents'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Besides receiving and processing data to monitor systems or applications,
|
||||
|
|
|
@ -31,7 +31,7 @@ if ($vconsoles_write || $vconsoles_manage) {
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_visualconsole.png', true, ['title' => __('Visual Console')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Visual Console'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Visual Console'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'%s allows users to create visual maps on which each user is able to create his or her '.'own monitoring map. The new visual console editor is much more practical, although the prior '."visual console editor had its advantages. On the new visual console, we've been successful in "."imitating the sensation and touch of a drawing application like GIMP. We've also simplified the "."editor by dividing it into several subject-divided tabs named 'Data', 'Preview', 'Wizard', 'List of "."Elements' and 'Editor'. The items the %s Visual Map was designed to handle are "."'static images', 'percentage bars', 'module graphs' and 'simple values'.",
|
||||
|
|
|
@ -26,7 +26,7 @@ $networkmap_types = networkmap_get_types($strict_user);
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Network Map')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Network Map'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Network Map'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'There is also an open-source version of the network map.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_visualconsole.png', true, ['title' => __('Planned Downtime')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Planned Downtime'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Planned Downtime'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"%s contains a scheduled downtime management system.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Discovery server')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Discovery Task'); ?><p id="description_task">
|
||||
<h3> <?php echo __('Create Discovery Task'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'Discovery Task are used to find new elements in the network.
|
||||
|
|
|
@ -25,7 +25,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_servicios.png', true, ['title' => __('Services')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Services'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Services'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"A service is a way to group your IT resources based on their functionalities.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('SNMP Filter')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create SNMP Filter'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create SNMP Filter'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Some systems receive a high number of traps.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_gestiondetags.png', true, ['title' => __('Tags')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Tags'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Tags'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Access to modules can be configured by a tagging system.
|
||||
|
|
|
@ -28,7 +28,7 @@ if ($networkmaps_write || $networkmaps_manage) {
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_topology.png', true, ['title' => __('Transactions')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Transactions'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Transactions'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'The new transactional server allows you to execute tasks dependent on the others following a user-defined design. This means that it is possible to coordinate several executions to check a target at a given time.
|
||||
|
|
|
@ -44,8 +44,6 @@ if ($current_package == 0) {
|
|||
echo sprintf(__('%s %s - Build %s - MR %s', get_product_name(), $pandora_version, $build_package_version, $config['MR']));
|
||||
|
||||
echo '</a> ';
|
||||
echo '<a class="footer">'.__('Page generated at').' '.date($config['date_format']);
|
||||
echo '</a><br /><span>® '.get_copyright_notice().'</span>';
|
||||
|
||||
if (isset($config['debug'])) {
|
||||
$cache_info = [];
|
||||
|
|
|
@ -18,10 +18,14 @@ require_once 'include/functions_notifications.php';
|
|||
// Global errors/warnings checking.
|
||||
config_check();
|
||||
|
||||
?>
|
||||
|
||||
<div id="header_table">
|
||||
<div id="header_table_inner">
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo '<div id="header_table" class="header_table_classic">';
|
||||
} else {
|
||||
echo '<div id="header_table" class="header_table_collapsed">';
|
||||
}
|
||||
?>
|
||||
<div id="header_table_inner">
|
||||
<?php
|
||||
// ======= Notifications Discovery ===============================================
|
||||
$notifications_numbers = notifications_get_counters();
|
||||
|
@ -82,7 +86,7 @@ require_once 'include/functions_notifications.php';
|
|||
$header_chat .= '</a></span></div>';
|
||||
|
||||
|
||||
// Search
|
||||
// Search.
|
||||
$acl_head_search = true;
|
||||
if ($config['acl_enterprise'] == 1 && !users_is_admin()) {
|
||||
$acl_head_search = db_get_sql(
|
||||
|
@ -94,7 +98,7 @@ require_once 'include/functions_notifications.php';
|
|||
}
|
||||
|
||||
if ($acl_head_search) {
|
||||
// Search bar
|
||||
// Search bar.
|
||||
$search_bar = '<form method="get" style="display: inline;" name="quicksearch" action="">';
|
||||
if (!isset($config['search_keywords'])) {
|
||||
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>';
|
||||
|
@ -116,15 +120,13 @@ require_once 'include/functions_notifications.php';
|
|||
}
|
||||
|
||||
$search_bar .= 'onfocus="javascript: if (fieldKeyWordEmpty) $(\'#keywords\').val(\'\');"
|
||||
onkeyup="javascript: fieldKeyWordEmpty = false;"
|
||||
style="margin-top:5px;" class="search_input" />';
|
||||
onkeyup="javascript: fieldKeyWordEmpty = false;" class="search_input" />';
|
||||
|
||||
// $search_bar .= 'onClick="javascript: document.quicksearch.submit()"';
|
||||
$search_bar .= "<input type='hidden' name='head_search_keywords' value='abc' />";
|
||||
$search_bar .= '</form>';
|
||||
|
||||
$header_searchbar = '<div id="header_searchbar">'.ui_print_help_tip(__('Blank characters are used as AND conditions'), true);
|
||||
$header_searchbar .= $search_bar.'</div>';
|
||||
$header_searchbar = '<div id="header_searchbar">'.$search_bar.'</div>';
|
||||
}
|
||||
|
||||
|
||||
|
@ -145,10 +147,19 @@ require_once 'include/functions_notifications.php';
|
|||
$_GET['refr'] = null;
|
||||
}
|
||||
|
||||
$select = db_process_sql("SELECT autorefresh_white_list,time_autorefresh FROM tusuario WHERE id_user = '".$config['id_user']."'");
|
||||
$autorefresh_list = json_decode($select[0]['autorefresh_white_list']);
|
||||
$select = db_process_sql(
|
||||
"SELECT autorefresh_white_list,time_autorefresh
|
||||
FROM tusuario
|
||||
WHERE id_user = '".$config['id_user']."'"
|
||||
);
|
||||
|
||||
if ($autorefresh_list !== null && array_search($_GET['sec2'], $autorefresh_list) !== false) {
|
||||
$autorefresh_list = json_decode(
|
||||
$select[0]['autorefresh_white_list']
|
||||
);
|
||||
|
||||
if ($autorefresh_list !== null
|
||||
&& array_search($_GET['sec2'], $autorefresh_list) !== false
|
||||
) {
|
||||
$do_refresh = true;
|
||||
if ($_GET['sec2'] == 'operation/agentes/pandora_networkmap') {
|
||||
if ((!isset($_GET['tab'])) || ($_GET['tab'] != 'view')) {
|
||||
|
@ -157,22 +168,57 @@ require_once 'include/functions_notifications.php';
|
|||
}
|
||||
|
||||
if ($do_refresh) {
|
||||
$autorefresh_img = html_print_image('images/header_refresh_gray.png', true, ['class' => 'bot', 'alt' => 'lightning', 'title' => __('Configure autorefresh')]);
|
||||
$autorefresh_img = html_print_image(
|
||||
'images/header_refresh_gray.png',
|
||||
true,
|
||||
[
|
||||
'class' => 'bot',
|
||||
'alt' => 'lightning',
|
||||
'title' => __('Configure autorefresh'),
|
||||
]
|
||||
);
|
||||
|
||||
if ($_GET['refr']) {
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">'.date('i:s', $config['refr']).'</span>)';
|
||||
if ((isset($select[0]['time_autorefresh']) === true)
|
||||
&& $select[0]['time_autorefresh'] !== 0
|
||||
&& $config['refr'] === null
|
||||
) {
|
||||
$config['refr'] = $select[0]['time_autorefresh'];
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">';
|
||||
$autorefresh_txt .= date(
|
||||
'i:s',
|
||||
$config['refr']
|
||||
);
|
||||
$autorefresh_txt .= '</span>)';
|
||||
} else if ($_GET['refr']) {
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">';
|
||||
$autorefresh_txt .= date('i:s', $config['refr']);
|
||||
$autorefresh_txt .= '</span>)';
|
||||
}
|
||||
|
||||
$ignored_params['refr'] = '';
|
||||
$values = get_refresh_time_array();
|
||||
|
||||
$autorefresh_additional = '<span id="combo_refr" style="display: none;">';
|
||||
$autorefresh_additional .= html_print_select($values, 'ref', '', '', __('Select'), '0', true, false, false);
|
||||
$autorefresh_additional .= html_print_select(
|
||||
$values,
|
||||
'ref',
|
||||
'',
|
||||
'',
|
||||
__('Select'),
|
||||
'0',
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$autorefresh_additional .= '</span>';
|
||||
unset($values);
|
||||
|
||||
$autorefresh_link_open_img = '<a class="white autorefresh" href="'.ui_get_url_refresh($ignored_params).'">';
|
||||
|
||||
if ($_GET['refr']) {
|
||||
if ($_GET['refr']
|
||||
|| ((isset($select[0]['time_autorefresh']) === true)
|
||||
&& $select[0]['time_autorefresh'] !== 0)
|
||||
) {
|
||||
$autorefresh_link_open_txt = '<a class="autorefresh autorefresh_txt" href="'.ui_get_url_refresh($ignored_params).'">';
|
||||
} else {
|
||||
$autorefresh_link_open_txt = '<a>';
|
||||
|
@ -192,7 +238,15 @@ require_once 'include/functions_notifications.php';
|
|||
$display_counter = 'display:none';
|
||||
}
|
||||
} else {
|
||||
$autorefresh_img = html_print_image('images/header_refresh_disabled_gray.png', true, ['class' => 'bot autorefresh_disabled', 'alt' => 'lightning', 'title' => __('Disabled autorefresh')]);
|
||||
$autorefresh_img = html_print_image(
|
||||
'images/header_refresh_disabled_gray.png',
|
||||
true,
|
||||
[
|
||||
'class' => 'bot autorefresh_disabled',
|
||||
'alt' => 'lightning',
|
||||
'title' => __('Disabled autorefresh'),
|
||||
]
|
||||
);
|
||||
|
||||
$ignored_params['refr'] = false;
|
||||
|
||||
|
@ -203,56 +257,80 @@ require_once 'include/functions_notifications.php';
|
|||
$display_counter = 'display:none';
|
||||
}
|
||||
|
||||
$header_autorefresh = '<div id="header_autorefresh">'.$autorefresh_link_open_img.$autorefresh_img.$autorefresh_link_close.'</div>';
|
||||
$header_autorefresh_counter = '<div id="header_autorefresh_counter" style="'.$display_counter.'">'.$autorefresh_link_open_txt.$autorefresh_txt.$autorefresh_link_close.$autorefresh_additional.'</div>';
|
||||
$header_autorefresh = '<div id="header_autorefresh">';
|
||||
$header_autorefresh .= $autorefresh_link_open_img;
|
||||
$header_autorefresh .= $autorefresh_img;
|
||||
$header_autorefresh .= $autorefresh_link_close;
|
||||
$header_autorefresh .= '</div>';
|
||||
|
||||
$header_autorefresh_counter = '<div id="header_autorefresh_counter" style="'.$display_counter.'">';
|
||||
$header_autorefresh_counter .= $autorefresh_link_open_txt;
|
||||
$header_autorefresh_counter .= $autorefresh_txt;
|
||||
$header_autorefresh_counter .= $autorefresh_link_close;
|
||||
$header_autorefresh_counter .= $autorefresh_additional;
|
||||
$header_autorefresh_counter .= '</div>';
|
||||
|
||||
|
||||
// Qr.
|
||||
if ($config['show_qr_code_header'] == 0) {
|
||||
$show_qr_code_header = 'display: none;';
|
||||
// Support.
|
||||
if (defined('PANDORA_ENTERPRISE')) {
|
||||
$header_support_link = 'https://support.artica.es/';
|
||||
} else {
|
||||
$show_qr_code_header = 'display: inline;';
|
||||
$header_support_link = 'https://pandorafms.com/forums/';
|
||||
}
|
||||
|
||||
$header_qr = '<div id="header_qr" style="'.$show_qr_code_header.'"><div id="qr_code_container"><a href="javascript: show_dialog_qrcode();">'.html_print_image(
|
||||
'images/qrcode_icon_gray.png',
|
||||
true,
|
||||
[
|
||||
'alt' => __('QR Code of the page'),
|
||||
'title' => __('QR Code of the page'),
|
||||
]
|
||||
).'</a></div></div>';
|
||||
$header_support = '<div id="header_support">';
|
||||
$header_support .= '<a href="'.$header_support_link.'" target="_blank">';
|
||||
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_support .= '</a></div>';
|
||||
|
||||
// Documentation.
|
||||
$header_docu = '<div id="header_support">';
|
||||
$header_docu .= '<a href="https://wiki.pandorafms.com/index.php?title=Main_Page" target="_blank">';
|
||||
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_docu .= '</a></div>';
|
||||
|
||||
|
||||
echo "<div style='display: none;' id='qrcode_container' title='".__('QR code of the page')."'>";
|
||||
echo "<div id='qrcode_container_image'></div>";
|
||||
echo '</div>';
|
||||
?>
|
||||
<script type='text/javascript'>
|
||||
$(document).ready(function() {
|
||||
$( "#qrcode_container" ).dialog({
|
||||
autoOpen: false,
|
||||
modal: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
// User.
|
||||
if (is_user_admin($config['id_user']) == 1) {
|
||||
$header_user = html_print_image('images/header_user_admin_green.png', true, ['title' => __('Edit my user'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_user = html_print_image(
|
||||
'images/header_user_admin_green.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Edit my user'),
|
||||
'class' => 'bot',
|
||||
'alt' => 'user',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$header_user = html_print_image('images/header_user_green.png', true, ['title' => __('Edit my user'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_user = html_print_image(
|
||||
'images/header_user_green.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Edit my user'),
|
||||
'class' => 'bot',
|
||||
'alt' => 'user',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$header_user = '<div id="header_user"><a href="index.php?sec=workspace&sec2=operation/users/user_edit">'.$header_user.'<span> ('.$config['id_user'].')</span></a></div>';
|
||||
|
||||
// Logout.
|
||||
$header_logout = '<div id="header_logout"><a class="white" href="'.ui_get_full_url('index.php?bye=bye').'">';
|
||||
$header_logout .= html_print_image('images/header_logout_gray.png', true, ['alt' => __('Logout'), 'class' => 'bot', 'title' => __('Logout')]);
|
||||
$header_logout .= html_print_image(
|
||||
'images/header_logout_gray.png',
|
||||
true,
|
||||
[
|
||||
'alt' => __('Logout'),
|
||||
'class' => 'bot',
|
||||
'title' => __('Logout'),
|
||||
]
|
||||
);
|
||||
$header_logout .= '</a></div>';
|
||||
|
||||
echo '<div class="header_left">'.$header_autorefresh, $header_autorefresh_counter, $header_qr, $header_chat.'</div>
|
||||
<div class="header_center">'.$header_searchbar, $header_discovery, $servers_list.'</div>
|
||||
<div class="header_right">'.$header_user, $header_logout.'</div>';
|
||||
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
||||
<div class="header_center">'.$header_searchbar.'</div>
|
||||
<div class="header_right">'.$header_chat, $header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_support, $header_docu, $header_user, $header_logout.'</div>';
|
||||
?>
|
||||
</div> <!-- Closes #table_header_inner -->
|
||||
</div> <!-- Closes #table_header -->
|
||||
|
@ -490,7 +568,12 @@ require_once 'include/functions_notifications.php';
|
|||
);
|
||||
|
||||
<?php
|
||||
if (($autorefresh_list !== null) && (array_search($_GET['sec2'], $autorefresh_list) !== false) && (!isset($_GET['refr']))) {
|
||||
if (($autorefresh_list !== null)
|
||||
&& (array_search(
|
||||
$_GET['sec2'],
|
||||
$autorefresh_list
|
||||
) !== false) && (!isset($_GET['refr']))
|
||||
) {
|
||||
$do_refresh = true;
|
||||
if ($_GET['sec2'] == 'operation/agentes/pandora_networkmap') {
|
||||
if ((!isset($_GET['tab'])) || ($_GET['tab'] != 'view')) {
|
||||
|
@ -503,31 +586,12 @@ require_once 'include/functions_notifications.php';
|
|||
if ($_GET['sec2'] == 'enterprise/dashboard/main_dashboard' && $new_dashboard) {
|
||||
$do_refresh = false;
|
||||
}
|
||||
|
||||
if ($do_refresh) {
|
||||
?>
|
||||
$("a.autorefresh_txt").toggle ();
|
||||
$("#combo_refr").toggle ();
|
||||
href = $("a.autorefresh").attr ("href");
|
||||
<?php
|
||||
if ($select[0]['time_autorefresh']) {
|
||||
?>
|
||||
var refresh = '<?php echo $select[0]['time_autorefresh']; ?>';
|
||||
$(document).attr ("location", href + refresh);
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
if (fixed_header) {
|
||||
$('div#head').addClass('fixed_header');
|
||||
$('div#page')
|
||||
.css('padding-top', $('div#head').innerHeight() + 'px')
|
||||
.css('position', 'relative');
|
||||
$('div#main').css('padding-top', $('div#head').innerHeight() + 'px');
|
||||
}
|
||||
|
||||
check_new_chats_icon('icon_new_messages_chat');
|
||||
|
@ -547,14 +611,14 @@ require_once 'include/functions_notifications.php';
|
|||
blinkpubli();
|
||||
|
||||
<?php
|
||||
if ($_GET['refr']) {
|
||||
if ($_GET['refr'] || $do_refresh === true) {
|
||||
?>
|
||||
$("#header_autorefresh").css('padding-right', '5px');
|
||||
var refr_time = <?php echo (int) get_parameter('refr', 0); ?>;
|
||||
var t = new Date();
|
||||
t.setTime (t.getTime () +
|
||||
parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||
$("#refrcounter").countdown ({until: t,
|
||||
t.setTime (t.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||
$("#refrcounter").countdown ({
|
||||
until: t,
|
||||
layout: '%M%nn%M:%S%nn%S',
|
||||
labels: ['', '', '', '', '', '', ''],
|
||||
onExpiry: function () {
|
||||
|
|
|
@ -305,12 +305,12 @@ if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
|||
echo '<div class ="img_banner_login">';
|
||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||
if (isset($config['custom_splash_login'])) {
|
||||
html_print_image('enterprise/images/custom_splash_login/'.$config['custom_splash_login'], false, [ 'alt' => 'splash', 'border' => 0, 'title' => $splash_title], false, true);
|
||||
html_print_image('enterprise/images/custom_splash_login/'.$config['custom_splash_login'], false, [ 'alt' => 'splash', 'border' => 0], false, true);
|
||||
} else {
|
||||
html_print_image('enterprise/images/custom_splash_login/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0, 'title' => $splash_title], false, true);
|
||||
html_print_image('enterprise/images/custom_splash_login/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0], false, true);
|
||||
}
|
||||
} else {
|
||||
html_print_image('images/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0, 'title' => $splash_title], false, true);
|
||||
html_print_image('images/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0], false, true);
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
|
|
@ -1,26 +1,39 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to self monitor Pandora FMS Console
|
||||
*
|
||||
* @category Main page
|
||||
* @package Pandora FMS
|
||||
* @subpackage Introduction
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; 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.
|
||||
// Config functions.
|
||||
require_once 'include/config.php';
|
||||
|
||||
// This solves problems in enterprise load
|
||||
// This solves problems in enterprise load.
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
/*
|
||||
Call all extensions login function */
|
||||
// extensions_call_login_function ();
|
||||
require_once 'include/functions_reporting.php';
|
||||
require_once 'include/functions_tactical.php';
|
||||
require_once $config['homedir'].'/include/functions_graph.php';
|
||||
|
@ -29,8 +42,18 @@ if (tags_has_user_acl_tags()) {
|
|||
ui_print_tags_warning();
|
||||
}
|
||||
|
||||
$user_strict = (bool) db_get_value('strict_acl', 'tusuario', 'id_user', $config['id_user']);
|
||||
$all_data = tactical_status_modules_agents($config['id_user'], $user_strict, 'AR', $user_strict);
|
||||
$user_strict = (bool) db_get_value(
|
||||
'strict_acl',
|
||||
'tusuario',
|
||||
'id_user',
|
||||
$config['id_user']
|
||||
);
|
||||
$all_data = tactical_status_modules_agents(
|
||||
$config['id_user'],
|
||||
$user_strict,
|
||||
'AR',
|
||||
$user_strict
|
||||
);
|
||||
$data = [];
|
||||
|
||||
$data['monitor_not_init'] = (int) $all_data['_monitors_not_init_'];
|
||||
|
@ -79,6 +102,8 @@ if (!empty($all_data)) {
|
|||
|
||||
$data['server_sanity'] = format_numeric((100 - $data['module_sanity']), 1);
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<table border="0" width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
|
@ -88,7 +113,7 @@ if (!empty($all_data)) {
|
|||
|
||||
<?php
|
||||
//
|
||||
// Overview Table
|
||||
// Overview Table.
|
||||
//
|
||||
$table = new stdClass();
|
||||
$table->class = 'databox';
|
||||
|
@ -101,12 +126,12 @@ if (!empty($all_data)) {
|
|||
$table->head[0] = '<span>'.__('%s Overview', get_product_name()).'</span>';
|
||||
$table->head_colspan[0] = 4;
|
||||
|
||||
// Indicators
|
||||
// Indicators.
|
||||
$tdata = [];
|
||||
$stats = reporting_get_stats_indicators($data, 120, 10, false);
|
||||
$status = '<table class="status_tactical">';
|
||||
foreach ($stats as $stat) {
|
||||
$status .= '<tr><td><b>'.$stat['title'].'</b>'.'</td><td>'.$stat['graph'].'</td></tr>';
|
||||
$status .= '<tr><td><b>'.$stat['title'].'</b></td><td>'.$stat['graph'].'</td></tr>';
|
||||
}
|
||||
|
||||
$status .= '</table>';
|
||||
|
@ -115,25 +140,25 @@ if (!empty($all_data)) {
|
|||
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Alerts
|
||||
// Alerts.
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_alerts($data);
|
||||
$table->rowclass[] = '';
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Modules by status
|
||||
// Modules by status.
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_modules_status($data, 180, 100);
|
||||
$table->rowclass[] = '';
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Total agents and modules
|
||||
// Total agents and modules.
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_agents_monitors($data);
|
||||
$table->rowclass[] = '';
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Users
|
||||
// Users.
|
||||
if (users_is_admin()) {
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_users($data);
|
||||
|
@ -160,7 +185,7 @@ if (!empty($all_data)) {
|
|||
|
||||
|
||||
if (!empty($news)) {
|
||||
// NEWS BOARD/////////////////////////////
|
||||
// NEWS BOARD.
|
||||
echo '<div id="news_board">';
|
||||
|
||||
echo '<table cellpadding="0" width=100% cellspacing="0" class="databox filters">';
|
||||
|
@ -184,20 +209,72 @@ if (!empty($all_data)) {
|
|||
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
// News board
|
||||
// News board.
|
||||
echo '<br><br>';
|
||||
|
||||
// END OF NEWS BOARD/////////////////////////////
|
||||
// END OF NEWS BOARD.
|
||||
}
|
||||
|
||||
// LAST ACTIVITY/////////////////////////////
|
||||
// Show last activity from this user
|
||||
$nots = messages_get_overview('utimestamp', 'DESC', false);
|
||||
if (!empty($nots)) {
|
||||
// Notifications board.
|
||||
echo '<div id="notifications_board">';
|
||||
|
||||
echo '<table cellpadding="0" width=100% cellspacing="0" class="databox filters">';
|
||||
echo '<tr><th style="text-align:center;"><span >'.__('Pending notifications').'</span></th></tr>';
|
||||
if ($config['prominent_time'] == 'timestamp') {
|
||||
$comparation_suffix = '';
|
||||
} else {
|
||||
$comparation_suffix = __('ago');
|
||||
}
|
||||
|
||||
foreach ($nots as $msg) {
|
||||
$conversation = io_safe_output(
|
||||
messages_get_conversation($msg)
|
||||
);
|
||||
|
||||
if (is_array($conversation)) {
|
||||
$text = array_pop($conversation)['message'];
|
||||
} else {
|
||||
// Skip empty message.
|
||||
continue;
|
||||
}
|
||||
|
||||
$url = ui_get_full_url(
|
||||
'index.php?sec=message_list&sec2=operation/messages/message_edit&read_message=1&id_message='.$msg['id_mensaje']
|
||||
);
|
||||
if ($msg['url'] != '') {
|
||||
$url = $msg['url'];
|
||||
}
|
||||
|
||||
echo '<tr><th class="green_title">'.$msg['subject'].'</th></tr>';
|
||||
echo '<tr><td><a href="'.$url.'">';
|
||||
if ($msg['id_usuario_origen'] != '') {
|
||||
echo '<b>'.get_user_fullname($msg['id_usuario_origen']).'</b> ';
|
||||
}
|
||||
|
||||
echo '<i>'.ui_print_timestamp($msg['timestamp'], true).'</i> '.$comparation_suffix.'</a></td></tr>';
|
||||
echo '<tr><td class="datos">';
|
||||
echo nl2br($text);
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<br><br>';
|
||||
|
||||
// EO Notifications board.
|
||||
}
|
||||
|
||||
// LAST ACTIVITY.
|
||||
// Show last activity from this user.
|
||||
echo '<div id="activity">';
|
||||
|
||||
$table = new stdClass();
|
||||
$table->class = 'databox data';
|
||||
$table->width = '100%';
|
||||
// Don't specify px
|
||||
// Don't specify px.
|
||||
$table->data = [];
|
||||
$table->size = [];
|
||||
$table->size[0] = '5%';
|
||||
|
@ -212,38 +289,14 @@ if (!empty($all_data)) {
|
|||
$table->head[3] = __('Source IP');
|
||||
$table->head[4] = __('Comments');
|
||||
$table->title = '<span>'.__('This is your last activity performed on the %s console', get_product_name()).'</span>';
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$sql = sprintf(
|
||||
'SELECT id_usuario,accion, ip_origen,descripcion,utimestamp
|
||||
$sql = sprintf(
|
||||
'SELECT id_usuario,accion, ip_origen,descripcion,utimestamp
|
||||
FROM tsesion
|
||||
WHERE (`utimestamp` > UNIX_TIMESTAMP(NOW()) - '.SECONDS_1WEEK.")
|
||||
AND `id_usuario` = '%s' ORDER BY `utimestamp` DESC LIMIT 10",
|
||||
$config['id_user']
|
||||
);
|
||||
break;
|
||||
$config['id_user']
|
||||
);
|
||||
|
||||
case 'postgresql':
|
||||
$sql = sprintf(
|
||||
"SELECT \"id_usuario\", accion, \"ip_origen\", descripcion, utimestamp
|
||||
FROM tsesion
|
||||
WHERE (\"utimestamp\" > ceil(date_part('epoch', CURRENT_TIMESTAMP)) - ".SECONDS_1WEEK.")
|
||||
AND \"id_usuario\" = '%s' ORDER BY \"utimestamp\" DESC LIMIT 10",
|
||||
$config['id_user']
|
||||
);
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$sql = sprintf(
|
||||
"SELECT id_usuario, accion, ip_origen, descripcion, utimestamp
|
||||
FROM tsesion
|
||||
WHERE ((utimestamp > ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (".SECONDS_1DAY.')) - '.SECONDS_1WEEK.")
|
||||
AND id_usuario = '%s') AND rownum <= 10 ORDER BY utimestamp DESC",
|
||||
$config['id_user']
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
$sessions = db_get_all_rows_sql($sql);
|
||||
|
||||
|
@ -253,24 +306,17 @@ if (!empty($all_data)) {
|
|||
|
||||
foreach ($sessions as $session) {
|
||||
$data = [];
|
||||
$session_id_usuario = $session['id_usuario'];
|
||||
$session_ip_origen = $session['ip_origen'];
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
case 'oracle':
|
||||
$session_id_usuario = $session['id_usuario'];
|
||||
$session_ip_origen = $session['ip_origen'];
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
$session_id_usuario = $session['id_usuario'];
|
||||
$session_ip_origen = $session['ip_origen'];
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$data[0] = '<strong>'.$session_id_usuario.'</strong>';
|
||||
$data[1] = ui_print_session_action_icon($session['accion'], true).' '.$session['accion'];
|
||||
$data[2] = ui_print_help_tip(date($config['date_format'], $session['utimestamp']), true).human_time_comparation($session['utimestamp'], 'tiny');
|
||||
$data[2] = ui_print_help_tip(
|
||||
date($config['date_format'], $session['utimestamp']),
|
||||
true
|
||||
).human_time_comparation($session['utimestamp'], 'tiny');
|
||||
$data[3] = $session_ip_origen;
|
||||
$description = str_replace([',', ', '], ', ', $session['descripcion']);
|
||||
if (strlen($description) > 100) {
|
||||
|
@ -287,8 +333,7 @@ if (!empty($all_data)) {
|
|||
unset($table);
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
// activity
|
||||
// END OF LAST ACTIVIYY/////////////////////////////
|
||||
// END OF LAST ACTIVIYY.
|
||||
?>
|
||||
|
||||
|
||||
|
|
|
@ -20,31 +20,13 @@ if (! isset($config['id_user'])) {
|
|||
<script type="text/javascript" language="javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
var menuType_value = localStorage.getItem("menuType");
|
||||
var menuType_value = "<?php echo $config['menu_type']; ?>";
|
||||
|
||||
if (menuType_value == 'classic') {
|
||||
$('#menu_full').removeClass('menu_full_collapsed').addClass('menu_full_classic');
|
||||
$('.logo_icon').css('display','none');
|
||||
$('.logo_full').css('display','block');
|
||||
$('div#title_menu').removeClass('title_menu_collapsed').addClass('title_menu_classic');
|
||||
$('div#page').removeClass('page_collapsed').addClass('page_classic');
|
||||
$('#header_table').removeClass('header_table_collapsed').addClass('header_table_classic');
|
||||
$('#button_collapse').removeClass('button_collapsed').addClass('button_classic');
|
||||
$('ul.submenu').css('left', '214px');
|
||||
$('li.menu_icon').removeClass('menu_icon_collapsed').addClass("no_hidden_menu");
|
||||
}
|
||||
else{
|
||||
if(menuType_value != 'collapsed'){
|
||||
localStorage.setItem("menuType", "collapsed");
|
||||
}
|
||||
$('#menu_full').removeClass('menu_full_classic').addClass('menu_full_collapsed');
|
||||
$('.logo_full').css('display','none');
|
||||
$('.logo_icon').css('display','block');
|
||||
$('div#title_menu').removeClass('title_menu_classic').addClass('title_menu_collapsed');
|
||||
$('div#page').removeClass('page_classic').addClass('page_collapsed');
|
||||
$('#header_table').removeClass('header_table_classic').addClass('header_table_collapsed');
|
||||
$('#button_collapse').removeClass('button_classic').addClass('button_collapsed');
|
||||
$('ul.submenu').css('left', '59px');
|
||||
$('li.menu_icon').removeClass("no_hidden_menu").addClass('menu_icon_collapsed');
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -63,14 +45,18 @@ if (isset($config['autohidden_menu']) && $config['autohidden_menu']) {
|
|||
}
|
||||
|
||||
// Menu container prepared to autohide menu
|
||||
echo '<div id="menu_full">';
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo '<div id="menu_full" class="menu_full_classic">';
|
||||
} else {
|
||||
echo '<div id="menu_full" class="menu_full_collapsed">';
|
||||
}
|
||||
|
||||
$custom_logo = 'images/custom_logo/'.$config['custom_logo'];
|
||||
$custom_logo_collapsed = 'images/custom_logo/'.$config['custom_logo_collapsed'];
|
||||
|
||||
if (!defined('PANDORA_ENTERPRISE')) {
|
||||
$logo_title = get_product_name().' Opensource';
|
||||
$custom_logo = 'images/custom_logo/pandora_logo_head_green.png';
|
||||
$custom_logo = 'images/custom_logo/pandora_logo_head_3.png';
|
||||
$custom_logo_collapsed = 'images/custom_logo/pandora_logo_green_collapsed.png';
|
||||
} else {
|
||||
if (file_exists(ENTERPRISE_DIR.'/'.$custom_logo)) {
|
||||
|
@ -82,11 +68,19 @@ if (!defined('PANDORA_ENTERPRISE')) {
|
|||
|
||||
echo '<div class="logo_green"><a href="index.php?sec=main">';
|
||||
if (isset($config['custom_logo'])) {
|
||||
echo html_print_image($custom_logo, true, ['border' => '0', 'width' => '215', 'alt' => $logo_title, 'class' => 'logo_full', 'style' => 'display:none']);
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo html_print_image($custom_logo, true, ['border' => '0', 'width' => '215', 'alt' => $logo_title, 'class' => 'logo_full', 'style' => 'display:block']);
|
||||
} else {
|
||||
echo html_print_image($custom_logo, true, ['border' => '0', 'width' => '215', 'alt' => $logo_title, 'class' => 'logo_full', 'style' => 'display:none']);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($config['custom_logo_collapsed'])) {
|
||||
echo html_print_image($custom_logo_collapsed, true, ['border' => '0', 'width' => '60', 'alt' => $logo_title, 'class' => 'logo_icon', 'style' => 'display:block']);
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo html_print_image($custom_logo_collapsed, true, ['border' => '0', 'width' => '60', 'alt' => $logo_title, 'class' => 'logo_icon', 'style' => 'display:none']);
|
||||
} else {
|
||||
echo html_print_image($custom_logo_collapsed, true, ['border' => '0', 'width' => '60', 'alt' => $logo_title, 'class' => 'logo_icon', 'style' => 'display:block']);
|
||||
}
|
||||
}
|
||||
|
||||
echo '</a></div>';
|
||||
|
@ -109,8 +103,11 @@ if (check_acl($config['id_user'], 0, 'AW')
|
|||
|
||||
require 'godmode/menu.php';
|
||||
|
||||
echo '<div id="button_collapse" class="button_collapse"></div>';
|
||||
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo '<div id="button_collapse" class="button_classic button_collapse"></div>';
|
||||
} else {
|
||||
echo '<div id="button_collapse" class="button_collapsed button_collapse"></div>';
|
||||
}
|
||||
|
||||
// require ("links_menu.php");
|
||||
echo '</div>';
|
||||
|
@ -131,10 +128,30 @@ $('#button_collapse').on('click', function() {
|
|||
if($('#menu_full').hasClass('menu_full_classic')){
|
||||
localStorage.setItem("menuType", "collapsed");
|
||||
$('ul.submenu').css('left', '59px');
|
||||
var menuType_val = localStorage.getItem("menuType");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
data: {
|
||||
menuType: menuType_val,
|
||||
page: "include/functions_menu"
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
else if($('#menu_full').hasClass('menu_full_collapsed')){
|
||||
localStorage.setItem("menuType", "classic");
|
||||
$('ul.submenu').css('left', '214px');
|
||||
var menuType_val = localStorage.getItem("menuType");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
data: {
|
||||
menuType: menuType_val,
|
||||
page: "include/functions_menu"
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
|
||||
$('.logo_full').toggle();
|
||||
|
|
|
@ -375,12 +375,12 @@ if ($create_modules) {
|
|||
$new_module_configuration_data .= "\nmodule_secname ".$snmp3_auth_user;
|
||||
$new_module_configuration_data .= "\nmodule_seclevel ".$snmp3_security_level;
|
||||
|
||||
if ($snmp3_security_level=='authNoPriv' || $snmp3_security_level=='authPriv') {
|
||||
if ($snmp3_security_level == 'authNoPriv' || $snmp3_security_level == 'authPriv') {
|
||||
$new_module_configuration_data .= "\nmodule_authpass ".$snmp3_auth_pass;
|
||||
$new_module_configuration_data .= "\nmodule_authproto ".$snmp3_auth_method;
|
||||
}
|
||||
|
||||
if ($snmp3_security_level=='authPriv') {
|
||||
if ($snmp3_security_level == 'authPriv') {
|
||||
$new_module_configuration_data .= "\nmodule_privproto ".$snmp3_privacy_method;
|
||||
$new_module_configuration_data .= "\nmodule_privpass ".$snmp3_privacy_pass;
|
||||
}
|
||||
|
|
|
@ -160,7 +160,7 @@ $module_macros = [];
|
|||
if ($create_agent) {
|
||||
$mssg_warning = 0;
|
||||
$alias_safe_output = io_safe_output(get_parameter('alias', ''));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$]/', '', $alias_safe_output)));
|
||||
$alias_as_name = (int) get_parameter_post('alias_as_name', 0);
|
||||
$direccion_agente = (string) get_parameter_post('direccion', '');
|
||||
$unique_ip = (int) get_parameter_post('unique_ip', 0);
|
||||
|
@ -766,7 +766,7 @@ if ($update_agent) {
|
|||
$id_agente = (int) get_parameter_post('id_agente');
|
||||
$nombre_agente = str_replace('`', '‘', (string) get_parameter_post('agente', ''));
|
||||
$alias_safe_output = io_safe_output(get_parameter('alias', ''));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$]/', '', $alias_safe_output)));
|
||||
$alias_as_name = (int) get_parameter_post('alias_as_name', 0);
|
||||
$direccion_agente = (string) get_parameter_post('direccion', '');
|
||||
$unique_ip = (int) get_parameter_post('unique_ip', 0);
|
||||
|
|
|
@ -24,15 +24,15 @@ $menu_godmode['class'] = 'godmode';
|
|||
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
$sub = [];
|
||||
$sub['godmode/servers/discovery']['text'] = __('Discover');
|
||||
$sub['godmode/servers/discovery']['id'] = 'Discover';
|
||||
$sub['godmode/servers/discovery']['text'] = __('Discovery');
|
||||
$sub['godmode/servers/discovery']['id'] = 'Discovery';
|
||||
$sub['godmode/servers/discovery']['subsecs'] = ['godmode/servers/discovery'];
|
||||
|
||||
// Add to menu.
|
||||
$menu_godmode['discover']['text'] = __('Discovery');
|
||||
$menu_godmode['discover']['sec2'] = 'godmode/servers/discovery';
|
||||
$menu_godmode['discover']['id'] = 'god-discovery';
|
||||
$menu_godmode['discover']['sub'] = $sub;
|
||||
$menu_godmode['discovery']['text'] = __('Discovery');
|
||||
$menu_godmode['discovery']['sec2'] = 'godmode/servers/discovery';
|
||||
$menu_godmode['discovery']['id'] = 'god-discovery';
|
||||
$menu_godmode['discovery']['sub'] = $sub;
|
||||
}
|
||||
|
||||
|
||||
|
@ -225,15 +225,9 @@ if (check_acl($config['id_user'], 0, 'AW') || check_acl($config['id_user'], 0, '
|
|||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
enterprise_hook('ha_cluster');
|
||||
|
||||
$sub['godmode/servers/manage_recontask']['text'] = __('Recon task');
|
||||
$sub['godmode/servers/manage_recontask']['id'] = 'Recon task';
|
||||
|
||||
$sub['godmode/servers/plugin']['text'] = __('Plugins');
|
||||
$sub['godmode/servers/plugin']['id'] = 'Plugins';
|
||||
|
||||
$sub['godmode/servers/recon_script']['text'] = __('Recon script');
|
||||
$sub['godmode/servers/recon_script']['id'] = 'Recon script';
|
||||
|
||||
enterprise_hook('export_target_submenu');
|
||||
|
||||
enterprise_hook('manage_satellite_submenu');
|
||||
|
|
|
@ -85,7 +85,6 @@ if ($id) {
|
|||
$dst_port = $filter['dst_port'];
|
||||
$src_port = $filter['src_port'];
|
||||
$aggregate = $filter['aggregate'];
|
||||
$output = $filter['output'];
|
||||
$advanced_filter = $filter['advanced_filter'];
|
||||
} else {
|
||||
$name = '';
|
||||
|
@ -94,8 +93,7 @@ if ($id) {
|
|||
$ip_src = '';
|
||||
$dst_port = '';
|
||||
$src_port = '';
|
||||
$aggregate = 'none';
|
||||
$output = 'bytes';
|
||||
$aggregate = 'dstip';
|
||||
$advanced_filter = '';
|
||||
}
|
||||
|
||||
|
@ -103,7 +101,6 @@ if ($update) {
|
|||
$name = (string) get_parameter('name');
|
||||
$assign_group = (int) get_parameter('assign_group');
|
||||
$aggregate = get_parameter('aggregate', '');
|
||||
$output = get_parameter('output', 'bytes');
|
||||
$ip_dst = get_parameter('ip_dst', '');
|
||||
$ip_src = get_parameter('ip_src', '');
|
||||
$dst_port = get_parameter('dst_port', '');
|
||||
|
@ -123,7 +120,6 @@ if ($update) {
|
|||
'dst_port' => $dst_port,
|
||||
'src_port' => $src_port,
|
||||
'advanced_filter' => $advanced_filter,
|
||||
'output' => $output,
|
||||
];
|
||||
|
||||
// Save filter args
|
||||
|
@ -142,8 +138,7 @@ if ($update) {
|
|||
if ($create) {
|
||||
$name = (string) get_parameter('name');
|
||||
$assign_group = (int) get_parameter('assign_group');
|
||||
$aggregate = get_parameter('aggregate', 'none');
|
||||
$output = get_parameter('output', 'bytes');
|
||||
$aggregate = get_parameter('aggregate', 'dstip');
|
||||
$ip_dst = get_parameter('ip_dst', '');
|
||||
$ip_src = get_parameter('ip_src', '');
|
||||
$dst_port = get_parameter('dst_port', '');
|
||||
|
@ -159,7 +154,6 @@ if ($create) {
|
|||
'src_port' => $src_port,
|
||||
'aggregate' => $aggregate,
|
||||
'advanced_filter' => $advanced_filter,
|
||||
'output' => $output,
|
||||
];
|
||||
|
||||
// Save filter args
|
||||
|
@ -241,8 +235,6 @@ $table->data[7][1] = html_print_textarea('advanced_filter', 4, 40, $advanced_fil
|
|||
|
||||
$table->data[8][0] = '<b>'.__('Aggregate by').'</b>'.ui_print_help_icon('aggregate_by', true);
|
||||
$aggregate_list = [
|
||||
'none' => __('None'),
|
||||
'proto' => __('Protocol'),
|
||||
'srcip' => __('Src Ip Address'),
|
||||
'dstip' => __('Dst Ip Address'),
|
||||
'srcport' => __('Src Port'),
|
||||
|
@ -251,15 +243,6 @@ $aggregate_list = [
|
|||
|
||||
$table->data[8][1] = html_print_select($aggregate_list, 'aggregate', $aggregate, '', '', 0, true, false, true, '', false);
|
||||
|
||||
$table->data[9][0] = '<b>'.__('Output format').'</b>';
|
||||
$show_output = [
|
||||
'kilobytes' => __('Kilobytes'),
|
||||
'megabytes' => __('Megabytes'),
|
||||
'kilobytespersecond' => __('Kilobytes per second'),
|
||||
'megabytespersecond' => __('Megabytes per second'),
|
||||
];
|
||||
$table->data[9][1] = html_print_select($show_output, 'output', $output, '', '', 0, true, false, true, '', false);
|
||||
|
||||
echo '<form method="post" action="'.$config['homeurl'].'index.php?sec=netf&sec2=godmode/netflow/nf_edit_form&pure='.$pure.'">';
|
||||
html_print_table($table);
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
|
|
@ -110,7 +110,7 @@ $event_graph_validated_vs_unvalidated = false;
|
|||
|
||||
$netflow_filter = 0;
|
||||
$max_values = 0;
|
||||
$resolution = 0;
|
||||
$resolution = NETFLOW_RES_MEDD;
|
||||
|
||||
$lapse_calc = 0;
|
||||
$lapse = 300;
|
||||
|
@ -450,6 +450,7 @@ switch ($action) {
|
|||
case 'event_report_agent':
|
||||
case 'event_report_group':
|
||||
$recursion = $item['recursion'];
|
||||
$include_extended_events = $item['show_extended_events'];
|
||||
break;
|
||||
|
||||
case 'event_report_module':
|
||||
|
@ -471,6 +472,8 @@ switch ($action) {
|
|||
$event_graph_validated_vs_unvalidated = $style['event_graph_validated_vs_unvalidated'];
|
||||
|
||||
$filter_search = $style['event_filter_search'];
|
||||
|
||||
$include_extended_events = $item['show_extended_events'];
|
||||
break;
|
||||
|
||||
case 'general':
|
||||
|
@ -597,18 +600,22 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'netflow_area':
|
||||
case 'netflow_pie':
|
||||
case 'netflow_data':
|
||||
case 'netflow_statistics':
|
||||
case 'netflow_summary':
|
||||
$netflow_filter = $item['text'];
|
||||
// Filter
|
||||
// Filter.
|
||||
$period = $item['period'];
|
||||
$description = $item['description'];
|
||||
$resolution = $item['top_n'];
|
||||
// Interval resolution
|
||||
// Interval resolution.
|
||||
$max_values = $item['top_n_value'];
|
||||
// Max values
|
||||
// Max values.
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$period = $item['period'];
|
||||
$description = $item['description'];
|
||||
$top_n_value = $item['top_n_value'];
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -635,6 +642,7 @@ switch ($action) {
|
|||
case 'simple_baseline_graph':
|
||||
case 'event_report_log':
|
||||
case 'increment':
|
||||
case 'nt_top_n':
|
||||
$label = (isset($style['label'])) ? $style['label'] : '';
|
||||
break;
|
||||
|
||||
|
@ -837,7 +845,11 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_extended_select_for_time('resolution', $resolution, '', '', '0', 10);
|
||||
html_print_select(
|
||||
netflow_resolution_select_params(),
|
||||
'resolution',
|
||||
$resolution
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -1729,6 +1741,15 @@ $class = 'databox filters';
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_extended_events" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Include extended events'); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox('include_extended_events', true, $include_extended_events);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_event_graphs" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Event graphs'); ?></td>
|
||||
<td>
|
||||
|
@ -3101,6 +3122,7 @@ function chooseType() {
|
|||
$("#row_event_graph_by_user").hide();
|
||||
$("#row_event_graph_by_criticity").hide();
|
||||
$("#row_event_graph_by_validated").hide();
|
||||
$("#row_extended_events").hide();
|
||||
$("#row_netflow_filter").hide();
|
||||
$("#row_max_values").hide();
|
||||
$("#row_resolution").hide();
|
||||
|
@ -3144,6 +3166,7 @@ function chooseType() {
|
|||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
$("#row_event_graph_by_validated").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_filter_search").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
|
@ -3444,6 +3467,7 @@ function chooseType() {
|
|||
$("#row_event_graph_by_criticity").show();
|
||||
$("#row_event_graph_by_validated").show();
|
||||
$("#row_event_type").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_filter_search").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
|
@ -3459,7 +3483,8 @@ function chooseType() {
|
|||
$("#row_show_summary_group").show();
|
||||
$("#row_event_graphs").show();
|
||||
$("#row_event_type").show();
|
||||
|
||||
$("#row_extended_events").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
|
@ -3482,6 +3507,7 @@ function chooseType() {
|
|||
$("#row_show_summary_group").show();
|
||||
$("#row_event_graphs").show();
|
||||
$("#row_event_type").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
|
@ -3656,16 +3682,6 @@ function chooseType() {
|
|||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'netflow_pie':
|
||||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_max_values").show();
|
||||
$("#row_resolution").show();
|
||||
$("#row_servers").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'netflow_data':
|
||||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
|
@ -3677,15 +3693,6 @@ function chooseType() {
|
|||
break;
|
||||
|
||||
case 'netflow_summary':
|
||||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_resolution").show();
|
||||
$("#row_servers").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'netflow_statistics':
|
||||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
|
@ -3694,6 +3701,12 @@ function chooseType() {
|
|||
$("#row_servers").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_quantity").show();
|
||||
break;
|
||||
}
|
||||
switch (type) {
|
||||
case 'event_report_agent':
|
||||
|
|
|
@ -117,10 +117,10 @@ if ($schedule_report != '') {
|
|||
$date = date(DATE_FORMAT);
|
||||
$time = date(TIME_FORMAT);
|
||||
$parameters[0] = get_parameter('id_schedule_report');
|
||||
// $parameters[1] = db_get_value('schedule_email', 'treport', 'id_report', $id_report);
|
||||
$parameters[1] = get_parameter('schedule_email_address');
|
||||
$parameters[2] = get_parameter('schedule_subject', '');
|
||||
$parameters[3] = get_parameter('schedule_email', '');
|
||||
$parameters[4] = get_parameter('report_type', '');
|
||||
$parameters['first_execution'] = strtotime($date.' '.$time);
|
||||
|
||||
$values = [
|
||||
|
@ -141,7 +141,7 @@ if ($schedule_report != '') {
|
|||
echo '<br>';
|
||||
}
|
||||
|
||||
// Other Checks for the edit the reports
|
||||
// Other Checks for the edit the reports.
|
||||
if ($idReport != 0) {
|
||||
$report = db_get_row_filter('treport', ['id_report' => $idReport]);
|
||||
$type_access_selected = reports_get_type_access($report);
|
||||
|
@ -293,7 +293,7 @@ switch ($action) {
|
|||
|
||||
$temp = [];
|
||||
foreach ($items as $item) {
|
||||
// Remove the contents from the block to sort
|
||||
// Remove the contents from the block to sort.
|
||||
if (array_search($item['id_rc'], $ids) === false) {
|
||||
$temp[$item['order']] = $item['id_rc'];
|
||||
}
|
||||
|
@ -1209,9 +1209,7 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'netflow_area':
|
||||
case 'netflow_pie':
|
||||
case 'netflow_data':
|
||||
case 'netflow_statistics':
|
||||
case 'netflow_summary':
|
||||
$values['text'] = get_parameter('netflow_filter');
|
||||
$values['description'] = get_parameter('description');
|
||||
|
@ -1247,6 +1245,12 @@ switch ($action) {
|
|||
$good_format = true;
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg', 0);
|
||||
|
@ -1436,6 +1440,7 @@ switch ($action) {
|
|||
case 'MTBF':
|
||||
case 'MTTR':
|
||||
case 'simple_baseline_graph':
|
||||
case 'nt_top_n':
|
||||
if ($label != '') {
|
||||
$style['label'] = $label;
|
||||
} else {
|
||||
|
@ -1576,9 +1581,7 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'netflow_area':
|
||||
case 'netflow_pie':
|
||||
case 'netflow_data':
|
||||
case 'netflow_statistics':
|
||||
case 'netflow_summary':
|
||||
$values['text'] = get_parameter('netflow_filter');
|
||||
$values['description'] = get_parameter('description');
|
||||
|
@ -1614,6 +1617,12 @@ switch ($action) {
|
|||
$good_format = true;
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$values['period'] = get_parameter('period');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg', 0);
|
||||
|
@ -1809,6 +1818,7 @@ switch ($action) {
|
|||
case 'MTBF':
|
||||
case 'MTTR':
|
||||
case 'simple_baseline_graph':
|
||||
case 'nt_top_n':
|
||||
if ($label != '') {
|
||||
$style['label'] = $label;
|
||||
} else {
|
||||
|
|
|
@ -15,8 +15,6 @@ if (! check_acl($config['id_user'], 0, 'AW')) {
|
|||
|
||||
ui_require_css_file('discovery');
|
||||
|
||||
ui_print_page_header(__('Discover'), '', false, '', true);
|
||||
|
||||
|
||||
/**
|
||||
* Mask class names.
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
* Deprectated.
|
||||
*
|
||||
* @category Extensions
|
||||
* @category Deprectated
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @subpackage Recion task script
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
|
@ -26,481 +25,3 @@
|
|||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Recon Task Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once $config['homedir'].'/include/functions_network_profiles.php';
|
||||
|
||||
if (check_acl($config['id_user'], 0, 'AW')) {
|
||||
$options[]['text'] = "<a href='index.php?sec=estado&sec2=operation/servers/recon_view'>".html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>';
|
||||
}
|
||||
|
||||
$user_groups_w = users_get_groups(false, 'PM', true, false, null, 'id_grupo');
|
||||
$user_groups_w = array_keys($user_groups_w);
|
||||
|
||||
$user_groups_r = users_get_groups(false, 'AW', true, false, null, 'id_grupo');
|
||||
$user_groups_r = array_keys($user_groups_r);
|
||||
|
||||
// Headers.
|
||||
ui_print_page_header(
|
||||
__('Manage recontask'),
|
||||
'images/gm_servers.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
$options
|
||||
);
|
||||
|
||||
|
||||
// --------------------------------
|
||||
// DELETE A RECON TASKs.
|
||||
// --------------------------------
|
||||
if (isset($_GET['delete'])) {
|
||||
$id = get_parameter_get('delete');
|
||||
|
||||
$result = db_process_sql_delete('trecon_task', ['id_rt' => $id]);
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully deleted recon task'));
|
||||
} else {
|
||||
ui_print_error_message(__('Error deleting recon task'));
|
||||
}
|
||||
} else if (isset($_GET['disabled'])) {
|
||||
$id = get_parameter_get('id');
|
||||
$disabled = get_parameter_get('disabled');
|
||||
|
||||
$result = db_process_sql_update(
|
||||
'trecon_task',
|
||||
['disabled' => $disabled],
|
||||
['id_rt' => $id]
|
||||
);
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully updated recon task'));
|
||||
// If the action is enabled, we force recon_task to be queued asap.
|
||||
if ($disabled == 0) {
|
||||
servers_force_recon_task($id);
|
||||
}
|
||||
} else {
|
||||
ui_print_error_message(__('Error updating recon task'));
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// GET PARAMETERS IF UPDATE OR CREATE.
|
||||
// --------------------------------
|
||||
if ((isset($_GET['update'])) || ((isset($_GET['create'])))) {
|
||||
$name = get_parameter_post('name');
|
||||
$network = get_parameter_post('network');
|
||||
$description = get_parameter_post('description');
|
||||
$id_recon_server = get_parameter_post('id_recon_server');
|
||||
$interval = get_parameter_post('interval');
|
||||
$id_group = get_parameter_post('id_group');
|
||||
$create_incident = get_parameter_post('create_incident');
|
||||
$id_network_profile = get_parameter_post('id_network_profile');
|
||||
$recon_ports = get_parameter_post('recon_ports', '');
|
||||
$id_os = get_parameter_post('id_os', 10);
|
||||
$snmp_community = get_parameter_post('snmp_community', 'public');
|
||||
$id_recon_script = get_parameter('id_recon_script', 0);
|
||||
$mode = get_parameter('mode', '');
|
||||
$field1 = get_parameter('_field1_', '');
|
||||
$field2 = get_parameter('_field2_', '');
|
||||
$field3 = get_parameter('_field3_', '');
|
||||
$field4 = get_parameter('_field4_', '');
|
||||
$snmp_version = get_parameter_post('snmp_version');
|
||||
$snmp3_auth_user = get_parameter_post('snmp_auth_user');
|
||||
$snmp3_auth_pass = get_parameter_post('snmp_auth_pass');
|
||||
$snmp3_privacy_method = get_parameter_post('snmp_privacy_method');
|
||||
$snmp3_privacy_pass = get_parameter_post('snmp_privacy_pass');
|
||||
$snmp3_auth_method = get_parameter_post('snmp_auth_method');
|
||||
$snmp3_security_level = get_parameter_post('snmp_security_level');
|
||||
|
||||
|
||||
if ($mode == 'network_sweep') {
|
||||
$id_recon_script = 0;
|
||||
} else {
|
||||
$id_network_profile = 0;
|
||||
}
|
||||
|
||||
$os_detect = (int) get_parameter('os_detect', 0);
|
||||
$resolve_names = (int) get_parameter('resolve_names', 0);
|
||||
$parent_detection = (int) get_parameter('parent_detection', 0);
|
||||
$parent_recursion = (int) get_parameter('parent_recursion', 1);
|
||||
$alias_as_name = (int) get_parameter('alias_as_name', 0);
|
||||
$snmp_enabled = (int) get_parameter('snmp_enabled', 0);
|
||||
$vlan_enabled = (int) get_parameter('vlan_enabled', 0);
|
||||
// Get macros.
|
||||
$macros = (string) get_parameter('macros');
|
||||
|
||||
if (!empty($macros)) {
|
||||
$macros = json_decode(base64_decode($macros), true);
|
||||
|
||||
if (isset($macros) === true && is_array($macros) === true) {
|
||||
foreach ($macros as $k => $m) {
|
||||
$macros[$k]['value'] = get_parameter($m['macro'], '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$macros = io_json_mb_encode($macros);
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// UPDATE A RECON TASK.
|
||||
// --------------------------------
|
||||
if (isset($_GET['update'])) {
|
||||
$id = get_parameter_get('update');
|
||||
|
||||
$values = [
|
||||
'snmp_community' => $snmp_community,
|
||||
'id_os' => $id_os,
|
||||
'name' => $name,
|
||||
'subnet' => $network,
|
||||
'description' => $description,
|
||||
'id_recon_server' => $id_recon_server,
|
||||
'create_incident' => $create_incident,
|
||||
'id_group' => $id_group,
|
||||
'interval_sweep' => $interval,
|
||||
'id_network_profile' => $id_network_profile,
|
||||
'recon_ports' => $recon_ports,
|
||||
'id_recon_script' => $id_recon_script,
|
||||
'field1' => $field1,
|
||||
'field2' => $field2,
|
||||
'field3' => $field3,
|
||||
'field4' => $field4,
|
||||
'os_detect' => $os_detect,
|
||||
'resolve_names' => $resolve_names,
|
||||
'parent_detection' => $parent_detection,
|
||||
'parent_recursion' => $parent_recursion,
|
||||
'macros' => $macros,
|
||||
'alias_as_name' => $alias_as_name,
|
||||
'snmp_enabled' => $snmp_enabled,
|
||||
'vlan_enabled' => $vlan_enabled,
|
||||
'snmp_version' => $snmp_version,
|
||||
];
|
||||
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => $snmp3_auth_user,
|
||||
'snmp_auth_pass' => $snmp3_auth_pass,
|
||||
'snmp_privacy_method' => $snmp3_privacy_method,
|
||||
'snmp_privacy_pass' => $snmp3_privacy_pass,
|
||||
'snmp_auth_method' => $snmp3_auth_method,
|
||||
'snmp_security_level' => $snmp3_security_level,
|
||||
];
|
||||
if ($values['snmp_version'] == '1' || $values['snmp_version'] == '2' || $values['snmp_version'] == '2c') {
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => '',
|
||||
'snmp_auth_pass' => '',
|
||||
'snmp_privacy_method' => '',
|
||||
'snmp_privacy_pass' => '',
|
||||
'snmp_auth_method' => '',
|
||||
'snmp_security_level' => '',
|
||||
];
|
||||
}
|
||||
|
||||
$values = array_merge($values, $values_v3);
|
||||
|
||||
$where = ['id_rt' => $id];
|
||||
|
||||
$reason = '';
|
||||
if ($name != '') {
|
||||
if (empty($id_recon_script)) {
|
||||
if (!preg_match('/[0-9]+.+[0-9]+.+[0-9]+.+[0-9]+\/+[0-9]/', $network)) {
|
||||
$reason = __('Wrong format in Subnet field');
|
||||
$result = false;
|
||||
} else {
|
||||
$result = db_process_sql_update(
|
||||
'trecon_task',
|
||||
$values,
|
||||
$where
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$result = db_process_sql_update(
|
||||
'trecon_task',
|
||||
$values,
|
||||
$where
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully updated recon task'));
|
||||
} else {
|
||||
ui_print_error_message(__('Error updating recon task'));
|
||||
echo $reason;
|
||||
include 'manage_recontask_form.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// CREATE A RECON TASK
|
||||
// --------------------------------
|
||||
if (isset($_GET['create'])) {
|
||||
$values = [
|
||||
'name' => $name,
|
||||
'subnet' => $network,
|
||||
'description' => $description,
|
||||
'id_recon_server' => $id_recon_server,
|
||||
'create_incident' => $create_incident,
|
||||
'id_group' => $id_group,
|
||||
'id_network_profile' => $id_network_profile,
|
||||
'interval_sweep' => $interval,
|
||||
'id_os' => $id_os,
|
||||
'recon_ports' => $recon_ports,
|
||||
'snmp_community' => $snmp_community,
|
||||
'id_recon_script' => $id_recon_script,
|
||||
'field1' => $field1,
|
||||
'field2' => $field2,
|
||||
'field3' => $field3,
|
||||
'field4' => $field4,
|
||||
'os_detect' => $os_detect,
|
||||
'resolve_names' => $resolve_names,
|
||||
'parent_detection' => $parent_detection,
|
||||
'parent_recursion' => $parent_recursion,
|
||||
'macros' => $macros,
|
||||
'alias_as_name' => $alias_as_name,
|
||||
'snmp_enabled' => $snmp_enabled,
|
||||
'vlan_enabled' => $vlan_enabled,
|
||||
'snmp_version' => $snmp_version,
|
||||
];
|
||||
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => $snmp3_auth_user,
|
||||
'snmp_auth_pass' => $snmp3_auth_pass,
|
||||
'snmp_privacy_method' => $snmp3_privacy_method,
|
||||
'snmp_privacy_pass' => $snmp3_privacy_pass,
|
||||
'snmp_auth_method' => $snmp3_auth_method,
|
||||
'snmp_security_level' => $snmp3_security_level,
|
||||
];
|
||||
if ($values['snmp_version'] == '1' || $values['snmp_version'] == '2' || $values['snmp_version'] == '2c') {
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => '',
|
||||
'snmp_auth_pass' => '',
|
||||
'snmp_privacy_method' => '',
|
||||
'snmp_privacy_pass' => '',
|
||||
'snmp_auth_method' => '',
|
||||
'snmp_security_level' => '',
|
||||
];
|
||||
}
|
||||
|
||||
if ($values['snmp_version'] == '3') {
|
||||
$values['vlan_enabled'] = 0;
|
||||
}
|
||||
|
||||
$values = array_merge($values, $values_v3);
|
||||
|
||||
$name = io_safe_output($name);
|
||||
$name = trim($name, ' ');
|
||||
$name = io_safe_input($name);
|
||||
$reason = '';
|
||||
|
||||
if ($name != '') {
|
||||
$name_exists = (bool) db_get_value('name', 'trecon_task', 'name', $name);
|
||||
|
||||
if (empty($id_recon_script)) {
|
||||
if ($name_exists && (!preg_match('/[0-9]+.+[0-9]+.+[0-9]+.+[0-9]+\/+[0-9]/', $network))) {
|
||||
$reason = __('Recon-task name already exists and incorrect format in Subnet field');
|
||||
$result = false;
|
||||
} else if (!preg_match('/[0-9]+.+[0-9]+.+[0-9]+.+[0-9]+\/+[0-9]/', $network)) {
|
||||
$reason = __('Wrong format in Subnet field');
|
||||
$result = false;
|
||||
} else if ($name_exists) {
|
||||
$reason = __('Recon-task name already exists');
|
||||
$result = false;
|
||||
} else {
|
||||
$result = db_process_sql_insert('trecon_task', $values);
|
||||
}
|
||||
} else {
|
||||
if ($name_exists) {
|
||||
$reason = __('Recon-task name already exists');
|
||||
$result = false;
|
||||
} else {
|
||||
$result = db_process_sql_insert('trecon_task', $values);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$reason = 'The field "Task name" is empty';
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully created recon task'));
|
||||
} else {
|
||||
ui_print_error_message(__('Error creating recon task'));
|
||||
echo $reason;
|
||||
include 'manage_recontask_form.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// SHOW TABLE WITH ALL RECON TASKs.
|
||||
// --------------------------------
|
||||
// Pandora Admin must see all columns.
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
$sql = sprintf(
|
||||
'SELECT *
|
||||
FROM trecon_task RT, tusuario_perfil UP
|
||||
WHERE
|
||||
UP.id_usuario = "%s" AND UP.id_grupo = RT.id_group',
|
||||
$config['id_user']
|
||||
);
|
||||
|
||||
$result = db_get_all_rows_sql($sql);
|
||||
} else {
|
||||
$result = db_get_all_rows_in_table('trecon_task');
|
||||
}
|
||||
|
||||
$color = 1;
|
||||
if ($result !== false) {
|
||||
$table = new StdClass();
|
||||
$table->head = [
|
||||
__('Name'),
|
||||
__('Network'),
|
||||
__('Mode'),
|
||||
__('Group'),
|
||||
__('SNMP Version'),
|
||||
__('Incident'),
|
||||
__('OS'),
|
||||
__('Interval'),
|
||||
__('Ports'),
|
||||
__('Action'),
|
||||
];
|
||||
$table->align = [
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
];
|
||||
$table->width = '100%';
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->class = 'databox data';
|
||||
$table->data = [];
|
||||
|
||||
$table->style[8] = 'text-align: left;';
|
||||
$table->size[8] = '15%';
|
||||
|
||||
foreach ($result as $row) {
|
||||
if (in_array($row['id_group'], $user_groups_r)) {
|
||||
$data = [];
|
||||
$data[0] = $row['name'];
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[1] = $row['subnet'];
|
||||
} else {
|
||||
$data[1] = '-';
|
||||
}
|
||||
|
||||
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
// Network recon task.
|
||||
$data[2] = html_print_image('images/network.png', true, ['title' => __('Network recon task')]).' ';
|
||||
$data[2] .= network_profiles_get_name($row['id_network_profile']);
|
||||
$mode_name = '';
|
||||
} else {
|
||||
// APP recon task.
|
||||
$data[2] = html_print_image('images/plugin.png', true).' ';
|
||||
$mode_name = db_get_sql(sprintf('SELECT name FROM trecon_script WHERE id_recon_script = %d', $row['id_recon_script']));
|
||||
$data[2] .= $mode_name;
|
||||
}
|
||||
|
||||
|
||||
// GROUP.
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[3] = ui_print_group_icon($row['id_group'], true);
|
||||
} else {
|
||||
$data[3] = '-';
|
||||
}
|
||||
|
||||
// SNMP VERSION.
|
||||
if ($row['snmp_version'] == '1') {
|
||||
$data[4] = 'v. 1';
|
||||
} else if ($row['snmp_version'] == '2') {
|
||||
$data[4] = 'v. 2';
|
||||
} else if ($row['snmp_version'] == '2c') {
|
||||
$data[4] = 'v. 2c';
|
||||
} else if ($row['snmp_version'] == '3') {
|
||||
$data[4] = 'v. 3';
|
||||
}
|
||||
|
||||
|
||||
|
||||
// INCIDENT.
|
||||
$data[5] = (($row['create_incident'] == 1) ? __('Yes') : __('No'));
|
||||
|
||||
// OS.
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[6] = (($row['id_os'] > 0) ? ui_print_os_icon($row['id_os'], false, true) : __('Any'));
|
||||
} else {
|
||||
$data[6] = '-';
|
||||
}
|
||||
|
||||
// INTERVAL.
|
||||
if ($row['interval_sweep'] == 0) {
|
||||
$data[7] = __('Manual');
|
||||
} else {
|
||||
$data[7] = human_time_description_raw($row['interval_sweep']);
|
||||
}
|
||||
|
||||
// PORTS.
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[8] = substr($row['recon_ports'], 0, 15);
|
||||
} else {
|
||||
$data[8] = '-';
|
||||
}
|
||||
|
||||
// ACTION.
|
||||
$task_group = $row['id_group'];
|
||||
|
||||
if (in_array($task_group, $user_groups_w)) {
|
||||
$data[9] = '<a href="index.php?sec=estado&sec2=operation/servers/recon_view">'.html_print_image('images/eye.png', true).'</a>';
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&delete='.$row['id_rt'].'">'.html_print_image('images/cross.png', true, ['border' => '0']).'</a>';
|
||||
if ($mode_name != 'IPAM Recon') {
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask_form&update='.$row['id_rt'].'">'.html_print_image('images/config.png', true).'</a>';
|
||||
} else {
|
||||
$sql_ipam = 'select id from tipam_network where id_recon_task ='.$row['id_rt'];
|
||||
$id_recon_ipam = db_get_sql($sql_ipam);
|
||||
$data[9] .= '<a href="index.php?sec=godmode/extensions&sec2=enterprise/extensions/ipam&action=edit&id='.$id_recon_ipam.'">'.html_print_image('images/config.png', true).'</a>';
|
||||
}
|
||||
|
||||
if ($row['disabled'] == 0) {
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&id='.$row['id_rt'].'&disabled=1">'.html_print_image('images/lightbulb.png', true).'</a>';
|
||||
} else {
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&id='.$row['id_rt'].'&disabled=0">'.html_print_image('images/lightbulb_off.png', true).'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
$table->data[] = $data;
|
||||
}
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
unset($table);
|
||||
} else {
|
||||
echo '<div class="nf">'.__('There are no recon task configured').'</div>';
|
||||
}
|
||||
|
||||
echo '<div class="action-buttons" style="width: 99%;">';
|
||||
echo '<form method="post" action="index.php?sec=gservers&sec2=godmode/servers/manage_recontask_form&create">';
|
||||
echo html_print_submit_button(__('Create'), 'crt', false, 'class="sub next"', true);
|
||||
echo '</form>';
|
||||
echo '</div>';
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
* Deprectated.
|
||||
*
|
||||
* @category Extensions
|
||||
* @category deprecated
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @subpackage recon task
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
|
@ -26,910 +25,3 @@
|
|||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Agent Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
|
||||
$user_groups = users_get_groups(false, 'AW', true, false, null, 'id_grupo');
|
||||
$user_groups = array_keys($user_groups);
|
||||
|
||||
if (is_ajax()) {
|
||||
$get_explanation = (bool) get_parameter('get_explanation', 0);
|
||||
|
||||
if ($get_explanation) {
|
||||
$id = (int) get_parameter('id', 0);
|
||||
|
||||
$explanation = db_get_value(
|
||||
'description',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id
|
||||
);
|
||||
|
||||
echo io_safe_output($explanation);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$get_recon_script_macros = get_parameter('get_recon_script_macros');
|
||||
if ($get_recon_script_macros) {
|
||||
$id_recon_script = (int) get_parameter('id');
|
||||
$id_recon_task = (int) get_parameter('id_rt');
|
||||
|
||||
if (!empty($id_recon_task) && empty($id_recon_script)) {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_task',
|
||||
'id_rt',
|
||||
$id_recon_task
|
||||
);
|
||||
} else if (!empty($id_recon_task)) {
|
||||
$recon_task_id_rs = (int) db_get_value(
|
||||
'id_recon_script',
|
||||
'trecon_task',
|
||||
'id_rt',
|
||||
$id_recon_task
|
||||
);
|
||||
|
||||
if ($id_recon_script == $recon_task_id_rs) {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_task',
|
||||
'id_rt',
|
||||
$id_recon_task
|
||||
);
|
||||
} else {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
}
|
||||
} else if (!empty($id_recon_script)) {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
} else {
|
||||
$recon_script_macros = [];
|
||||
}
|
||||
|
||||
$macros = [];
|
||||
$macros['base64'] = base64_encode($recon_script_macros);
|
||||
$macros['array'] = json_decode($recon_script_macros, true);
|
||||
|
||||
echo io_json_mb_encode($macros);
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Edit mode.
|
||||
if (isset($_GET['update']) || (isset($_GET['upd']))) {
|
||||
$update_recon = true;
|
||||
if (isset($_GET['upd'])) {
|
||||
if ($_GET['upd'] != 'update') {
|
||||
$update_recon = false;
|
||||
} else {
|
||||
$id_rt = get_parameter('upd');
|
||||
}
|
||||
}
|
||||
|
||||
if ($update_recon) {
|
||||
if (!isset($id_rt)) {
|
||||
$id_rt = (int) get_parameter_get('update');
|
||||
}
|
||||
|
||||
$row = db_get_row('trecon_task', 'id_rt', $id_rt);
|
||||
$name = $row['name'];
|
||||
$network = $row['subnet'];
|
||||
$id_recon_server = $row['id_recon_server'];
|
||||
$description = $row['description'];
|
||||
$interval = $row['interval_sweep'];
|
||||
$id_group = $row['id_group'];
|
||||
$create_incident = $row['create_incident'];
|
||||
$id_network_profile = $row['id_network_profile'];
|
||||
$id_os = $row['id_os'];
|
||||
$recon_ports = $row['recon_ports'];
|
||||
$snmp_community = $row['snmp_community'];
|
||||
$snmp_version = $row['snmp_version'];
|
||||
$snmp3_auth_user = $row['snmp_auth_user'];
|
||||
$snmp3_auth_pass = $row['snmp_auth_pass'];
|
||||
$snmp3_privacy_method = $row['snmp_privacy_method'];
|
||||
$snmp3_privacy_pass = $row['snmp_privacy_pass'];
|
||||
$snmp3_auth_method = $row['snmp_auth_method'];
|
||||
$snmp3_security_level = $row['snmp_security_level'];
|
||||
$id_recon_script = $row['id_recon_script'];
|
||||
$field1 = $row['field1'];
|
||||
$field2 = $row['field2'];
|
||||
$field3 = $row['field3'];
|
||||
$field4 = $row['field4'];
|
||||
if ($id_recon_script == 0) {
|
||||
$mode = 'network_sweep';
|
||||
} else {
|
||||
$mode = 'recon_script';
|
||||
}
|
||||
|
||||
$os_detect = $row['os_detect'];
|
||||
$resolve_names = $row['resolve_names'];
|
||||
$os_detect = $row['os_detect'];
|
||||
$parent_detection = $row['parent_detection'];
|
||||
$parent_recursion = $row['parent_recursion'];
|
||||
$macros = $row['macros'];
|
||||
$alias_as_name = $row['alias_as_name'];
|
||||
$snmp_enabled = $row['snmp_enabled'];
|
||||
$vlan_enabled = $row['vlan_enabled'];
|
||||
|
||||
$name_script = db_get_value(
|
||||
'name',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
|
||||
if (! in_array($id_group, $user_groups)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Recon Task Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (isset($_GET['create']) || isset($_GET['crt'])) {
|
||||
$create_recon = true;
|
||||
if (isset($_GET['crt'])) {
|
||||
if ($_GET['crt'] != 'Create') {
|
||||
$create_recon = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($create_recon) {
|
||||
$id_rt = -1;
|
||||
$name = get_parameter('name');
|
||||
$network = get_parameter('network');
|
||||
$description = get_parameter('description');
|
||||
$id_recon_server = 0;
|
||||
$interval = 0;
|
||||
$id_group = 0;
|
||||
$create_incident = 1;
|
||||
$snmp_community = 'public';
|
||||
$snmp3_auth_user = '';
|
||||
$snmp3_auth_pass = '';
|
||||
$snmp_version = 1;
|
||||
$snmp3_privacy_method = '';
|
||||
$snmp3_privacy_pass = '';
|
||||
$snmp3_auth_method = '';
|
||||
$snmp3_security_level = '';
|
||||
$id_network_profile = 0;
|
||||
$id_os = -1;
|
||||
$recon_ports = '';
|
||||
$field1 = '';
|
||||
$field2 = '';
|
||||
$field3 = '';
|
||||
$field4 = '';
|
||||
$id_recon_script = 0;
|
||||
$mode = 'network_sweep';
|
||||
$os_detect = 0;
|
||||
$resolve_names = 0;
|
||||
$parent_detection = 1;
|
||||
$parent_recursion = 5;
|
||||
$macros = '';
|
||||
$alias_as_name = 0;
|
||||
$snmp_enabled = 0;
|
||||
$vlan_enabled = 0;
|
||||
}
|
||||
|
||||
$modify = false;
|
||||
if (($name != '') || ($network != '')) {
|
||||
$modify = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$modify) {
|
||||
// Headers.
|
||||
ui_print_page_header(__('Manage recontask'), '', false, 'recontask', true);
|
||||
}
|
||||
|
||||
$is_windows = strtoupper(substr(PHP_OS, 0, 3)) == 'WIN';
|
||||
if ($is_windows) {
|
||||
echo '<div class="notify">';
|
||||
echo __('Warning').': '.__('By default, in Windows, %s only support Standard network sweep, not custom scripts', get_product_name());
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->id = 'table_recon';
|
||||
$table->width = '100%';
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 4;
|
||||
$table->class = 'databox filters';
|
||||
|
||||
$table->rowclass[3] = 'network_sweep';
|
||||
$table->rowclass[5] = 'network_sweep';
|
||||
$table->rowclass[7] = 'network_sweep';
|
||||
$table->rowclass[8] = 'network_sweep';
|
||||
$table->rowclass[11] = 'network_sweep';
|
||||
$table->rowclass[12] = 'network_sweep';
|
||||
$table->rowclass[18] = 'network_sweep';
|
||||
$table->rowclass[19] = 'network_sweep';
|
||||
$table->rowclass[20] = 'network_sweep';
|
||||
$table->rowclass[21] = 'network_sweep';
|
||||
$table->rowclass[22] = 'network_sweep';
|
||||
$table->rowclass[23] = 'network_sweep';
|
||||
$table->rowclass[24] = 'network_sweep';
|
||||
$table->rowclass[25] = 'network_sweep recon_v3';
|
||||
$table->rowclass[26] = 'network_sweep recon_v3';
|
||||
$table->rowclass[27] = 'network_sweep recon_v3';
|
||||
$table->rowclass[28] = 'network_sweep recon_v3';
|
||||
$table->rowclass[29] = 'network_sweep recon_v3';
|
||||
$table->rowclass[30] = 'network_sweep recon_v3';
|
||||
|
||||
$table->rowclass[6] = 'recon_script';
|
||||
$table->rowclass[13] = 'recon_script';
|
||||
$table->rowclass[14] = 'recon_script';
|
||||
$table->rowclass[15] = 'recon_script';
|
||||
$table->rowclass[16] = 'recon_script';
|
||||
$table->rowclass[17] = 'recon_script';
|
||||
// Name.
|
||||
$table->data[0][0] = '<b>'.__('Task name').'</b>';
|
||||
$table->data[0][1] = html_print_input_text('name', $name, '', 25, 0, true);
|
||||
|
||||
// Discovery server.
|
||||
$table->data[1][0] = '<b>'.__('Discovery server').ui_print_help_tip(
|
||||
__('You must select a Discovery Server to run the Task, otherwise the Recon Task will never run'),
|
||||
true
|
||||
);
|
||||
|
||||
$sql = 'SELECT id_server, name
|
||||
FROM tserver
|
||||
WHERE server_type = 3
|
||||
ORDER BY name';
|
||||
$table->data[1][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_recon_server',
|
||||
$id_recon_server,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
$fields['network_sweep'] = __('Network sweep');
|
||||
if (!$is_windows) {
|
||||
$fields['recon_script'] = __('Custom script');
|
||||
}
|
||||
|
||||
|
||||
$table->data[2][0] = '<b>'.__('Mode').'</b>';
|
||||
$table->data[2][1] = html_print_select(
|
||||
$fields,
|
||||
'mode',
|
||||
$mode,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
// Network.
|
||||
$table->data[3][0] = '<b>'.__('Network').'</b>';
|
||||
$table->data[3][0] .= ui_print_help_tip(
|
||||
__('You can specify several networks, separated by commas, for example: 192.168.50.0/24,192.168.60.0/24'),
|
||||
true
|
||||
);
|
||||
$table->data[3][1] = html_print_input_text(
|
||||
'network',
|
||||
$network,
|
||||
'',
|
||||
25,
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// Interval.
|
||||
$interv_manual = 0;
|
||||
if ((int) $interval == 0) {
|
||||
$interv_manual = 1;
|
||||
}
|
||||
|
||||
$table->data[4][0] = '<b>'.__('Interval');
|
||||
$table->data[4][0] .= ui_print_help_tip(
|
||||
__('Manual interval means that it will be executed only On-demand'),
|
||||
true
|
||||
);
|
||||
|
||||
$values = [
|
||||
0 => __('Defined'),
|
||||
1 => __('Manual'),
|
||||
];
|
||||
$table->data[4][1] = html_print_select(
|
||||
$values,
|
||||
'interval_manual_defined',
|
||||
$interv_manual,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[4][1] .= '<span id="interval_manual_container">';
|
||||
$table->data[4][1] .= html_print_extended_select_for_time(
|
||||
'interval',
|
||||
$interval,
|
||||
'',
|
||||
'',
|
||||
'0',
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$table->data[4][1] .= ui_print_help_tip(
|
||||
__('The minimum recomended interval for Recon Task is 5 minutes'),
|
||||
true
|
||||
);
|
||||
$table->data[4][1] .= '</span>';
|
||||
|
||||
|
||||
// Module template.
|
||||
$table->data[5][0] = '<b>'.__('Module template').'</b>';
|
||||
|
||||
$sql = 'SELECT id_np, name
|
||||
FROM tnetwork_profile
|
||||
ORDER BY name';
|
||||
$table->data[5][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_network_profile',
|
||||
$id_network_profile,
|
||||
'',
|
||||
__('None'),
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// Recon script.
|
||||
$data[1] = '';
|
||||
$table->data[6][0] = '<b>'.__('Recon script').'</b>';
|
||||
|
||||
|
||||
$sql = "SELECT id_recon_script, name
|
||||
FROM trecon_script
|
||||
WHERE name <> 'IPAM Recon'
|
||||
ORDER BY name";
|
||||
if ($name_script != 'IPAM Recon') {
|
||||
$table->data[6][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_recon_script',
|
||||
$id_recon_script,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
$table->data[6][1] .= "<span id='spinner_recon_script' style='display: none;'>".html_print_image('images/spinner.gif', true).'</span>';
|
||||
$table->data[6][1] .= $data[1] .= html_print_input_hidden(
|
||||
'macros',
|
||||
base64_encode($macros),
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$table->data[6][1] = 'IPAM Recon';
|
||||
}
|
||||
|
||||
// OS.
|
||||
$table->data[7][0] = '<b>'.__('OS').'</b>';
|
||||
|
||||
$sql = 'SELECT id_os, name
|
||||
FROM tconfig_os
|
||||
ORDER BY name';
|
||||
$table->data[7][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_os',
|
||||
$id_os,
|
||||
'',
|
||||
__('Any'),
|
||||
-1,
|
||||
true
|
||||
);
|
||||
|
||||
// Recon ports.
|
||||
$table->data[8][0] = '<b>'.__('Ports').'</b>';
|
||||
$table->data[8][1] = html_print_input_text(
|
||||
'recon_ports',
|
||||
$recon_ports,
|
||||
'',
|
||||
25,
|
||||
0,
|
||||
true
|
||||
);
|
||||
$table->data[8][1] .= ui_print_help_tip(
|
||||
__('Ports defined like: 80 or 80,443,512 or even 0-1024 (Like Nmap command line format). If dont want to do a sweep using portscan, left it in blank'),
|
||||
true
|
||||
);
|
||||
|
||||
// Group.
|
||||
$table->data[9][0] = '<b>'.__('Group');
|
||||
$groups = users_get_groups(false, 'PM', false);
|
||||
$table->data[9][1] = html_print_select_groups(
|
||||
false,
|
||||
'PM',
|
||||
false,
|
||||
'id_group',
|
||||
$id_group,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// Incident.
|
||||
$values = [
|
||||
0 => __('No'),
|
||||
1 => __('Yes'),
|
||||
];
|
||||
$table->data[10][0] = '<b>'.__('Incident');
|
||||
$table->data[10][1] = html_print_select(
|
||||
$values,
|
||||
'create_incident',
|
||||
$create_incident,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
).' '.ui_print_help_tip(
|
||||
__('Choose if the discovery of a new system creates an incident or not.'),
|
||||
true
|
||||
);
|
||||
|
||||
// Snmp_enabled.
|
||||
$table->data[11][0] = '<b>'.__('SNMP enabled');
|
||||
$table->data[11][1] = html_print_checkbox(
|
||||
'snmp_enabled',
|
||||
1,
|
||||
$snmp_enabled,
|
||||
true
|
||||
);
|
||||
|
||||
// SNMP default community.
|
||||
$table->data[12][0] = '<b>'.__('SNMP Default community');
|
||||
$table->data[12][0] .= ui_print_help_tip(
|
||||
__('You can specify several values, separated by commas, for example: public,mysecret,1234'),
|
||||
true
|
||||
);
|
||||
$table->data[12][1] = html_print_input_text(
|
||||
'snmp_community',
|
||||
$snmp_community,
|
||||
'',
|
||||
35,
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// SNMP version.
|
||||
$snmp_versions['1'] = 'v. 1';
|
||||
$snmp_versions['2'] = 'v. 2';
|
||||
$snmp_versions['2c'] = 'v. 2c';
|
||||
$snmp_versions['3'] = 'v. 3';
|
||||
$table->data[24][0] = '<b>'._('SNMP version');
|
||||
$table->data[24][1] = html_print_select(
|
||||
$snmp_versions,
|
||||
'snmp_version',
|
||||
$snmp_version,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[25][0] = '<b>'.__('Auth user');
|
||||
$table->data[25][1] = html_print_input_text(
|
||||
'snmp_auth_user',
|
||||
$snmp3_auth_user,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
$table->data[26][0] = '<b>'.__('Auth password').ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$table->data[26][1] = html_print_input_password(
|
||||
'snmp_auth_pass',
|
||||
$snmp3_auth_pass,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
''
|
||||
);
|
||||
$table->data[26][1] .= html_print_input_hidden_extended(
|
||||
'active_snmp_v3',
|
||||
0,
|
||||
'active_snmp_v3_mmen',
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[27][0] = '<b>'.__('Privacy method');
|
||||
$table->data[27][1] = html_print_select(
|
||||
[
|
||||
'DES' => __('DES'),
|
||||
'AES' => __('AES'),
|
||||
],
|
||||
'snmp_privacy_method',
|
||||
$snmp3_privacy_method,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
$table->data[28][0] = '<b>'.__('Privacy pass').ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$table->data[28][1] = html_print_input_password(
|
||||
'snmp_privacy_pass',
|
||||
$snmp3_privacy_pass,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
''
|
||||
);
|
||||
$table->data[29][0] = '<b>'.__('Auth method');
|
||||
$table->data[29][1] = html_print_select(
|
||||
[
|
||||
'MD5' => __('MD5'),
|
||||
'SHA' => __('SHA'),
|
||||
],
|
||||
'snmp_auth_method',
|
||||
$snmp3_auth_method,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
$table->data[30][0] = '<b>'.__('Security level');
|
||||
$table->data[30][1] = html_print_select(
|
||||
[
|
||||
'noAuthNoPriv' => __('Not auth and not privacy method'),
|
||||
'authNoPriv' => __('Auth and not privacy method'),
|
||||
'authPriv' => __('Auth and privacy method'),
|
||||
],
|
||||
'snmp_security_level',
|
||||
$snmp3_security_level,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
|
||||
// Explanation.
|
||||
$explanation = db_get_value(
|
||||
'description',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
|
||||
$table->data[13][0] = '<b>'.__('Explanation').'</b>';
|
||||
$table->data[13][1] = "<span id='spinner_layout' style='display: none;'>".html_print_image('images/spinner.gif', true).'</span>'.html_print_textarea('explanation', 4, 60, $explanation, 'style="width: 388px;"', true);
|
||||
|
||||
// A hidden "model row" to clone it from javascript to add fields dynamicaly.
|
||||
$data = [];
|
||||
$data[0] = 'macro_desc';
|
||||
$data[0] .= ui_print_help_tip('macro_help', true);
|
||||
$data[1] = html_print_input_text(
|
||||
'macro_name',
|
||||
'macro_value',
|
||||
'',
|
||||
100,
|
||||
255,
|
||||
true
|
||||
);
|
||||
$table->colspan['macro_field'][1] = 3;
|
||||
$table->rowstyle['macro_field'] = 'display:none';
|
||||
$table->data['macro_field'] = $data;
|
||||
|
||||
// If there are $macros, we create the form fields.
|
||||
if (!empty($macros)) {
|
||||
$macros = json_decode($macros, true);
|
||||
|
||||
if (isset($macros) === true
|
||||
&& is_array($macros) === true
|
||||
) {
|
||||
foreach ($macros as $k => $m) {
|
||||
$data = [];
|
||||
$data[0] = '<b>'.$m['desc'].'</b>';
|
||||
if (!empty($m['help'])) {
|
||||
$data[0] .= ui_print_help_tip($m['help'], true);
|
||||
}
|
||||
|
||||
if ($m['hide']) {
|
||||
$data[1] = html_print_input_password(
|
||||
$m['macro'],
|
||||
$m['value'],
|
||||
'',
|
||||
100,
|
||||
255,
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$data[1] = html_print_input_text(
|
||||
$m['macro'],
|
||||
$m['value'],
|
||||
'',
|
||||
100,
|
||||
255,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table->colspan['macro'.$m['macro']][1] = 3;
|
||||
$table->rowclass['macro'.$m['macro']] = 'macro_field';
|
||||
|
||||
$table->data['macro'.$m['macro']] = $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Comments.
|
||||
$table->data[18][0] = '<b>'.__('Comments');
|
||||
$table->data[18][1] = html_print_input_text(
|
||||
'description',
|
||||
$description,
|
||||
'',
|
||||
45,
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// OS detection.
|
||||
$table->data[19][0] = '<b>'.__('OS detection');
|
||||
$table->data[19][1] = html_print_checkbox(
|
||||
'os_detect',
|
||||
1,
|
||||
$os_detect,
|
||||
true
|
||||
);
|
||||
|
||||
// Name resolution.
|
||||
$table->data[20][0] = '<b>'.__('Name resolution');
|
||||
$table->data[20][1] = html_print_checkbox(
|
||||
'resolve_names',
|
||||
1,
|
||||
$resolve_names,
|
||||
true
|
||||
);
|
||||
|
||||
// Parent detection.
|
||||
$table->data[21][0] = '<b>'.__('Parent detection');
|
||||
$table->data[21][1] = html_print_checkbox(
|
||||
'parent_detection',
|
||||
1,
|
||||
$parent_detection,
|
||||
true
|
||||
);
|
||||
|
||||
// Parent recursion.
|
||||
$table->data[22][0] = '<b>'.__('Parent recursion');
|
||||
$table->data[22][1] = html_print_input_text(
|
||||
'parent_recursion',
|
||||
$parent_recursion,
|
||||
'',
|
||||
5,
|
||||
0,
|
||||
true
|
||||
).ui_print_help_tip(
|
||||
__('Maximum number of parent hosts that will be created if parent detection is enabled.'),
|
||||
true
|
||||
);
|
||||
|
||||
// Vlan_enabled.
|
||||
$table->data[23][0] = '<b>'.__('Vlan enabled');
|
||||
$table->data[23][1] = html_print_checkbox(
|
||||
'vlan_enabled',
|
||||
1,
|
||||
$vlan_enabled,
|
||||
true
|
||||
);
|
||||
|
||||
// NOTE: The 7.0NG Recon Server will not generate random names, since IP
|
||||
// address collisions could have other consequences.
|
||||
// Different Form url if it's a create or if it's a update form.
|
||||
echo '<form name="modulo" method="post" action="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&'.(($id_rt != -1) ? 'update='.$id_rt : 'create=1').'">';
|
||||
html_print_table($table);
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
if ($id_rt != -1) {
|
||||
if ($name_script != 'IPAM Recon') {
|
||||
html_print_submit_button(__('Update'), 'crt', false, 'class="sub upd"');
|
||||
}
|
||||
} else {
|
||||
html_print_submit_button(__('Add'), 'crt', false, 'class="sub wand"');
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
||||
echo '</form>';
|
||||
|
||||
ui_require_javascript_file('pandora_modules');
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
/* <![CDATA[ */
|
||||
$(document).ready (function () {
|
||||
|
||||
});
|
||||
|
||||
var xhrManager = function () {
|
||||
var manager = {};
|
||||
|
||||
manager.tasks = [];
|
||||
|
||||
manager.addTask = function (xhr) {
|
||||
manager.tasks.push(xhr);
|
||||
}
|
||||
|
||||
manager.stopTasks = function () {
|
||||
while (manager.tasks.length > 0)
|
||||
manager.tasks.pop().abort();
|
||||
}
|
||||
|
||||
return manager;
|
||||
};
|
||||
|
||||
var taskManager = new xhrManager();
|
||||
|
||||
$('select#interval_manual_defined').change(function() {
|
||||
if ($("#interval_manual_defined").val() == 1) {
|
||||
$('#interval_manual_container').hide();
|
||||
$('#text-interval_text').val(0);
|
||||
$('#hidden-interval').val(0);
|
||||
}
|
||||
else {
|
||||
$('#interval_manual_container').show();
|
||||
$('#text-interval_text').val(10);
|
||||
$('#hidden-interval').val(600);
|
||||
$('#interval_units').val(60);
|
||||
}
|
||||
}).change();
|
||||
|
||||
$('select#id_recon_script').change(function() {
|
||||
if ($('select#mode').val() == 'recon_script')
|
||||
get_explanation_recon_script($(this).val());
|
||||
});
|
||||
|
||||
$('select#snmp_version').change(function () {
|
||||
if (this.value == "3") {
|
||||
$(".recon_v3").show();
|
||||
$("input[name=active_snmp_v3]").val(1);
|
||||
$("input[name=snmp_community]").attr("disabled", true);
|
||||
$("input[name=vlan_enabled]").removeAttr("checked");
|
||||
$("input[name=vlan_enabled]").attr("disabled", true);
|
||||
}
|
||||
else {
|
||||
$(".recon_v3").hide();
|
||||
$("input[name=active_snmp_v3]").val(0);
|
||||
$("input[name=snmp_community]").removeAttr('disabled');
|
||||
$("input[name=vlan_enabled]").removeAttr('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
$('select#mode').change(function() {
|
||||
var type = $(this).val();
|
||||
if (type == 'recon_script') {
|
||||
$(".recon_script").show();
|
||||
$(".network_sweep").hide();
|
||||
|
||||
get_explanation_recon_script($("#id_recon_script").val());
|
||||
}
|
||||
else if (type == 'network_sweep') {
|
||||
$(".recon_script").hide();
|
||||
$(".network_sweep").show();
|
||||
$('.macro_field').remove();
|
||||
$('select#snmp_version').trigger('change');
|
||||
}
|
||||
}).change();
|
||||
|
||||
function get_explanation_recon_script (id) {
|
||||
// Stop old ajax tasks.
|
||||
taskManager.stopTasks();
|
||||
|
||||
// Show the spinners.
|
||||
$("#textarea_explanation").hide();
|
||||
$("#spinner_layout").show();
|
||||
|
||||
var xhr = jQuery.ajax ({
|
||||
data: {
|
||||
'page': 'godmode/servers/manage_recontask_form',
|
||||
'get_explanation': 1,
|
||||
'id': id,
|
||||
'id_rt': <?php echo json_encode((int) $id_rt); ?>
|
||||
},
|
||||
url: "<?php echo $config['homeurl']; ?>ajax.php",
|
||||
type: 'POST',
|
||||
dataType: 'text',
|
||||
complete: function (xhr, textStatus) {
|
||||
$("#spinner_layout").hide();
|
||||
},
|
||||
success: function (data, textStatus, xhr) {
|
||||
$("#textarea_explanation").val(data);
|
||||
$("#textarea_explanation").show();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.log(errorThrown);
|
||||
}
|
||||
});
|
||||
taskManager.addTask(xhr);
|
||||
|
||||
// Delete all the macro fields.
|
||||
$('.macro_field').remove();
|
||||
$("#spinner_recon_script").show();
|
||||
|
||||
var xhr = jQuery.ajax ({
|
||||
data: {
|
||||
'page': 'godmode/servers/manage_recontask_form',
|
||||
'get_recon_script_macros': 1,
|
||||
'id': id,
|
||||
'id_rt': <?php echo json_encode((int) $id_rt); ?>
|
||||
},
|
||||
url: "<?php echo $config['homeurl']; ?>ajax.php",
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
complete: function (xhr, textStatus) {
|
||||
$("#spinner_recon_script").hide();
|
||||
forced_title_callback();
|
||||
},
|
||||
success: function (data, textStatus, xhr) {
|
||||
if (data.array !== null) {
|
||||
$('#hidden-macros').val(data.base64);
|
||||
|
||||
jQuery.each (data.array, function (i, macro) {
|
||||
if (macro.desc != '') {
|
||||
add_macro_field(macro, 'table_recon-macro');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.log(errorThrown);
|
||||
}
|
||||
});
|
||||
taskManager.addTask(xhr);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
@ -1,401 +1,27 @@
|
|||
<?php
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
if (is_ajax()) {
|
||||
$get_reconscript_description = get_parameter('get_reconscript_description');
|
||||
$id_reconscript = get_parameter('id_reconscript');
|
||||
|
||||
$description = db_get_value_filter(
|
||||
'description',
|
||||
'trecon_script',
|
||||
['id_recon_script' => $id_reconscript]
|
||||
);
|
||||
|
||||
echo htmlentities(io_safe_output($description), ENT_QUOTES, 'UTF-8', true);
|
||||
return;
|
||||
}
|
||||
|
||||
// Load global vars
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access recon script Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disabled at the moment.
|
||||
if (!check_referer()) {
|
||||
require ("general/noaccess.php");
|
||||
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Deprectated.
|
||||
*
|
||||
* @category Deprectated
|
||||
* @package Pandora FMS
|
||||
* @subpackage recon script
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
$view = get_parameter('view', '');
|
||||
$create = get_parameter('create', '');
|
||||
|
||||
if ($view != '') {
|
||||
$form_id = $view;
|
||||
$reconscript = db_get_row('trecon_script', 'id_recon_script', $form_id);
|
||||
$form_name = $reconscript['name'];
|
||||
$form_description = $reconscript['description'];
|
||||
$form_script = $reconscript['script'];
|
||||
$macros = $reconscript['macros'];
|
||||
}
|
||||
|
||||
if ($create != '') {
|
||||
$form_name = '';
|
||||
$form_description = '';
|
||||
$form_script = '';
|
||||
$macros = '';
|
||||
}
|
||||
|
||||
// SHOW THE FORM
|
||||
// =================================================================
|
||||
if (($create != '') or ($view != '')) {
|
||||
if ($create != '') {
|
||||
ui_print_page_header(__('Recon script creation'), 'images/gm_servers.png', false, 'reconscript_definition', true);
|
||||
} else {
|
||||
ui_print_page_header(__('Recon script update'), 'images/gm_servers.png', false, 'reconscript_definition', true);
|
||||
$id_recon_script = get_parameter('view', '');
|
||||
}
|
||||
|
||||
|
||||
if ($create == '') {
|
||||
echo "<form name=reconscript method='post' action='index.php?sec=gservers&sec2=godmode/servers/recon_script&update_reconscript=$id_recon_script'>";
|
||||
} else {
|
||||
echo "<form name=reconscript method='post' action='index.php?sec=gservers&sec2=godmode/servers/recon_script&create_reconscript=1'>";
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->id = 'table-form';
|
||||
$table->class = 'databox filters';
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->style[2] = 'font-weight: bold';
|
||||
$table->data = [];
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Name');
|
||||
$data[1] = '<input type="text" name="form_name" size=30 value="'.$form_name.'">';
|
||||
$table->data['recon_name'] = $data;
|
||||
$table->colspan['recon_name'][1] = 3;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Script fullpath');
|
||||
$data[1] = '<input type="text" name="form_script" size=70 value="'.$form_script.'">';
|
||||
$table->data['recon_fullpath'] = $data;
|
||||
$table->colspan['recon_fullpath'][1] = 3;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Description');
|
||||
$data[1] = '<textarea name="form_description" cols="50" rows="4">';
|
||||
$data[1] .= $form_description;
|
||||
$data[1] .= '</textarea>';
|
||||
$table->data['recon_description'] = $data;
|
||||
$table->colspan['recon_description'][1] = 3;
|
||||
|
||||
$macros = json_decode($macros, true);
|
||||
|
||||
// This code is ready to add locked feature as plugins
|
||||
$locked = false;
|
||||
|
||||
// The next row number is recon_3
|
||||
$next_name_number = 3;
|
||||
$i = 1;
|
||||
while (1) {
|
||||
// Always print at least one macro
|
||||
if ((!isset($macros[$i]) || $macros[$i]['desc'] == '') && $i > 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
$macro_desc_name = 'field'.$i.'_desc';
|
||||
$macro_desc_value = '';
|
||||
$macro_help_name = 'field'.$i.'_help';
|
||||
$macro_help_value = '';
|
||||
$macro_value_name = 'field'.$i.'_value';
|
||||
$macro_value_value = '';
|
||||
$macro_name_name = 'field'.$i.'_macro';
|
||||
$macro_name = '_field'.$i.'_';
|
||||
$macro_hide_value_name = 'field'.$i.'_hide';
|
||||
$macro_hide_value_value = 0;
|
||||
|
||||
if (isset($macros[$i]['desc'])) {
|
||||
$macro_desc_value = $macros[$i]['desc'];
|
||||
}
|
||||
|
||||
if (isset($macros[$i]['help'])) {
|
||||
$macro_help_value = $macros[$i]['help'];
|
||||
}
|
||||
|
||||
if (isset($macros[$i]['value'])) {
|
||||
$macro_value_value = $macros[$i]['value'];
|
||||
}
|
||||
|
||||
if (isset($macros[$i]['hide'])) {
|
||||
$macro_hide_value_value = $macros[$i]['hide'];
|
||||
}
|
||||
|
||||
$datam = [];
|
||||
$datam[0] = __('Description')."<span style='font-weight: normal'> ($macro_name)</span>";
|
||||
$datam[0] .= html_print_input_hidden($macro_name_name, $macro_name, true);
|
||||
$datam[1] = html_print_input_text_extended($macro_desc_name, $macro_desc_value, 'text-'.$macro_desc_name, '', 30, 255, $locked, '', "class='command_advanced_conf'", true);
|
||||
if ($locked) {
|
||||
$datam[1] .= html_print_image('images/lock.png', true, ['class' => 'command_advanced_conf']);
|
||||
}
|
||||
|
||||
$datam[2] = __('Default value')."<span style='font-weight: normal'> ($macro_name)</span>";
|
||||
$datam[3] = html_print_input_text_extended($macro_value_name, $macro_value_value, 'text-'.$macro_value_name, '', 30, 255, $locked, '', "class='command_component command_advanced_conf'", true);
|
||||
if ($locked) {
|
||||
$datam[3] .= html_print_image('images/lock.png', true, ['class' => 'command_advanced_conf']);
|
||||
}
|
||||
|
||||
$table->data['recon_'.$next_name_number] = $datam;
|
||||
|
||||
$next_name_number++;
|
||||
|
||||
$table->colspan['recon_'.$next_name_number][1] = 3;
|
||||
|
||||
$datam = [];
|
||||
$datam[0] = __('Hide value').ui_print_help_tip(__('This field will show up as dots like a password'), true);
|
||||
$datam[1] = html_print_checkbox_extended($macro_hide_value_name, 1, $macro_hide_value_value, 0, '', ['class' => 'command_advanced_conf'], true, 'checkbox-'.$macro_hide_value_name);
|
||||
|
||||
$table->data['recon_'.$next_name_number] = $datam;
|
||||
$next_name_number++;
|
||||
|
||||
$table->colspan['recon_'.$next_name_number][1] = 3;
|
||||
|
||||
$datam = [];
|
||||
$datam[0] = __('Help')."<span style='font-weight: normal'> ($macro_name)</span><br><br><br>";
|
||||
$tadisabled = $locked === true ? ' disabled' : '';
|
||||
$datam[1] = html_print_textarea($macro_help_name, 6, 100, $macro_help_value, 'class="command_advanced_conf" style="width: 97%;"'.$tadisabled, true);
|
||||
|
||||
if ($locked) {
|
||||
$datam[1] .= html_print_image('images/lock.png', true, ['class' => 'command_advanced_conf']);
|
||||
}
|
||||
|
||||
$datam[1] .= '<br><br><br>';
|
||||
|
||||
$table->data['recon_'.$next_name_number] = $datam;
|
||||
$next_name_number++;
|
||||
$i++;
|
||||
}
|
||||
|
||||
if (!$locked) {
|
||||
$datam = [];
|
||||
$datam[0] = '<span style="font-weight: bold">'.__('Add macro').'</span> <a href="javascript:new_macro(\'table-form-recon_\');update_preview();">'.html_print_image('images/add.png', true).'</a>';
|
||||
$datam[0] .= '<div id="next_macro" style="display:none">'.$i.'</div>';
|
||||
$datam[0] .= '<div id="next_row" style="display:none">'.$next_name_number.'</div>';
|
||||
$delete_macro_style = '';
|
||||
if ($i <= 2) {
|
||||
$delete_macro_style = 'display:none;';
|
||||
}
|
||||
|
||||
$datam[2] = '<div id="delete_macro_button" style="'.$delete_macro_style.'">'.__('Delete macro').' <a href="javascript:delete_macro_form(\'table-form-recon_\');update_preview();">'.html_print_image('images/delete.png', true).'</a></div>';
|
||||
|
||||
$table->colspan['recon_action'][0] = 2;
|
||||
$table->rowstyle['recon_action'] = 'text-align:center';
|
||||
$table->colspan['recon_action'][2] = 2;
|
||||
$table->data['recon_action'] = $datam;
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
echo '<table width=100%>';
|
||||
echo '<tr><td align="right">';
|
||||
|
||||
if ($create != '') {
|
||||
echo "<input name='crtbutton' type='submit' class='sub wand' value='".__('Create')."'>";
|
||||
} else {
|
||||
echo "<input name='uptbutton' type='submit' class='sub upd' value='".__('Update')."'>";
|
||||
}
|
||||
|
||||
echo '</form></table>';
|
||||
} else {
|
||||
ui_print_page_header(__('Recon scripts registered on %s', get_product_name()), 'images/gm_servers.png', false, '', true);
|
||||
|
||||
// Update reconscript
|
||||
if (isset($_GET['update_reconscript'])) {
|
||||
// if modified any parameter
|
||||
$id_recon_script = get_parameter('update_reconscript', 0);
|
||||
$reconscript_name = get_parameter('form_name', '');
|
||||
$reconscript_description = get_parameter('form_description', '');
|
||||
$reconscript_script = get_parameter('form_script', '');
|
||||
|
||||
// Get macros
|
||||
$i = 1;
|
||||
$macros = [];
|
||||
while (1) {
|
||||
$macro = (string) get_parameter('field'.$i.'_macro');
|
||||
if ($macro == '') {
|
||||
break;
|
||||
}
|
||||
|
||||
$desc = (string) get_parameter('field'.$i.'_desc');
|
||||
$help = (string) get_parameter('field'.$i.'_help');
|
||||
$value = (string) get_parameter('field'.$i.'_value');
|
||||
$hide = get_parameter('field'.$i.'_hide');
|
||||
|
||||
$macros[$i]['macro'] = $macro;
|
||||
$macros[$i]['desc'] = $desc;
|
||||
$macros[$i]['help'] = $help;
|
||||
$macros[$i]['value'] = $value;
|
||||
$macros[$i]['hide'] = $hide;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$macros = io_json_mb_encode($macros);
|
||||
|
||||
$sql_update = "UPDATE trecon_script SET
|
||||
name = '$reconscript_name',
|
||||
description = '$reconscript_description',
|
||||
script = '$reconscript_script',
|
||||
macros = '$macros'
|
||||
WHERE id_recon_script = $id_recon_script";
|
||||
$result = false;
|
||||
if ($reconscript_name != '' && $reconscript_script != '') {
|
||||
$result = db_process_sql($sql_update);
|
||||
}
|
||||
|
||||
if (! $result) {
|
||||
ui_print_error_message(__('Problem updating'));
|
||||
} else {
|
||||
ui_print_success_message(__('Updated successfully'));
|
||||
}
|
||||
}
|
||||
|
||||
// Create reconscript
|
||||
if (isset($_GET['create_reconscript'])) {
|
||||
$reconscript_name = get_parameter('form_name', '');
|
||||
$reconscript_description = get_parameter('form_description', '');
|
||||
$reconscript_script = get_parameter('form_script', '');
|
||||
|
||||
// Get macros
|
||||
$i = 1;
|
||||
$macros = [];
|
||||
while (1) {
|
||||
$macro = (string) get_parameter('field'.$i.'_macro');
|
||||
if ($macro == '') {
|
||||
break;
|
||||
}
|
||||
|
||||
$desc = (string) get_parameter('field'.$i.'_desc');
|
||||
$help = (string) get_parameter('field'.$i.'_help');
|
||||
$value = (string) get_parameter('field'.$i.'_value');
|
||||
$hide = get_parameter('field'.$i.'_hide');
|
||||
|
||||
$macros[$i]['macro'] = $macro;
|
||||
$macros[$i]['desc'] = $desc;
|
||||
$macros[$i]['help'] = $help;
|
||||
$macros[$i]['value'] = $value;
|
||||
$macros[$i]['hide'] = $hide;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$macros = io_json_mb_encode($macros);
|
||||
|
||||
$values = [
|
||||
'name' => $reconscript_name,
|
||||
'description' => $reconscript_description,
|
||||
'script' => $reconscript_script,
|
||||
'macros' => $macros,
|
||||
];
|
||||
$result = false;
|
||||
if ($values['name'] != '' && $values['script'] != '') {
|
||||
$result = db_process_sql_insert('trecon_script', $values);
|
||||
}
|
||||
|
||||
if (! $result) {
|
||||
ui_print_error_message(__('Problem creating'));
|
||||
} else {
|
||||
ui_print_success_message(__('Created successfully'));
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_GET['kill_reconscript'])) {
|
||||
// if delete alert
|
||||
$reconscript_id = get_parameter('kill_reconscript', 0);
|
||||
|
||||
$result = db_process_sql_delete(
|
||||
'trecon_script',
|
||||
['id_recon_script' => $reconscript_id]
|
||||
);
|
||||
|
||||
if (! $result) {
|
||||
ui_print_error_message(__('Problem deleting reconscript'));
|
||||
} else {
|
||||
ui_print_success_message(__('reconscript deleted successfully'));
|
||||
}
|
||||
|
||||
if ($reconscript_id != 0) {
|
||||
$result = db_process_sql_delete(
|
||||
'trecon_task',
|
||||
['id_recon_script' => $reconscript_id]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// If not edition or insert, then list available reconscripts
|
||||
$rows = db_get_all_rows_in_table('trecon_script');
|
||||
|
||||
if ($rows !== false) {
|
||||
echo '<table width="100%" cellspacing="4" cellpadding="4" class="databox data">';
|
||||
echo '<th>'.__('Name').'</th>';
|
||||
echo '<th>'.__('Description').'</th>';
|
||||
echo '<th>'.__('Delete').'</th>';
|
||||
$color = 0;
|
||||
foreach ($rows as $row) {
|
||||
if ($color == 1) {
|
||||
$tdcolor = 'datos';
|
||||
$color = 0;
|
||||
} else {
|
||||
$tdcolor = 'datos2';
|
||||
$color = 1;
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
echo "<td class='$tdcolor' style='min-width: 100px;'>";
|
||||
echo "<b><a href='index.php?sec=gservers&sec2=godmode/servers/recon_script&view=".$row['id_recon_script']."'>";
|
||||
echo $row['name'];
|
||||
echo '</a></b></td>';
|
||||
echo "</td><td class='$tdcolor'>";
|
||||
$desc = io_safe_output($row['description']);
|
||||
$desc = str_replace("\n", '<br>', $desc);
|
||||
echo $desc.'<br><br>';
|
||||
echo '<b>'.__('Command').': </b><i>'.$row['script'].'</i>';
|
||||
echo "</td><td align='center' class='$tdcolor'>";
|
||||
echo "<a href='index.php?sec=gservers&sec2=godmode/servers/recon_script&kill_reconscript=".$row['id_recon_script']."'>".html_print_image('images/cross.png', true, ['border' => '0']).'</a>';
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no recon scripts in the system') ]);
|
||||
}
|
||||
|
||||
echo '<table width=100%>';
|
||||
echo '<tr><td align=right>';
|
||||
echo "<form name=reconscript method='post' action='index.php?sec=gservers&sec2=godmode/servers/recon_script&create=1'>";
|
||||
echo "<input name='crtbutton' type='submit' class='sub next' value='".__('Add')."'>";
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
|
||||
ui_require_javascript_file('pandora_modules');
|
||||
|
|
|
@ -536,6 +536,19 @@ $table->data[] = [
|
|||
),
|
||||
];
|
||||
|
||||
|
||||
$table->data[] = [
|
||||
__('Max. days before delete old network matrix data'),
|
||||
html_print_input_text(
|
||||
'delete_old_network_matrix',
|
||||
$config['delete_old_network_matrix'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
),
|
||||
];
|
||||
|
||||
$table_other = new stdClass();
|
||||
$table_other->width = '100%';
|
||||
$table_other->class = 'databox filters';
|
||||
|
|
|
@ -131,6 +131,14 @@ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
|
|||
|
||||
$table->data[19][1] = html_print_checkbox_switch_extended('activate_netflow', 1, $config['activate_netflow'], $rbt_disabled, '', '', true);
|
||||
|
||||
$table->data[21][0] = __('Enable Network Traffic Analyzer');
|
||||
$table->data[21][1] = html_print_switch(
|
||||
[
|
||||
'name' => 'activate_nta',
|
||||
'value' => $config['activate_nta'],
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
$zone_name = [
|
||||
'Africa' => __('Africa'),
|
||||
|
|
|
@ -243,7 +243,7 @@ function logo_custom_enterprise($name, $logo)
|
|||
false,
|
||||
true,
|
||||
'',
|
||||
$open,
|
||||
false,
|
||||
'width:240px'
|
||||
);
|
||||
return $select;
|
||||
|
@ -259,7 +259,7 @@ function logo_custom_enterprise($name, $logo)
|
|||
false,
|
||||
true,
|
||||
'',
|
||||
$open,
|
||||
true,
|
||||
'width:240px'
|
||||
);
|
||||
return $select;
|
||||
|
@ -462,6 +462,20 @@ if (enterprise_installed()) {
|
|||
$row++;
|
||||
}
|
||||
|
||||
// Title Header
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Title (header)');
|
||||
$table_styles->data[$row][1] = html_print_input_text('custom_title_header', $config['custom_title_header'], '', 50, 40, true);
|
||||
$row++;
|
||||
}
|
||||
|
||||
// Subtitle Header
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Subtitle (header)');
|
||||
$table_styles->data[$row][1] = html_print_input_text('custom_subtitle_header', $config['custom_subtitle_header'], '', 50, 40, true);
|
||||
$row++;
|
||||
}
|
||||
|
||||
// login title1
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Title 1 (login)');
|
||||
|
|
|
@ -30,7 +30,10 @@ require_once __DIR__.'/Wizard.main.php';
|
|||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
require_once $config['homedir'].'/include/functions_reports.php';
|
||||
require_once $config['homedir'].'/include/functions_cron.php';
|
||||
enterprise_include('include/functions_tasklist.php');
|
||||
enterprise_include_once('include/functions_tasklist.php');
|
||||
enterprise_include_once('include/functions_cron.php');
|
||||
|
||||
ui_require_css_file('task_list');
|
||||
|
||||
/**
|
||||
* Defined as wizard to guide user to explore running tasks.
|
||||
|
@ -93,7 +96,8 @@ class DiscoveryTaskList extends Wizard
|
|||
]
|
||||
);
|
||||
|
||||
$this->printHeader();
|
||||
// Header
|
||||
ui_print_page_header(__('Task list'), '', false, '', true, '', false, '', GENERIC_SIZE_TEXT, '', $this->printHeader(true));
|
||||
|
||||
// Show redirected messages from discovery.php.
|
||||
if ($status === 0) {
|
||||
|
@ -237,7 +241,7 @@ class DiscoveryTaskList extends Wizard
|
|||
$id_console_task = (int) get_parameter('id_console_task');
|
||||
|
||||
if ($id_console_task !== null) {
|
||||
enterprise_include('cron_task_run', $id_console_task, true);
|
||||
enterprise_hook('cron_task_run', [$id_console_task, true]);
|
||||
// Trick to avoid double execution.
|
||||
header('Location: '.$this->url);
|
||||
}
|
||||
|
@ -345,6 +349,8 @@ class DiscoveryTaskList extends Wizard
|
|||
$recon_tasks = [];
|
||||
}
|
||||
|
||||
$url_ajax = $config['homeurl'].'ajax.php';
|
||||
|
||||
$table = new StdClass();
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
|
@ -424,7 +430,16 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[0] = '';
|
||||
}
|
||||
|
||||
$data[1] = '<b>'.$task['name'].'</b>';
|
||||
// Name task.
|
||||
$data[1] = '';
|
||||
if ($task['disabled'] != 2) {
|
||||
$data[1] .= '<a href="#" onclick="progress_task_list('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||
}
|
||||
|
||||
$data[1] .= '<b>'.$task['name'].'</b>';
|
||||
if ($task['disabled'] != 2) {
|
||||
$data[1] .= '</a>';
|
||||
}
|
||||
|
||||
$data[2] = $server_name;
|
||||
|
||||
|
@ -488,6 +503,24 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[8] = __('Not executed yet');
|
||||
}
|
||||
|
||||
if ($task['disabled'] != 2) {
|
||||
$data[9] = '<a href="#" onclick="progress_task_list('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/eye.png',
|
||||
true
|
||||
);
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if ($task['disabled'] != 2 && $task['utimestamp'] > 0) {
|
||||
$data[9] .= '<a href="#" onclick="show_map('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/dynamic_network_icon.png',
|
||||
true
|
||||
);
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if (check_acl(
|
||||
$config['id_user'],
|
||||
$task['id_group'],
|
||||
|
@ -495,7 +528,7 @@ class DiscoveryTaskList extends Wizard
|
|||
)
|
||||
) {
|
||||
if ($ipam === true) {
|
||||
$data[9] = '<a href="'.ui_get_full_url(
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=godmode/extensions&sec2=enterprise/extensions/ipam&action=edit&id=%d',
|
||||
$tipam_task_id
|
||||
|
@ -512,7 +545,7 @@ class DiscoveryTaskList extends Wizard
|
|||
).'</a>';
|
||||
} else {
|
||||
// Check if is a H&D, Cloud or Application or IPAM.
|
||||
$data[9] = '<a href="'.ui_get_full_url(
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=gservers&sec2=godmode/servers/discovery&%s&task=%d',
|
||||
$this->getTargetWiz($task),
|
||||
|
@ -533,6 +566,9 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[9] = '';
|
||||
}
|
||||
|
||||
// Div neccesary for modal progress task.
|
||||
echo '<div id="progress_task_'.$task['id_rt'].'" style="display:none"></div>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
||||
|
@ -544,7 +580,12 @@ class DiscoveryTaskList extends Wizard
|
|||
html_print_table($table);
|
||||
}
|
||||
|
||||
unset($table);
|
||||
// Div neccesary for modal map task.
|
||||
echo '<div id="map_task" style="display:none"></div>';
|
||||
|
||||
unset($table);
|
||||
|
||||
ui_require_javascript_file('pandora_taskList');
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -583,7 +624,12 @@ class DiscoveryTaskList extends Wizard
|
|||
return 'wiz=ctask';
|
||||
|
||||
default:
|
||||
return 'wiz=hd&mode=netscan';
|
||||
if ($task['id_recon_script'] === null) {
|
||||
return 'wiz=hd&mode=netscan';
|
||||
} else {
|
||||
return 'wiz=hd&mode=customnetscan';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,10 @@
|
|||
|
||||
require_once __DIR__.'/Wizard.main.php';
|
||||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
enterprise_include('include/class/CSVImportAgents.class.php');
|
||||
require_once $config['homedir'].'/include/class/CustomNetScan.class.php';
|
||||
require_once $config['homedir'].'/include/class/ManageNetScanScripts.class.php';
|
||||
|
||||
enterprise_include_once('include/class/CSVImportAgents.class.php');
|
||||
enterprise_include_once('include/functions_hostdevices.php');
|
||||
|
||||
/**
|
||||
|
@ -117,6 +120,7 @@ class HostDevices extends Wizard
|
|||
'icon' => 'images/wizard/netscan.png',
|
||||
'label' => __('Net Scan'),
|
||||
];
|
||||
|
||||
if (enterprise_installed()) {
|
||||
$buttons[] = [
|
||||
'url' => $this->url.'&mode=importcsv',
|
||||
|
@ -125,6 +129,18 @@ class HostDevices extends Wizard
|
|||
];
|
||||
}
|
||||
|
||||
$buttons[] = [
|
||||
'url' => $this->url.'&mode=customnetscan',
|
||||
'icon' => '/images/wizard/customnetscan.png',
|
||||
'label' => __('Custom NetScan'),
|
||||
];
|
||||
|
||||
$buttons[] = [
|
||||
'url' => $this->url.'&mode=managenetscanscripts',
|
||||
'icon' => '/images/wizard/managenetscanscripts.png',
|
||||
'label' => __('Manage NetScan scripts'),
|
||||
];
|
||||
|
||||
$this->prepareBreadcrum(
|
||||
[
|
||||
[
|
||||
|
@ -136,19 +152,38 @@ class HostDevices extends Wizard
|
|||
]
|
||||
);
|
||||
|
||||
$this->printHeader();
|
||||
ui_print_page_header(__('Host & devices'), '', false, '', true, '', false, '', GENERIC_SIZE_TEXT, '', $this->printHeader(true));
|
||||
|
||||
$this->printBigButtonsList($buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
if (enterprise_installed()) {
|
||||
if ($mode == 'importcsv') {
|
||||
$csv_importer = new CSVImportAgents($this->page, $this->breadcrum);
|
||||
if ($mode === 'importcsv') {
|
||||
$csv_importer = new CSVImportAgents(
|
||||
$this->page,
|
||||
$this->breadcrum
|
||||
);
|
||||
return $csv_importer->runCSV();
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode === 'customnetscan') {
|
||||
$customnetscan_importer = new CustomNetScan(
|
||||
$this->page,
|
||||
$this->breadcrum
|
||||
);
|
||||
return $customnetscan_importer->runCustomNetScan();
|
||||
}
|
||||
|
||||
if ($mode === 'managenetscanscripts') {
|
||||
$managenetscanscript_importer = new ManageNetScanScripts(
|
||||
$this->page,
|
||||
$this->breadcrum
|
||||
);
|
||||
return $managenetscanscript_importer->runManageNetScanScript();
|
||||
}
|
||||
|
||||
if ($mode == 'netscan') {
|
||||
return $this->runNetScan();
|
||||
}
|
||||
|
@ -477,9 +512,15 @@ class HostDevices extends Wizard
|
|||
$task_url = '&task='.$this->task['id_rt'];
|
||||
}
|
||||
|
||||
$breadcrum[] = [
|
||||
'link' => 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd',
|
||||
'label' => __($this->label),
|
||||
$breadcrum = [
|
||||
[
|
||||
'link' => 'index.php?sec=gservers&sec2=godmode/servers/discovery',
|
||||
'label' => 'Discovery',
|
||||
],
|
||||
[
|
||||
'link' => 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd',
|
||||
'label' => __($this->label),
|
||||
],
|
||||
];
|
||||
for ($i = 0; $i < $this->maxPagesNetScan; $i++) {
|
||||
$breadcrum[] = [
|
||||
|
@ -492,7 +533,7 @@ class HostDevices extends Wizard
|
|||
if ($this->page < $this->maxPagesNetScan) {
|
||||
// Avoid to print header out of wizard.
|
||||
$this->prepareBreadcrum($breadcrum);
|
||||
$this->printHeader();
|
||||
ui_print_page_header(__('NetScan'), '', false, '', true, '', false, '', GENERIC_SIZE_TEXT, '', $this->printHeader(true));
|
||||
}
|
||||
|
||||
if (isset($this->page) === true
|
||||
|
|
|
@ -26,14 +26,15 @@
|
|||
* ============================================================================
|
||||
*/
|
||||
|
||||
define('CLOUDWIZARD_AWS_DESCRIPTION', 'Discovery.Cloud.AWS.EC2');
|
||||
// Begin.
|
||||
|
||||
/**
|
||||
* Global Wizard generic class. Needs to be inherited.
|
||||
*
|
||||
* Used in Hostdevices class, Applications class and others, is the core of
|
||||
* Discovery proyect.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Global Wizard generic class. Needs to be inherited.
|
||||
*
|
||||
* Used in Hostdevices class, Applications class and others, is the core of
|
||||
* Discovery proyect.
|
||||
*/
|
||||
class Wizard
|
||||
{
|
||||
|
||||
|
@ -195,20 +196,38 @@ class Wizard
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function prepareBreadcrum(array $urls, bool $add=false)
|
||||
public function prepareBreadcrum(array $urls, bool $add=false, bool $separator_beginning=false)
|
||||
{
|
||||
$bc = [];
|
||||
$i = 0;
|
||||
$count = 0;
|
||||
$array_size = count($urls);
|
||||
|
||||
foreach ($urls as $url) {
|
||||
$count++;
|
||||
|
||||
if ($url['selected'] == 1) {
|
||||
$class = 'selected';
|
||||
} else {
|
||||
$class = '';
|
||||
}
|
||||
|
||||
$bc[$i] = '<a href="'.$url['link'].'" class="text_color">';
|
||||
$bc[$i] .= '<div class="arrow_box '.$class.'">'.$url['label'];
|
||||
$bc[$i++] .= '</div></a>';
|
||||
$bc[$i] = '';
|
||||
|
||||
if ($separator_beginning === true) {
|
||||
$bc[$i] .= '<span class="breadcrumb_link"> / </span>';
|
||||
}
|
||||
|
||||
$bc[$i] .= '<span><a class="breadcrumb_link '.$class.'" href="'.$url['link'].'">';
|
||||
$bc[$i] .= $url['label'];
|
||||
$bc[$i] .= '</a>';
|
||||
if ($count < $array_size) {
|
||||
$bc[$i] .= '<span class="breadcrumb_link"> / </span>';
|
||||
}
|
||||
|
||||
$bc[$i] .= '</span>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($add === true) {
|
||||
|
@ -256,7 +275,7 @@ class Wizard
|
|||
*/
|
||||
public function printBreadcrum()
|
||||
{
|
||||
return '<h1 class="wizard">'.implode('', $this->breadcrum).'</h1>';
|
||||
return implode('', $this->breadcrum);
|
||||
}
|
||||
|
||||
|
||||
|
@ -572,14 +591,18 @@ class Wizard
|
|||
{
|
||||
$output = '';
|
||||
if ($input['hidden'] == 1) {
|
||||
$class = ' class="hidden"';
|
||||
$class = ' hidden';
|
||||
} else {
|
||||
$class = '';
|
||||
}
|
||||
|
||||
if (isset($input['class']) === true) {
|
||||
$class = $input['class'].$class;
|
||||
}
|
||||
|
||||
if (is_array($input['block_content']) === true) {
|
||||
// Print independent block of inputs.
|
||||
$output .= '<li id="'.$input['block_id'].'" '.$class.'>';
|
||||
$output .= '<li id="'.$input['block_id'].'" class="'.$class.'">';
|
||||
$output .= '<ul class="wizard">';
|
||||
foreach ($input['block_content'] as $input) {
|
||||
$output .= $this->printBlock($input, $return);
|
||||
|
@ -588,7 +611,7 @@ class Wizard
|
|||
$output .= '</ul></li>';
|
||||
} else {
|
||||
if ($input['arguments']['type'] != 'hidden') {
|
||||
$output .= '<li id="'.$input['id'].'" '.$class.'>';
|
||||
$output .= '<li id="'.$input['id'].'" class="'.$class.'">';
|
||||
$output .= '<label>'.$input['label'].'</label>';
|
||||
$output .= $this->printInput($input['arguments']);
|
||||
// Allow dynamic content.
|
||||
|
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 286 B |
After Width: | Height: | Size: 286 B |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 263 B |
After Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 443 B |
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 428 B |
After Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 424 B |
After Width: | Height: | Size: 418 B |
After Width: | Height: | Size: 473 B |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 376 B |
After Width: | Height: | Size: 546 B |