Merge remote-tracking branch 'origin/develop' into ent-3105-comportamiento-public_url
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.736-190702
|
||||
Version: 7.0NG.736-190712
|
||||
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.736-190702"
|
||||
pandora_version="7.0NG.736-190712"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -42,7 +42,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.736';
|
||||
use constant AGENT_BUILD => '190702';
|
||||
use constant AGENT_BUILD => '190712';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.736
|
||||
%define release 190702
|
||||
%define release 190712
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.736
|
||||
%define release 190702
|
||||
%define release 190712
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.736"
|
||||
PI_BUILD="190702"
|
||||
PI_BUILD="190712"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{190702}
|
||||
{190712}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.736(Build 190702)")
|
||||
#define PANDORA_VERSION ("7.0NG.736(Build 190712)")
|
||||
|
||||
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.736(Build 190702))"
|
||||
VALUE "ProductVersion", "(7.0NG.736(Build 190712))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.736-190702
|
||||
Version: 7.0NG.736-190712
|
||||
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.736-190702"
|
||||
pandora_version="7.0NG.736-190712"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -1,17 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* Ajax handler.
|
||||
*
|
||||
* @category Ajax handler.
|
||||
* @package Pandora FMS.
|
||||
* @subpackage OpenSource.
|
||||
* @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.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
define('AJAX', true);
|
||||
|
||||
// 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 Lesser 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.
|
||||
// Enable profiler for testing
|
||||
if (!defined('__PAN_XHPROF__')) {
|
||||
define('__PAN_XHPROF__', 0);
|
||||
}
|
||||
|
@ -56,7 +73,7 @@ if (isset($_GET['loginhash'])) {
|
|||
|
||||
$public_hash = get_parameter('hash', false);
|
||||
|
||||
// Check user
|
||||
// Check user.
|
||||
if ($public_hash == false) {
|
||||
check_login();
|
||||
} else {
|
||||
|
@ -68,9 +85,9 @@ if ($public_hash == false) {
|
|||
}
|
||||
}
|
||||
|
||||
define('AJAX', true);
|
||||
|
||||
// Enterprise support
|
||||
|
||||
// Enterprise support.
|
||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||
include_once ENTERPRISE_DIR.'/load_enterprise.php';
|
||||
}
|
||||
|
@ -86,11 +103,9 @@ if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
|||
$config['relative_path'] = enterprise_hook('skins_set_image_skin_path', [$config['id_user']]);
|
||||
}
|
||||
|
||||
if (isset($config['metaconsole'])) {
|
||||
// Not cool way of know if we are executing from metaconsole or normal console
|
||||
if ($config['metaconsole']) {
|
||||
define('METACONSOLE', true);
|
||||
}
|
||||
if (is_metaconsole()) {
|
||||
// Backward compatibility.
|
||||
define('METACONSOLE', true);
|
||||
}
|
||||
|
||||
if (file_exists($page)) {
|
||||
|
|
|
@ -270,6 +270,12 @@ function mainModuleGroups()
|
|||
$table->style[0] = 'color: #ffffff; background-color: #373737; font-weight: bolder; min-width: 230px;';
|
||||
$table->width = '100%';
|
||||
|
||||
if ($config['style'] === 'pandora_black') {
|
||||
$background_color = '#333';
|
||||
} else {
|
||||
$background_color = '#fff';
|
||||
}
|
||||
|
||||
$head[0] = __('Groups');
|
||||
$headstyle[0] = 'width: 20%; font-weight: bolder;';
|
||||
foreach ($array_module_group as $key => $value) {
|
||||
|
@ -314,7 +320,7 @@ function mainModuleGroups()
|
|||
$data[$i][$j] .= $array_data[$key][$k]['total_count'];
|
||||
$data[$i][$j] .= '</a></div>';
|
||||
} else {
|
||||
$data[$i][$j] = "<div style='background:white;".$cell_style."'>";
|
||||
$data[$i][$j] = "<div style='background:".$background_color.';'.$cell_style."'>";
|
||||
$data[$i][$j] .= 0;
|
||||
$data[$i][$j] .= '</div>';
|
||||
}
|
||||
|
@ -323,7 +329,7 @@ function mainModuleGroups()
|
|||
}
|
||||
} else {
|
||||
foreach ($value['gm'] as $k => $v) {
|
||||
$data[$i][$j] = "<div style='background:white; min-width: 60px;max-width:5%;overflow:hidden; margin-left: auto; margin-right: auto; text-align: center; padding: 5px;padding-bottom:10px;font-size: 18px;line-height:25px;'>";
|
||||
$data[$i][$j] = "<div style='background:".$background_color."; min-width: 60px;max-width:5%;overflow:hidden; margin-left: auto; margin-right: auto; text-align: center; padding: 5px;padding-bottom:10px;font-size: 18px;line-height:25px;'>";
|
||||
$data[$i][$j] .= 0;
|
||||
$data[$i][$j] .= '</div>';
|
||||
$j++;
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `treport_content_sla_combined` ADD `id_agent_module_failover` int(10) unsigned NOT NULL;
|
||||
|
||||
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
||||
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
||||
|
||||
ALTER TABLE `tmodule_relationship` ADD COLUMN `type` ENUM('direct', 'failover') DEFAULT 'direct';
|
||||
|
||||
COMMIT;
|
|
@ -362,7 +362,7 @@ if ($console_mode == 1) {
|
|||
true
|
||||
);
|
||||
|
||||
echo "<table width='1000px' border='0' style='border:0px;' class='databox data' cellpadding='4' cellspacing='4'>";
|
||||
echo "<table id='diagnostic_info' width='1000px' border='0' style='border:0px;' class='databox data' cellpadding='4' cellspacing='4'>";
|
||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Pandora status info').'</th></tr>';
|
||||
}
|
||||
|
||||
|
|
|
@ -796,6 +796,8 @@ ALTER TABLE `treport_content_template` ADD COLUMN `unknown_checks` TINYINT(1) DE
|
|||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
|
||||
|
@ -1239,13 +1241,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', 29);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 30);
|
||||
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', '736');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '737');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
|
@ -1442,11 +1444,14 @@ ALTER TABLE `treport_content` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1'
|
|||
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tmodule_relationship`
|
||||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tmodule_relationship ADD COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
||||
ALTER TABLE `tmodule_relationship` ADD COLUMN `type` ENUM('direct', 'failover') DEFAULT 'direct';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tpolicy_module`
|
||||
|
@ -2209,3 +2214,8 @@ CREATE TABLE IF NOT EXISTS `tcredential_store` (
|
|||
`extra_2` text,
|
||||
PRIMARY KEY (`identifier`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `treport_content_sla_combined`
|
||||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE `treport_content_sla_combined` ADD `id_agent_module_failover` int(10) unsigned NOT NULL;
|
||||
|
|
|
@ -0,0 +1,164 @@
|
|||
<html>
|
||||
<head>
|
||||
|
||||
<style>
|
||||
|
||||
#alert_messages_na{
|
||||
z-index:2;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
width:650px;
|
||||
height: 400px;
|
||||
background:white;
|
||||
background-image:url('images/imagen-no-acceso.jpg');
|
||||
background-repeat:no-repeat;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-shadow:4px 5px 10px 3px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.modalheade{
|
||||
text-align:center;
|
||||
width:100%;
|
||||
position:absolute;
|
||||
top:0;
|
||||
}
|
||||
.modalheadertex{
|
||||
color:#000;
|
||||
font-family:Nunito;
|
||||
line-height: 40px;
|
||||
font-size: 23pt;
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.modalclose{
|
||||
cursor:pointer;
|
||||
display:inline;
|
||||
float:right;
|
||||
margin-right:10px;
|
||||
margin-top:10px;
|
||||
}
|
||||
.modalconten{
|
||||
color:black;
|
||||
width:300px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
.modalcontenttex{
|
||||
text-align:left;
|
||||
color:black;
|
||||
font-size: 11pt;
|
||||
line-height:13pt;
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.modalokbutto{
|
||||
cursor:pointer;
|
||||
text-align:center;
|
||||
display: inline-block;
|
||||
padding: 6px 45px;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
background-color:white;
|
||||
border: 1px solid #82b92e;
|
||||
}
|
||||
.modalokbuttontex{
|
||||
color:#82b92e;
|
||||
font-family:Nunito;
|
||||
font-size:13pt;
|
||||
}
|
||||
.modalgobutto{
|
||||
cursor:pointer;
|
||||
text-align:center;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
background-color:white;
|
||||
border: 1px solid #82b92e;
|
||||
}
|
||||
.modalgobuttontex{
|
||||
color:#82b92e;
|
||||
font-family:Nunito;
|
||||
font-size:10pt;
|
||||
}
|
||||
|
||||
|
||||
#opacidad{
|
||||
position:fixed;
|
||||
background:black;
|
||||
opacity:0.6;
|
||||
z-index:-1;
|
||||
left:0px;
|
||||
top:0px;
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
/*
|
||||
.textodialog{
|
||||
margin-left: 0px;
|
||||
color:#333;
|
||||
padding:20px;
|
||||
font-size:9pt;
|
||||
}
|
||||
|
||||
.cargatextodialog{
|
||||
max-width:58.5%;
|
||||
width:58.5%;
|
||||
min-width:58.5%;
|
||||
float:left;
|
||||
margin-left: 0px;
|
||||
font-size:18pt;
|
||||
padding:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.cargatextodialog p, .cargatextodialog b, .cargatextodialog a{
|
||||
font-size:18pt;
|
||||
}
|
||||
*/
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="alert_messages_na">
|
||||
|
||||
<div class='modalheade'>
|
||||
<img class='modalclose cerrar' src='<?php echo $config['homeurl']; ?>images/input_cross.png'>
|
||||
</div>
|
||||
|
||||
<div class='modalconten'>
|
||||
<div class='modalheadertex'>
|
||||
<?php echo __("You don't have access to this page"); ?>
|
||||
</div>
|
||||
|
||||
<div class='modalcontenttex'>
|
||||
<?php
|
||||
echo __('Access to this page is restricted to authorized users SAML only, please contact system administrator if you need assistance.');
|
||||
echo '<br/> <br/>';
|
||||
echo __('Please make sure you have SAML authentication properly configured. For more information the error to access this page are recorded in security logs of %s System Database', get_product_name());
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='modalokbutto cerrar'>
|
||||
<span class='modalokbuttontex'>OK</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="opacidad"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<script>
|
||||
|
||||
$(".cerrar").click(function(){
|
||||
window.location=".";
|
||||
});
|
||||
|
||||
$('div#page').css('background-color','#d3d3d3');
|
||||
|
||||
</script>
|
|
@ -122,7 +122,6 @@ if (is_ajax()) {
|
|||
exit();
|
||||
}
|
||||
|
||||
|
||||
ui_require_css_file('register');
|
||||
|
||||
$initial = isset($config['initial_wizard']) !== true
|
||||
|
@ -150,26 +149,27 @@ if ($initial && users_is_admin()) {
|
|||
);
|
||||
}
|
||||
|
||||
if ($registration && users_is_admin()) {
|
||||
// Prepare registration wizard, not launch. leave control to flow.
|
||||
registration_wiz_modal(
|
||||
false,
|
||||
// Launch only if not being launch from 'initial'.
|
||||
!$initial,
|
||||
(($show_newsletter === true) ? 'force_run_newsletter()' : null)
|
||||
);
|
||||
} else {
|
||||
if ($show_newsletter) {
|
||||
// Show newsletter wizard for current user.
|
||||
newsletter_wiz_modal(
|
||||
if (!$config['disabled_newsletter']) {
|
||||
if ($registration && users_is_admin()) {
|
||||
// Prepare registration wizard, not launch. leave control to flow.
|
||||
registration_wiz_modal(
|
||||
false,
|
||||
// Launch only if not being call from 'registration'.
|
||||
!$registration && !$initial
|
||||
// Launch only if not being launch from 'initial'.
|
||||
!$initial,
|
||||
(($show_newsletter === true) ? 'force_run_newsletter()' : null)
|
||||
);
|
||||
} else {
|
||||
if ($show_newsletter) {
|
||||
// Show newsletter wizard for current user.
|
||||
newsletter_wiz_modal(
|
||||
false,
|
||||
// Launch only if not being call from 'registration'.
|
||||
!$registration && !$initial
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$newsletter = null;
|
||||
|
||||
?>
|
||||
|
|
|
@ -23,7 +23,6 @@ $idAgent = (int) get_parameter('id_agente', 0);
|
|||
$ipAgent = db_get_value('direccion', 'tagente', 'id_agente', $idAgent);
|
||||
|
||||
check_login();
|
||||
|
||||
$ip_target = (string) get_parameter('ip_target', $ipAgent);
|
||||
$use_agent = get_parameter('use_agent');
|
||||
$snmp_community = (string) get_parameter('snmp_community', 'public');
|
||||
|
@ -469,6 +468,9 @@ if (enterprise_installed()) {
|
|||
if ($row['server_type'] != 13) {
|
||||
$s_type = ' (Standard)';
|
||||
} else {
|
||||
// Check if satellite server has remote configuration enabled
|
||||
$satellite_remote = config_agents_has_remote_configuration($id_agent);
|
||||
$id_satellite = $row['id_server'];
|
||||
$s_type = ' (Satellite)';
|
||||
}
|
||||
|
||||
|
@ -477,7 +479,17 @@ if (enterprise_installed()) {
|
|||
}
|
||||
|
||||
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>';
|
||||
$table->data[1][3] = html_print_select($servers_to_exec, 'server_to_exec', $server_to_exec, '', '', '', true);
|
||||
$table->data[1][2] .= '<span id=satellite_remote_tip>'.ui_print_help_tip(__('In order to use remote executions you need to enable remote execution in satellite server'), true, 'images/tip_help.png', false, 'display:').'</span>';
|
||||
$table->data[1][4] = html_print_select(
|
||||
$servers_to_exec,
|
||||
'server_to_exec',
|
||||
$server_to_exec,
|
||||
'satellite_remote_warn('.$id_satellite.','.$satellite_remote.')
|
||||
',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
$snmp_versions['1'] = 'v. 1';
|
||||
$snmp_versions['2'] = 'v. 2';
|
||||
|
@ -607,8 +619,12 @@ ui_require_jquery_file('bgiframe');
|
|||
/* <![CDATA[ */
|
||||
|
||||
$(document).ready (function () {
|
||||
|
||||
|
||||
var inputActive = true;
|
||||
|
||||
$('#server_to_exec option').trigger('change');
|
||||
|
||||
$(document).data('text_for_module', $("#none_text").html());
|
||||
|
||||
$("#id_snmp").change(snmp_changed_by_multiple_snmp);
|
||||
|
@ -628,6 +644,7 @@ $(document).ready (function () {
|
|||
$("#no_snmp").hide ();
|
||||
$("#form_interfaces").hide ();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
||||
|
@ -682,5 +699,20 @@ function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
|||
"json");
|
||||
}
|
||||
|
||||
|
||||
function satellite_remote_warn(id_satellite, remote)
|
||||
{
|
||||
if(!remote)
|
||||
{
|
||||
$('#server_to_exec option[value='+id_satellite+']').prop('disabled', true);
|
||||
$('#satellite_remote_tip').removeAttr("style").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#satellite_remote_tip').removeAttr("style").hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ]]> */
|
||||
</script>
|
||||
|
|
|
@ -1276,18 +1276,10 @@ if ($update_module || $create_module) {
|
|||
$m_hide = $m['hide'];
|
||||
}
|
||||
|
||||
if ($update_module) {
|
||||
if ($m_hide == '1') {
|
||||
$macros[$k]['value'] = io_input_password(get_parameter($m['macro'], ''));
|
||||
} else {
|
||||
$macros[$k]['value'] = get_parameter($m['macro'], '');
|
||||
}
|
||||
if ($m_hide == '1') {
|
||||
$macros[$k]['value'] = io_input_password(get_parameter($m['macro'], ''));
|
||||
} else {
|
||||
if ($m_hide == '1') {
|
||||
$macros[$k]['value'] = io_input_password($macros_names[$k]);
|
||||
} else {
|
||||
$macros[$k]['value'] = $macros_names[$k];
|
||||
}
|
||||
$macros[$k]['value'] = get_parameter($m['macro'], '');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ echo '<td>';
|
|||
|
||||
echo __('Group').' ';
|
||||
$own_info = get_user_info($config['id_user']);
|
||||
if (!$own_info['is_admin'] && check_acl($config['id_user'], 0, 'AW')) {
|
||||
if (!$own_info['is_admin'] && !check_acl($config['id_user'], 0, 'AR') && !check_acl($config['id_user'], 0, 'AW')) {
|
||||
$return_all_group = false;
|
||||
} else {
|
||||
$return_all_group = true;
|
||||
|
@ -680,7 +680,7 @@ if ($agents !== false) {
|
|||
}
|
||||
|
||||
echo '</table>';
|
||||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
|
||||
echo "<table width='100%'><tr><td align='right'>";
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined agents') ]);
|
||||
|
|
|
@ -78,6 +78,13 @@ function push_table_advanced($row, $id=false)
|
|||
function add_component_selection($id_network_component_type)
|
||||
{
|
||||
global $table_simple;
|
||||
global $config;
|
||||
|
||||
if ($config['style'] === 'pandora_black') {
|
||||
$background_row = 'background-color: #444';
|
||||
} else {
|
||||
$background_row = 'background-color: #cfcfcf';
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Using module component').' ';
|
||||
|
@ -116,7 +123,7 @@ function add_component_selection($id_network_component_type)
|
|||
$data[1] .= '</span>';
|
||||
|
||||
$table_simple->colspan['module_component'][1] = 3;
|
||||
$table_simple->rowstyle['module_component'] = 'background-color: #cfcfcf';
|
||||
$table_simple->rowstyle['module_component'] = $background_row;
|
||||
|
||||
prepend_table_simple($data, 'module_component');
|
||||
}
|
||||
|
@ -1101,9 +1108,8 @@ $macro_count++;
|
|||
|
||||
html_print_input_hidden('module_macro_count', $macro_count);
|
||||
|
||||
/*
|
||||
Advanced form part */
|
||||
// Add relationships
|
||||
// Advanced form part.
|
||||
// Add relationships.
|
||||
$table_new_relations = new stdClass();
|
||||
$table_new_relations->id = 'module_new_relations';
|
||||
$table_new_relations->width = '100%';
|
||||
|
@ -1114,7 +1120,8 @@ $table_new_relations->style[0] = 'width: 10%; font-weight: bold;';
|
|||
$table_new_relations->style[1] = 'width: 25%; text-align: center;';
|
||||
$table_new_relations->style[2] = 'width: 10%; font-weight: bold;';
|
||||
$table_new_relations->style[3] = 'width: 25%; text-align: center;';
|
||||
$table_new_relations->style[4] = 'width: 30%; text-align: center;';
|
||||
$table_new_relations->style[4] = 'width: 10%; font-weight: bold;';
|
||||
$table_new_relations->style[5] = 'width: 25%; text-align: center;';
|
||||
|
||||
$table_new_relations->data[0][0] = __('Agent');
|
||||
$params = [];
|
||||
|
@ -1128,10 +1135,35 @@ $params['javascript_function_action_after_select_js_call'] = 'change_modules_aut
|
|||
$table_new_relations->data[0][1] = ui_print_agent_autocomplete_input($params);
|
||||
$table_new_relations->data[0][2] = __('Module');
|
||||
$table_new_relations->data[0][3] = "<div id='module_autocomplete'></div>";
|
||||
$table_new_relations->data[0][4] = html_print_button(__('Add relationship'), 'add_relation', false, 'javascript: add_new_relation();', 'class="sub add"', true);
|
||||
$table_new_relations->data[0][4] .= " <div id='add_relation_status' style='display: inline;'></div>";
|
||||
|
||||
// Relationship list
|
||||
$array_rel_type = [];
|
||||
$array_rel_type['direct'] = __('Direct');
|
||||
$array_rel_type['failover'] = __('Failover');
|
||||
$table_new_relations->data[0][4] = __('Rel. type');
|
||||
$table_new_relations->data[0][5] = html_print_select(
|
||||
$array_rel_type,
|
||||
'relation_type',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
''
|
||||
);
|
||||
|
||||
$table_new_relations->data[0][6] = html_print_button(
|
||||
__('Add relationship'),
|
||||
'add_relation',
|
||||
false,
|
||||
'javascript: add_new_relation();',
|
||||
'class="sub add"',
|
||||
true
|
||||
);
|
||||
$table_new_relations->data[0][6] .= " <div id='add_relation_status' style='display: inline;'></div>";
|
||||
|
||||
// Relationship list.
|
||||
$table_relations = new stdClass();
|
||||
$table_relations->id = 'module_relations';
|
||||
$table_relations->width = '100%';
|
||||
|
@ -1141,19 +1173,26 @@ $table_relations->data = [];
|
|||
$table_relations->rowstyle = [];
|
||||
$table_relations->rowstyle[-1] = 'display: none;';
|
||||
$table_relations->style = [];
|
||||
$table_relations->style[2] = 'width: 10%; text-align: center;';
|
||||
$table_relations->style[3] = 'width: 10%; text-align: center;';
|
||||
$table_relations->style[4] = 'width: 10%; text-align: center;';
|
||||
|
||||
$table_relations->head[0] = __('Agent');
|
||||
$table_relations->head[1] = __('Module');
|
||||
$table_relations->head[2] = __('Changes').ui_print_help_tip(__('Activate this to prevent the relation from being updated or deleted'), true);
|
||||
$table_relations->head[3] = __('Delete');
|
||||
$table_relations->head[2] = __('Type');
|
||||
$table_relations->head[3] = __('Changes').ui_print_help_tip(
|
||||
__('Activate this to prevent the relation from being updated or deleted'),
|
||||
true
|
||||
);
|
||||
$table_relations->head[4] = __('Delete');
|
||||
|
||||
// Create an invisible row to use their html to add new rows
|
||||
// Create an invisible row to use their html to add new rows.
|
||||
$table_relations->data[-1][0] = '';
|
||||
$table_relations->data[-1][1] = '';
|
||||
$table_relations->data[-1][2] = '<a id="disable_updates_button" class="alpha50" href="">'.html_print_image('images/lock.png', true).'</a>';
|
||||
$table_relations->data[-1][3] = '<a id="delete_relation_button" href="">'.html_print_image('images/cross.png', true).'</a>';
|
||||
$table_relations->data[-1][2] = '';
|
||||
$table_relations->data[-1][3] = '<a id="disable_updates_button" class="alpha50" href="">';
|
||||
$table_relations->data[-1][3] .= html_print_image('images/lock.png', true).'</a>';
|
||||
$table_relations->data[-1][4] = '<a id="delete_relation_button" href="">';
|
||||
$table_relations->data[-1][4] .= html_print_image('images/cross.png', true).'</a>';
|
||||
|
||||
$module_relations = modules_get_relations(['id_module' => $id_agent_module]);
|
||||
if (!$module_relations) {
|
||||
|
@ -1164,10 +1203,14 @@ $relations_count = 0;
|
|||
foreach ($module_relations as $key => $module_relation) {
|
||||
if ($module_relation['module_a'] == $id_agent_module) {
|
||||
$module_id = $module_relation['module_b'];
|
||||
$agent_id = modules_give_agent_id_from_module_id($module_relation['module_b']);
|
||||
$agent_id = modules_give_agent_id_from_module_id(
|
||||
$module_relation['module_b']
|
||||
);
|
||||
} else {
|
||||
$module_id = $module_relation['module_a'];
|
||||
$agent_id = modules_give_agent_id_from_module_id($module_relation['module_a']);
|
||||
$agent_id = modules_give_agent_id_from_module_id(
|
||||
$module_relation['module_a']
|
||||
);
|
||||
}
|
||||
|
||||
$agent_name = ui_print_agent_name($agent_id, true);
|
||||
|
@ -1183,14 +1226,16 @@ foreach ($module_relations as $key => $module_relation) {
|
|||
$disabled_update_class = 'alpha50';
|
||||
}
|
||||
|
||||
// Agent name
|
||||
// Agent name.
|
||||
$table_relations->data[$relations_count][0] = $agent_name;
|
||||
// Module name
|
||||
// Module name.
|
||||
$table_relations->data[$relations_count][1] = "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=".$agent_id.'&tab=module&edit_module=1&id_agent_module='.$module_id."'>".ui_print_truncate_text($module_name, 'module_medium', true, true, true, '[…]').'</a>';
|
||||
// Lock relationship updates
|
||||
$table_relations->data[$relations_count][2] = '<a id="disable_updates_button" class="'.$disabled_update_class.'"href="javascript: change_lock_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/lock.png', true).'</a>';
|
||||
// Delete relationship
|
||||
$table_relations->data[$relations_count][3] = '<a id="delete_relation_button" href="javascript: delete_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/cross.png', true).'</a>';
|
||||
// Type.
|
||||
$table_relations->data[$relations_count][2] = ($module_relation['type'] === 'direct') ? __('Direct') : __('Failover');
|
||||
// Lock relationship updates.
|
||||
$table_relations->data[$relations_count][3] = '<a id="disable_updates_button" class="'.$disabled_update_class.'"href="javascript: change_lock_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/lock.png', true).'</a>';
|
||||
// Delete relationship.
|
||||
$table_relations->data[$relations_count][4] = '<a id="delete_relation_button" href="javascript: delete_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/cross.png', true).'</a>';
|
||||
$relations_count++;
|
||||
}
|
||||
|
||||
|
@ -1198,7 +1243,6 @@ html_print_input_hidden('module_relations_count', $relations_count);
|
|||
|
||||
ui_require_jquery_file('json');
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
@ -1343,8 +1387,6 @@ $(document).ready (function () {
|
|||
'width=800,height=600'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(type_name_selected == 'web_data' ||
|
||||
type_name_selected == 'web_proc' ||
|
||||
|
@ -1365,8 +1407,6 @@ $(document).ready (function () {
|
|||
'width=800,height=600'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1386,7 +1426,7 @@ $(document).ready (function () {
|
|||
$('#minmax_warning').hide();
|
||||
$('#svg_dinamic').hide();
|
||||
}
|
||||
|
||||
|
||||
if (type_name_selected.match(/async/) == null) {
|
||||
$('#ff_timeout').hide();
|
||||
$('#ff_timeout_disable').show();
|
||||
|
@ -1396,16 +1436,16 @@ $(document).ready (function () {
|
|||
$('#ff_timeout_disable').hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("#id_module_type").trigger('change');
|
||||
|
||||
|
||||
// Prevent the form submission when the user hits the enter button from the relationship autocomplete inputs
|
||||
$("#text-autocomplete_agent_name").keydown(function(event) {
|
||||
if(event.keyCode == 13) { // key code 13 is the enter button
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//validate post_process. Change ',' by '.'
|
||||
$("#submit-updbutton").click (function () {
|
||||
validate_post_process();
|
||||
|
@ -1512,7 +1552,6 @@ function advanced_option_dynamic() {
|
|||
|
||||
} else {
|
||||
$('.hide_dinamic').show();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1524,11 +1563,9 @@ function change_modules_autocomplete_input () {
|
|||
var module_autocomplete = $("#module_autocomplete");
|
||||
var load_icon = '<?php html_print_image('images/spinner.gif', false); ?>';
|
||||
var error_icon = '<?php html_print_image('images/error_red.png', false); ?>';
|
||||
|
||||
if (!module_autocomplete.hasClass('working')) {
|
||||
module_autocomplete.addClass('working');
|
||||
module_autocomplete.html(load_icon);
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
|
@ -1563,22 +1600,26 @@ function change_modules_autocomplete_input () {
|
|||
|
||||
// Add a new relation
|
||||
function add_new_relation () {
|
||||
var module_a_id = parseInt($("#hidden-id_agent_module").val());
|
||||
var module_b_id = parseInt($("#hidden-autocomplete_module_name_hidden").val());
|
||||
var module_a_id = parseInt(
|
||||
$("#hidden-id_agent_module").val()
|
||||
);
|
||||
var module_b_id = parseInt(
|
||||
$("#hidden-autocomplete_module_name_hidden").val()
|
||||
);
|
||||
var module_b_name = $("#text-autocomplete_module_name").val();
|
||||
var agent_b_name = $("#text-autocomplete_agent_name").val();
|
||||
var relation_type = $("#relation_type").val();
|
||||
var hiddenRow = $("#module_relations--1");
|
||||
var button = $("#button-add_relation");
|
||||
var iconPlaceholder = $("#add_relation_status");
|
||||
var load_icon = '<?php html_print_image('images/spinner.gif', false, ['style' => 'vertical-align:middle;']); ?>';
|
||||
var suc_icon = '<?php html_print_image('images/ok.png', false, ['style' => 'vertical-align:middle;']); ?>';
|
||||
var error_icon = '<?php html_print_image('images/error_red.png', false, ['style' => 'vertical-align:middle;']); ?>';
|
||||
|
||||
|
||||
|
||||
if (!button.hasClass('working')) {
|
||||
button.addClass('working');
|
||||
iconPlaceholder.html(load_icon);
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
|
@ -1588,7 +1629,8 @@ function add_new_relation () {
|
|||
add_module_relation: true,
|
||||
id_module_a: module_a_id,
|
||||
id_module_b: module_b_id,
|
||||
name_module_b: module_b_name
|
||||
name_module_b: module_b_name,
|
||||
relation_type: relation_type
|
||||
},
|
||||
success: function (data) {
|
||||
button.removeClass('working');
|
||||
|
@ -1599,29 +1641,30 @@ function add_new_relation () {
|
|||
else {
|
||||
iconPlaceholder.html(suc_icon);
|
||||
setTimeout( function() { iconPlaceholder.html(''); }, 2000);
|
||||
|
||||
|
||||
// Add the new row
|
||||
var relationsCount = parseInt($("#hidden-module_relations_count").val());
|
||||
|
||||
|
||||
var rowClass = "datos";
|
||||
if (relationsCount % 2 != 0) {
|
||||
rowClass = "datos2";
|
||||
}
|
||||
|
||||
|
||||
var rowHTML = '<tr id="module_relations-' + relationsCount + '" class="' + rowClass + '">' +
|
||||
'<td id="module_relations-' + relationsCount + '-0"><b>' + agent_b_name + '</b></td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-1">' + module_b_name + '</td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-2" style="width: 10%; text-align: center;">' +
|
||||
'<a id="disable_updates_button" class="alpha50" href="javascript: change_lock_relation(' + relationsCount + ', ' + data + ');">' +
|
||||
'<?php echo html_print_image('images/lock.png', true); ?>' +
|
||||
'</a>' +
|
||||
'</td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-3" style="width: 10%; text-align: center;">' +
|
||||
'<a id="delete_relation_button" href="javascript: delete_relation(' + relationsCount + ', ' + data + ');">' +
|
||||
'<?php echo html_print_image('images/cross.png', true); ?>' +
|
||||
'</a>' +
|
||||
'</td>' +
|
||||
'</tr>';
|
||||
'<td id="module_relations-' + relationsCount + '-0"><b>' + agent_b_name + '</b></td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-1">' + module_b_name + '</td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-2">' + relation_type + '</td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-3" style="width: 10%; text-align: center;">' +
|
||||
'<a id="disable_updates_button" class="alpha50" href="javascript: change_lock_relation(' + relationsCount + ', ' + data + ');">' +
|
||||
'<?php echo html_print_image('images/lock.png', true); ?>' +
|
||||
'</a>' +
|
||||
'</td>' +
|
||||
'<td id="module_relations-' + relationsCount + '-4" style="width: 10%; text-align: center;">' +
|
||||
'<a id="delete_relation_button" href="javascript: delete_relation(' + relationsCount + ', ' + data + ');">' +
|
||||
'<?php echo html_print_image('images/cross.png', true); ?>' +
|
||||
'</a>' +
|
||||
'</td>' +
|
||||
'</tr>';
|
||||
$("#module_relations").find("tbody").append(rowHTML);
|
||||
|
||||
$("#hidden-module_relations_count").val(relationsCount + 1);
|
||||
|
|
|
@ -534,8 +534,8 @@ echo '</div>';
|
|||
$('#div-extra_1').hide();
|
||||
$('#div-extra_2').hide();
|
||||
} else if ($('#product :selected').val() == "AZURE") {
|
||||
$('#div-username label').text('<?php echo __('Account ID'); ?>');
|
||||
$('#div-password label').text('<?php echo __('Password'); ?>');
|
||||
$('#div-username label').text('<?php echo __('Client ID'); ?>');
|
||||
$('#div-password label').text('<?php echo __('Application secret'); ?>');
|
||||
$('#div-extra_1 label').text('<?php echo __('Tenant or domain name'); ?>');
|
||||
$('#div-extra_2 label').text('<?php echo __('Subscription id'); ?>');
|
||||
$('#div-extra_1').show();
|
||||
|
|
|
@ -177,6 +177,9 @@ $table->data['operations'][1] .= html_print_checkbox('copy_alerts', 1, true, tru
|
|||
$table->data['operations'][1] .= html_print_label(__('Copy alerts'), 'checkbox-copy_alerts', true);
|
||||
$table->data['operations'][1] .= '</span>';
|
||||
|
||||
$table->data['form_modules_filter'][0] = __('Filter Modules');
|
||||
$table->data['form_modules_filter'][1] = html_print_input_text('filter_modules', '', '', 20, 255, true);
|
||||
|
||||
$table->data[1][0] = __('Modules');
|
||||
$table->data[1][1] = '<span class="with_modules'.(empty($modules) ? ' invisible' : '').'">';
|
||||
$table->data[1][1] .= html_print_select(
|
||||
|
@ -302,6 +305,8 @@ echo '<h3 class="error invisible" id="message"> </h3>';
|
|||
ui_require_jquery_file('form');
|
||||
ui_require_jquery_file('pandora.controls');
|
||||
?>
|
||||
|
||||
<script type="text/javascript" src="include/javascript/pandora_modules.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* <![CDATA[ */
|
||||
var module_alerts;
|
||||
|
@ -478,6 +483,9 @@ $(document).ready (function () {
|
|||
}
|
||||
$("#fieldset_targets").show ();
|
||||
$("#target_modules, #target_alerts").enable ();
|
||||
//Filter modules. Call the function when the select is fully loaded.
|
||||
var textNoData = "<?php echo __('None'); ?>";
|
||||
filterByText($('#target_modules'), $("#text-filter_modules"), textNoData);
|
||||
},
|
||||
"json"
|
||||
);
|
||||
|
|
|
@ -429,6 +429,11 @@ $table->data['form_modules_3'][1] = html_print_select(
|
|||
);
|
||||
$table->data['form_modules_3'][3] = '';
|
||||
|
||||
$table->rowstyle['form_modules_filter'] = 'vertical-align: top;';
|
||||
$table->rowclass['form_modules_filter'] = 'select_modules_row select_modules_row_2';
|
||||
$table->data['form_modules_filter'][0] = __('Filter Modules');
|
||||
$table->data['form_modules_filter'][1] = html_print_input_text('filter_modules', '', '', 20, 255, true);
|
||||
|
||||
$table->rowstyle['form_modules_2'] = 'vertical-align: top;';
|
||||
$table->rowclass['form_modules_2'] = 'select_modules_row select_modules_row_2';
|
||||
$table->data['form_modules_2'][0] = __('Modules');
|
||||
|
@ -571,6 +576,7 @@ if ($selection_mode == 'modules') {
|
|||
}
|
||||
?>
|
||||
|
||||
<script type="text/javascript" src="include/javascript/pandora_modules.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* <![CDATA[ */
|
||||
|
||||
|
@ -650,6 +656,9 @@ $(document).ready (function () {
|
|||
});
|
||||
$("#module_loading").hide();
|
||||
$("#module_name").removeAttr ("disabled");
|
||||
//Filter modules. Call the function when the select is fully loaded.
|
||||
var textNoData = "<?php echo __('None'); ?>";
|
||||
filterByText($('#module_name'), $("#text-filter_modules"), textNoData);
|
||||
},
|
||||
"json"
|
||||
);
|
||||
|
|
|
@ -388,6 +388,11 @@ $table->data['form_modules_4'][1] = html_print_select(
|
|||
true
|
||||
);
|
||||
|
||||
$table->rowstyle['form_modules_filter'] = 'vertical-align: top;';
|
||||
$table->rowclass['form_modules_filter'] = 'select_modules_row select_modules_row_2';
|
||||
$table->data['form_modules_filter'][0] = __('Filter Modules');
|
||||
$table->data['form_modules_filter'][1] = html_print_input_text('filter_modules', '', '', 20, 255, true);
|
||||
|
||||
$table->rowstyle['form_modules_2'] = 'vertical-align: top;';
|
||||
$table->rowclass['form_modules_2'] = 'select_modules_row select_modules_row_2';
|
||||
$table->data['form_modules_2'][0] = __('Modules');
|
||||
|
@ -1247,6 +1252,9 @@ $(document).ready (function () {
|
|||
});
|
||||
$("#module_loading").hide ();
|
||||
$("#module_name").removeAttr ("disabled");
|
||||
//Filter modules. Call the function when the select is fully loaded.
|
||||
var textNoData = "<?php echo __('None'); ?>";
|
||||
filterByText($('#module_name'), $("#text-filter_modules"), textNoData);
|
||||
},
|
||||
"json"
|
||||
);
|
||||
|
|
|
@ -24,9 +24,23 @@ $menu_godmode['class'] = 'godmode';
|
|||
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
$sub = [];
|
||||
$sub['godmode/servers/discovery']['text'] = __('Discovery');
|
||||
$sub['godmode/servers/discovery']['id'] = 'Discovery';
|
||||
$sub['godmode/servers/discovery']['subsecs'] = ['godmode/servers/discovery'];
|
||||
$sub['godmode/servers/discovery&wiz=main']['text'] = __('Discovery Main');
|
||||
$sub['godmode/servers/discovery&wiz=main']['id'] = 'Discovery';
|
||||
|
||||
$sub['godmode/servers/discovery&wiz=tasklist']['text'] = __('Task list');
|
||||
$sub['godmode/servers/discovery&wiz=tasklist']['id'] = 'tasklist';
|
||||
|
||||
$sub['godmode/servers/discovery&wiz=app']['text'] = __('Applications');
|
||||
$sub['godmode/servers/discovery&wiz=app']['id'] = 'app';
|
||||
|
||||
$sub['godmode/servers/discovery&wiz=cloud']['text'] = __('Cloud');
|
||||
$sub['godmode/servers/discovery&wiz=cloud']['id'] = 'cloud';
|
||||
|
||||
$sub['godmode/servers/discovery&wiz=ctask']['text'] = __('Console task');
|
||||
$sub['godmode/servers/discovery&wiz=ctask']['id'] = 'ctask';
|
||||
|
||||
$sub['godmode/servers/discovery&wiz=hd']['text'] = __('Host & devices');
|
||||
$sub['godmode/servers/discovery&wiz=hd']['id'] = 'hd';
|
||||
|
||||
// Add to menu.
|
||||
$menu_godmode['discovery']['text'] = __('Discovery');
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Network components Plugins
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @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-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.
|
||||
// Load global variables
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
@ -29,7 +44,7 @@ $data[1] = html_print_select_from_sql(
|
|||
false,
|
||||
false
|
||||
);
|
||||
// Store the macros in base64 into a hidden control to move between pages
|
||||
// Store the macros in base64 into a hidden control to move between pages.
|
||||
$data[1] .= html_print_input_hidden('macros', base64_encode($macros), true);
|
||||
$data[2] = __('Post process');
|
||||
$data[3] = html_print_extended_select_for_post_process(
|
||||
|
@ -46,7 +61,7 @@ $data[3] = html_print_extended_select_for_post_process(
|
|||
|
||||
push_table_row($data, 'plugin_1');
|
||||
|
||||
// A hidden "model row" to clone it from javascript to add fields dynamicly
|
||||
// A hidden "model row" to clone it from javascript to add fields dynamicly.
|
||||
$data = [];
|
||||
$data[0] = 'macro_desc';
|
||||
$data[0] .= ui_print_help_tip('macro_help', true);
|
||||
|
@ -56,7 +71,7 @@ $table->rowstyle['macro_field'] = 'display:none';
|
|||
|
||||
push_table_row($data, 'macro_field');
|
||||
|
||||
// If there are $macros, we create the form fields
|
||||
// If there are $macros, we create the form fields.
|
||||
if (!empty($macros)) {
|
||||
$macros = json_decode($macros, true);
|
||||
|
||||
|
@ -68,9 +83,23 @@ if (!empty($macros)) {
|
|||
}
|
||||
|
||||
if ($m['hide'] == 1) {
|
||||
$data[1] = html_print_input_text($m['macro'], $m['value'], '', 100, 1024, true);
|
||||
$data[1] = html_print_input_text(
|
||||
$m['macro'],
|
||||
io_output_password($m['value']),
|
||||
'',
|
||||
100,
|
||||
1024,
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$data[1] = html_print_input_text($m['macro'], io_output_password($m['value']), '', 100, 1024, true);
|
||||
$data[1] = html_print_input_text(
|
||||
$m['macro'],
|
||||
$m['value'],
|
||||
'',
|
||||
100,
|
||||
1024,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table->colspan['macro'.$m['macro']][1] = 3;
|
||||
|
|
|
@ -61,7 +61,7 @@ $buttons['visual_console_favorite'] = [
|
|||
'text' => '<a href="'.$url_visual_console_favorite.'">'.html_print_image('images/list.png', true, ['title' => __('Visual Favourite Console')]).'</a>',
|
||||
];
|
||||
|
||||
if ($is_enterprise && $vconsoles_manage) {
|
||||
if ($is_enterprise !== ENTERPRISE_NOT_HOOK && $vconsoles_manage) {
|
||||
$buttons['visual_console_template'] = [
|
||||
'active' => false,
|
||||
'text' => '<a href="'.$url_visual_console_template.'">'.html_print_image('images/templates.png', true, ['title' => __('Visual Console Template')]).'</a>',
|
||||
|
|
|
@ -165,6 +165,8 @@ switch ($action) {
|
|||
$show_in_landscape = 0;
|
||||
$hide_notinit_agents = 0;
|
||||
$priority_mode = REPORT_PRIORITY_MODE_OK;
|
||||
$failover_mode = 0;
|
||||
$failover_type = REPORT_FAILOVER_TYPE_NORMAL;
|
||||
$server_name = '';
|
||||
$server_id = 0;
|
||||
$dyn_height = 230;
|
||||
|
@ -314,6 +316,8 @@ switch ($action) {
|
|||
$sla_sorted_by = $item['top_n'];
|
||||
$period = $item['period'];
|
||||
$current_month = $item['current_month'];
|
||||
$failover_mode = $item['failover_mode'];
|
||||
$failover_type = $item['failover_type'];
|
||||
break;
|
||||
|
||||
case 'module_histogram_graph':
|
||||
|
@ -566,7 +570,6 @@ switch ($action) {
|
|||
$include_extended_events = $item['show_extended_events'];
|
||||
|
||||
$filter_search = $style['event_filter_search'];
|
||||
|
||||
break;
|
||||
|
||||
case 'event_report_group':
|
||||
|
@ -2238,6 +2241,7 @@ $class = 'databox filters';
|
|||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_select_fields2" style="" class="datos">
|
||||
<td style="font-weight:bold;margin-right:150px;">
|
||||
<?php
|
||||
|
@ -2609,6 +2613,59 @@ $class = 'databox filters';
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_failover_mode" style="" class="datos">
|
||||
<td style="font-weight:bold;">
|
||||
<?php
|
||||
echo __('Failover mode').ui_print_help_tip(
|
||||
__('SLA calculation must be performed taking into account the failover modules assigned to the primary module'),
|
||||
true
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox_switch(
|
||||
'failover_mode',
|
||||
1,
|
||||
$failover_mode
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_failover_type" style="" class="datos">
|
||||
<td style="font-weight:bold;">
|
||||
<?php
|
||||
echo __('Failover type');
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Failover normal');
|
||||
echo '<span style="margin-left:5px;"></span>';
|
||||
html_print_radio_button(
|
||||
'failover_type',
|
||||
REPORT_FAILOVER_TYPE_NORMAL,
|
||||
'',
|
||||
$failover_type == REPORT_FAILOVER_TYPE_NORMAL,
|
||||
''
|
||||
);
|
||||
|
||||
echo '<span style="margin:30px;"></span>';
|
||||
|
||||
echo __('Failover simple');
|
||||
echo '<span style="margin-left:5px;"></span>';
|
||||
html_print_radio_button(
|
||||
'failover_type',
|
||||
REPORT_FAILOVER_TYPE_SIMPLE,
|
||||
'',
|
||||
$failover_type == REPORT_FAILOVER_TYPE_SIMPLE,
|
||||
''
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_filter_search" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Free search'); ?></td>
|
||||
<td>
|
||||
|
@ -2772,6 +2829,13 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
'id_rc',
|
||||
$idItem
|
||||
);
|
||||
|
||||
$failover_mode = db_get_value(
|
||||
'failover_mode',
|
||||
'treport_content',
|
||||
'id_rc',
|
||||
$idItem
|
||||
);
|
||||
?>
|
||||
<table class="databox data" id="sla_list" border="0" cellpadding="4" cellspacing="4" width="100%">
|
||||
<thead>
|
||||
|
@ -2784,8 +2848,23 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
<th class="header sla_list_module_col" scope="col">
|
||||
<?php
|
||||
echo __('Module');
|
||||
?>
|
||||
if ($report_item_type == 'availability_graph'
|
||||
&& $failover_mode
|
||||
) {
|
||||
?>
|
||||
<th class="header sla_list_agent_failover" scope="col">
|
||||
<?php
|
||||
echo __('Agent Failover');
|
||||
?>
|
||||
</th>
|
||||
<th class="header sla_list_module_failover" scope="col">
|
||||
<?php
|
||||
echo __('Module Failover');
|
||||
?>
|
||||
</th>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<th class="header sla_list_service_col" scope="col">
|
||||
<?php
|
||||
echo __('Service');
|
||||
|
@ -2831,6 +2910,7 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
case 'update':
|
||||
case 'edit':
|
||||
echo '<tbody id="list_sla">';
|
||||
|
||||
$itemsSLA = db_get_all_rows_filter(
|
||||
'treport_content_sla_combined',
|
||||
['id_report_content' => $idItem]
|
||||
|
@ -2865,6 +2945,25 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
['id_agente_modulo' => $item['id_agent_module']]
|
||||
);
|
||||
|
||||
if (isset($item['id_agent_module_failover']) === true
|
||||
&& $item['id_agent_module_failover'] !== 0
|
||||
) {
|
||||
$idAgentFailover = db_get_value_filter(
|
||||
'id_agente',
|
||||
'tagente_modulo',
|
||||
['id_agente_modulo' => $item['id_agent_module_failover']]
|
||||
);
|
||||
$nameAgentFailover = agents_get_alias(
|
||||
$idAgentFailover
|
||||
);
|
||||
|
||||
$nameModuleFailover = db_get_value_filter(
|
||||
'nombre',
|
||||
'tagente_modulo',
|
||||
['id_agente_modulo' => $item['id_agent_module_failover']]
|
||||
);
|
||||
}
|
||||
|
||||
$server_name_element = '';
|
||||
if ($meta && $server_name != '') {
|
||||
$server_name_element .= ' ('.$server_name.')';
|
||||
|
@ -2878,6 +2977,17 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
echo printSmallFont($nameModule);
|
||||
echo '</td>';
|
||||
|
||||
if ($report_item_type == 'availability_graph'
|
||||
&& $failover_mode
|
||||
) {
|
||||
echo '<td class="sla_list_agent_failover">';
|
||||
echo printSmallFont($nameAgentFailover).$server_name_element;
|
||||
echo '</td>';
|
||||
echo '<td class="sla_list_module_failover">';
|
||||
echo printSmallFont($nameModuleFailover);
|
||||
echo '</td>';
|
||||
}
|
||||
|
||||
if (enterprise_installed()
|
||||
&& $report_item_type == 'SLA_services'
|
||||
) {
|
||||
|
@ -2926,6 +3036,15 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
<td class="sla_list_agent_col agent_name"></td>
|
||||
<td class="sla_list_module_col module_name"></td>
|
||||
<?php
|
||||
if ($report_item_type == 'availability_graph'
|
||||
&& $failover_mode
|
||||
) {
|
||||
?>
|
||||
<td class="sla_list_agent_failover agent_name_failover"></td>
|
||||
<td class="sla_list_module_failover module_name_failover"></td>
|
||||
<?php
|
||||
}
|
||||
|
||||
if (enterprise_installed()
|
||||
&& $report_item_type == 'SLA_services'
|
||||
) {
|
||||
|
@ -2982,6 +3101,44 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
</select>
|
||||
</td>
|
||||
<?php
|
||||
if ($report_item_type == 'availability_graph'
|
||||
&& $failover_mode
|
||||
) {
|
||||
?>
|
||||
<td class="sla_list_agent_failover_col">
|
||||
<input id="hidden-id_agent_failover" name="id_agent_failover" value="" type="hidden">
|
||||
<input id="hidden-server_name_failover" name="server_name_failover" value="" type="hidden">
|
||||
<?php
|
||||
$params = [];
|
||||
$params['show_helptip'] = true;
|
||||
$params['input_name'] = 'agent_failover';
|
||||
$params['value'] = '';
|
||||
$params['use_hidden_input_idagent'] = true;
|
||||
$params['hidden_input_idagent_id'] = 'hidden-id_agent_failover';
|
||||
$params['javascript_is_function_select'] = true;
|
||||
$params['selectbox_id'] = 'id_agent_module_failover';
|
||||
$params['add_none_module'] = false;
|
||||
if ($meta) {
|
||||
$params['use_input_id_server'] = true;
|
||||
$params['input_id_server_id'] = 'hidden-id_server';
|
||||
$params['disabled_javascript_on_blur_function'] = true;
|
||||
}
|
||||
|
||||
ui_print_agent_autocomplete_input($params);
|
||||
?>
|
||||
</td>
|
||||
<td class="sla_list_module_failover_col">
|
||||
<select id="id_agent_module_failover" name="id_agent_module_failover" disabled="disabled" style="max-width: 180px">
|
||||
<option value="0">
|
||||
<?php
|
||||
echo __('Select an Agent first');
|
||||
?>
|
||||
</option>
|
||||
</select>
|
||||
</td>
|
||||
<?php
|
||||
}
|
||||
|
||||
if (enterprise_installed()
|
||||
&& $report_item_type == 'SLA_services'
|
||||
) {
|
||||
|
@ -3002,23 +3159,23 @@ function print_SLA_list($width, $action, $idItem=null)
|
|||
],
|
||||
]
|
||||
);
|
||||
if (!empty($services_tmp)
|
||||
&& $services_tmp != ENTERPRISE_NOT_HOOK
|
||||
if (!empty($services_tmp)
|
||||
&& $services_tmp != ENTERPRISE_NOT_HOOK
|
||||
) {
|
||||
foreach ($services_tmp as $service) {
|
||||
$check_module_sla = modules_check_agentmodule_exists(
|
||||
$service['sla_id_module']
|
||||
);
|
||||
$check_module_sla_value = modules_check_agentmodule_exists(
|
||||
$service['sla_value_id_module']
|
||||
);
|
||||
if ($check_module_sla
|
||||
&& $check_module_sla_value
|
||||
) {
|
||||
foreach ($services_tmp as $service) {
|
||||
$check_module_sla = modules_check_agentmodule_exists(
|
||||
$service['sla_id_module']
|
||||
);
|
||||
$check_module_sla_value = modules_check_agentmodule_exists(
|
||||
$service['sla_value_id_module']
|
||||
);
|
||||
if ($check_module_sla
|
||||
&& $check_module_sla_value
|
||||
) {
|
||||
$services[$service['id']] = $service['name'];
|
||||
}
|
||||
}
|
||||
$services[$service['id']] = $service['name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '<td class="sla_list_service_col">';
|
||||
echo html_print_select(
|
||||
|
@ -3617,11 +3774,18 @@ $(document).ready (function () {
|
|||
$("#checkbox-checkbox_show_resume").change(function(){
|
||||
if($(this).is(":checked")){
|
||||
$("#row_select_fields2").show();
|
||||
$("#row_select_fields3").show();
|
||||
}
|
||||
else{
|
||||
$("#row_select_fields2").hide();
|
||||
$("#row_select_fields3").hide();
|
||||
}
|
||||
});
|
||||
|
||||
$("#checkbox-failover_mode").change(function(){
|
||||
if($(this).is(":checked")){
|
||||
$("#row_failover_type").show();
|
||||
}
|
||||
else{
|
||||
$("#row_failover_type").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -3915,10 +4079,13 @@ function deleteGeneralRow(id_row) {
|
|||
|
||||
function addSLARow() {
|
||||
var nameAgent = $("input[name=agent_sla]").val();
|
||||
var nameAgentFailover = $("input[name=agent_failover]").val();
|
||||
var idAgent = $("input[name=id_agent_sla]").val();
|
||||
var serverId = $("input[name=id_server]").val();
|
||||
var idModule = $("#id_agent_module_sla").val();
|
||||
var idModuleFailover = $("#id_agent_module_failover").val();
|
||||
var nameModule = $("#id_agent_module_sla :selected").text();
|
||||
var nameModuleFailover = $("#id_agent_module_failover :selected").text();
|
||||
var slaMin = $("input[name=sla_min]").val();
|
||||
var slaMax = $("input[name=sla_max]").val();
|
||||
var slaLimit = $("input[name=sla_limit]").val();
|
||||
|
@ -3979,10 +4146,63 @@ function addSLARow() {
|
|||
});
|
||||
}
|
||||
|
||||
if (nameAgentFailover != '') {
|
||||
//Truncate nameAgentFailover
|
||||
var params = [];
|
||||
params.push("truncate_text=1");
|
||||
params.push("text=" + nameAgentFailover);
|
||||
params.push("page=include/ajax/reporting.ajax");
|
||||
jQuery.ajax ({
|
||||
data: params.join ("&"),
|
||||
type: 'POST',
|
||||
url: action=
|
||||
<?php
|
||||
echo '"'.ui_get_full_url(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
).'"';
|
||||
?>
|
||||
+ "/ajax.php",
|
||||
async: false,
|
||||
timeout: 10000,
|
||||
success: function (data) {
|
||||
nameAgentFailover = data;
|
||||
}
|
||||
});
|
||||
|
||||
//Truncate nameModuleFailover
|
||||
var params = [];
|
||||
params.push("truncate_text=1");
|
||||
params.push("text=" + nameModuleFailover);
|
||||
params.push("page=include/ajax/reporting.ajax");
|
||||
jQuery.ajax ({
|
||||
data: params.join ("&"),
|
||||
type: 'POST',
|
||||
url: action=
|
||||
<?php
|
||||
echo '"'.ui_get_full_url(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
).'"';
|
||||
?>
|
||||
+ "/ajax.php",
|
||||
async: false,
|
||||
timeout: 10000,
|
||||
success: function (data) {
|
||||
nameModuleFailover = data;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var params = [];
|
||||
params.push("add_sla=1");
|
||||
params.push("id=" + $("input[name=id_item]").val());
|
||||
params.push("id_module=" + idModule);
|
||||
params.push("id_module_failover=" + idModuleFailover);
|
||||
params.push("sla_min=" + slaMin);
|
||||
params.push("sla_max=" + slaMax);
|
||||
params.push("sla_limit=" + slaLimit);
|
||||
|
@ -4015,6 +4235,8 @@ function addSLARow() {
|
|||
$("#row", row).attr('id', 'sla_' + data['id']);
|
||||
$(".agent_name", row).html(nameAgent);
|
||||
$(".module_name", row).html(nameModule);
|
||||
$(".agent_name_failover", row).html(nameAgentFailover);
|
||||
$(".module_name_failover", row).html(nameModuleFailover);
|
||||
$(".service_name", row).html(serviceName);
|
||||
$(".sla_min", row).html(slaMin);
|
||||
$(".sla_max", row).html(slaMax);
|
||||
|
@ -4025,14 +4247,22 @@ function addSLARow() {
|
|||
);
|
||||
$("#list_sla").append($(row).html());
|
||||
$("input[name=id_agent_sla]").val('');
|
||||
$("input[name=id_agent_failover]").val('');
|
||||
$("input[name=id_server]").val('');
|
||||
$("input[name=agent_sla]").val('');
|
||||
$("input[name=agent_failover]").val('');
|
||||
$("#id_agent_module_sla").empty();
|
||||
$("#id_agent_module_sla").attr('disabled', 'true');
|
||||
$("#id_agent_module_sla").append(
|
||||
$("<option></option>")
|
||||
.attr ("value", 0)
|
||||
.html ($("#module_sla_text").html()));
|
||||
$("#id_agent_module_failover").empty();
|
||||
$("#id_agent_module_failover").attr('disabled', 'true');
|
||||
$("#id_agent_module_failover").append(
|
||||
$("<option></option>")
|
||||
.attr ("value", 0)
|
||||
.html ($("#module_sla_text").html()));
|
||||
$("input[name=sla_min]").val('');
|
||||
$("input[name=sla_max]").val('');
|
||||
$("input[name=sla_limit]").val('');
|
||||
|
@ -4161,7 +4391,6 @@ function addGeneralRow() {
|
|||
success: function (data) {
|
||||
if (data['correct']) {
|
||||
row = $("#general_template").clone();
|
||||
|
||||
$("#row", row).show();
|
||||
$("#row", row).attr('id', 'general_' + data['id']);
|
||||
$(".agent_name", row).html(nameAgent);
|
||||
|
@ -4211,6 +4440,8 @@ function chooseType() {
|
|||
$("#row_custom_example").hide();
|
||||
$("#row_group").hide();
|
||||
$("#row_current_month").hide();
|
||||
$("#row_failover_mode").hide();
|
||||
$("#row_failover_type").hide();
|
||||
$("#row_working_time").hide();
|
||||
$("#row_only_display_wrong").hide();
|
||||
$("#row_combo_module").hide();
|
||||
|
@ -4384,6 +4615,11 @@ function chooseType() {
|
|||
$("#row_working_time").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
$("#row_priority_mode").show();
|
||||
$("#row_failover_mode").show();
|
||||
var failover_checked = $("input[name='failover_mode']").prop("checked");
|
||||
if(failover_checked){
|
||||
$("#row_failover_type").show();
|
||||
}
|
||||
break;
|
||||
|
||||
case 'module_histogram_graph':
|
||||
|
|
|
@ -1441,6 +1441,14 @@ switch ($action) {
|
|||
$values['show_graph'] = get_parameter(
|
||||
'combo_graph_options'
|
||||
);
|
||||
$values['failover_mode'] = get_parameter(
|
||||
'failover_mode',
|
||||
0
|
||||
);
|
||||
$values['failover_type'] = get_parameter(
|
||||
'failover_type',
|
||||
REPORT_FAILOVER_TYPE_NORMAL
|
||||
);
|
||||
|
||||
$good_format = true;
|
||||
break;
|
||||
|
@ -2398,6 +2406,16 @@ switch ($action) {
|
|||
|
||||
$values['current_month'] = get_parameter('current_month');
|
||||
|
||||
$values['failover_mode'] = get_parameter(
|
||||
'failover_mode',
|
||||
0
|
||||
);
|
||||
|
||||
$values['failover_type'] = get_parameter(
|
||||
'failover_type',
|
||||
REPORT_FAILOVER_TYPE_NORMAL
|
||||
);
|
||||
|
||||
$style = [];
|
||||
$style['show_in_same_row'] = get_parameter(
|
||||
'show_in_same_row',
|
||||
|
|
|
@ -54,7 +54,7 @@ $buttons['visual_console_favorite'] = [
|
|||
'text' => '<a href="'.$url_visual_console_favorite.'">'.html_print_image('images/list.png', true, ['title' => __('Visual Favourite Console')]).'</a>',
|
||||
];
|
||||
|
||||
if ($is_enterprise && $vconsoles_manage) {
|
||||
if ($is_enterprise !== ENTERPRISE_NOT_HOOK && $vconsoles_manage) {
|
||||
$buttons['visual_console_template'] = [
|
||||
'active' => false,
|
||||
'text' => '<a href="'.$url_visual_console_template.'">'.html_print_image('images/templates.png', true, ['title' => __('Visual Console Template')]).'</a>',
|
||||
|
|
|
@ -159,6 +159,16 @@ $table_styles->data[$row][1] = html_print_select(
|
|||
$table_styles->data[$row][1] .= ' '.html_print_button(__('View'), 'status_set_preview', false, '', 'class="sub camera logo_preview"', true);
|
||||
$row++;
|
||||
|
||||
// Divs to show icon status Colours (Default)
|
||||
$icon_unknown_ball = ui_print_status_image(STATUS_AGENT_UNKNOWN_BALL, '', true);
|
||||
$icon_unknown = ui_print_status_image(STATUS_AGENT_UNKNOWN, '', true);
|
||||
$icon_ok_ball = ui_print_status_image(STATUS_AGENT_OK_BALL, '', true);
|
||||
$icon_ok = ui_print_status_image(STATUS_AGENT_OK, '', true);
|
||||
$icon_warning_ball = ui_print_status_image(STATUS_AGENT_WARNING_BALL, '', true);
|
||||
$icon_warning = ui_print_status_image(STATUS_AGENT_WARNING, '', true);
|
||||
$icon_bad_ball = ui_print_status_image(STATUS_AGENT_CRITICAL_BALL, '', true);
|
||||
$icon_bad = ui_print_status_image(STATUS_AGENT_CRITICAL, '', true);
|
||||
// End - Divs to show icon status Colours (Default)
|
||||
$table_styles->data[$row][0] = __('Login background').ui_print_help_tip(__('You can place your custom images into the folder images/backgrounds/'), true);
|
||||
$backgrounds_list_jpg = list_files('images/backgrounds', 'jpg', 1, 0);
|
||||
$backgrounds_list_gif = list_files('images/backgrounds', 'gif', 1, 0);
|
||||
|
@ -1635,6 +1645,17 @@ $("#button-status_set_preview").click (function (e) {
|
|||
$icon_bad_ball = $("<img src=\"" + icon_path + "agent_critical_ball.png\">");
|
||||
$icon_bad = $("<img src=\"" + icon_path + "agent_critical.png\">");
|
||||
|
||||
if(icon_dir == 'default'){
|
||||
$icon_unknown_ball = '<?php echo $icon_unknown_ball; ?>';
|
||||
$icon_unknown = '<?php echo $icon_unknown; ?>';
|
||||
$icon_ok_ball = '<?php echo $icon_ok_ball; ?>';
|
||||
$icon_ok = '<?php echo $icon_ok; ?>';
|
||||
$icon_warning_ball = '<?php echo $icon_warning_ball; ?>';
|
||||
$icon_warning = '<?php echo $icon_warning; ?>';
|
||||
$icon_bad_ball = '<?php echo $icon_bad_ball; ?>';
|
||||
$icon_bad = '<?php echo $icon_bad; ?>';
|
||||
}
|
||||
|
||||
try {
|
||||
$dialog
|
||||
.hide()
|
||||
|
|
|
@ -137,6 +137,8 @@ if ($new_user && $config['admin_can_add_user']) {
|
|||
$user_info['not_login'] = false;
|
||||
$user_info['strict_acl'] = false;
|
||||
$user_info['session_time'] = 0;
|
||||
$user_info['middlename'] = 0;
|
||||
|
||||
if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
||||
$user_info['id_skin'] = '';
|
||||
}
|
||||
|
@ -218,6 +220,7 @@ if ($create_user) {
|
|||
}
|
||||
|
||||
$values['not_login'] = (bool) get_parameter('not_login', false);
|
||||
$values['middlename'] = get_parameter('middlename', 0);
|
||||
$values['strict_acl'] = (bool) get_parameter('strict_acl', false);
|
||||
$values['session_time'] = (int) get_parameter('session_time', 0);
|
||||
|
||||
|
@ -317,12 +320,13 @@ if ($update_user) {
|
|||
$values['timezone'] = (string) get_parameter('timezone');
|
||||
$values['default_event_filter'] = (int) get_parameter('default_event_filter');
|
||||
$values['default_custom_view'] = (int) get_parameter('default_custom_view');
|
||||
// eHorus user level conf
|
||||
|
||||
// eHorus user level conf.
|
||||
$values['ehorus_user_level_enabled'] = (bool) get_parameter('ehorus_user_level_enabled', false);
|
||||
$values['ehorus_user_level_user'] = (string) get_parameter('ehorus_user_level_user');
|
||||
$values['ehorus_user_level_pass'] = (string) get_parameter('ehorus_user_level_pass');
|
||||
|
||||
|
||||
$values['middlename'] = get_parameter('middlename', 0);
|
||||
|
||||
$dashboard = get_parameter('dashboard', '');
|
||||
$visual_console = get_parameter('visual_console', '');
|
||||
|
@ -869,13 +873,27 @@ foreach ($event_filter_data as $filter) {
|
|||
$table->data[16][0] = __('Default event filter');
|
||||
$table->data[16][1] = html_print_select($event_filter, 'default_event_filter', $user_info['default_event_filter'], '', '', __('None'), true, false, false);
|
||||
|
||||
$table->data[17][0] = __('Disabled newsletter');
|
||||
if ($user_info['middlename'] >= 0) {
|
||||
$middlename = false;
|
||||
} else {
|
||||
$middlename = true;
|
||||
}
|
||||
|
||||
$table->data[17][1] = html_print_checkbox(
|
||||
'middlename',
|
||||
-1,
|
||||
$middlename,
|
||||
true
|
||||
);
|
||||
|
||||
if ($config['ehorus_user_level_conf']) {
|
||||
$table->data[17][0] = __('eHorus user acces enabled');
|
||||
$table->data[17][1] = html_print_checkbox('ehorus_user_level_enabled', 1, $user_info['ehorus_user_level_enabled'], true);
|
||||
$table->data[18][0] = __('eHorus user');
|
||||
$table->data[19][0] = __('eHorus password');
|
||||
$table->data[18][1] = html_print_input_text('ehorus_user_level_user', $user_info['ehorus_user_level_user'], '', 15, 45, true);
|
||||
$table->data[19][1] = html_print_input_password('ehorus_user_level_pass', io_output_password($user_info['ehorus_user_level_pass']), '', 15, 45, true);
|
||||
$table->data[18][0] = __('eHorus user acces enabled');
|
||||
$table->data[18][1] = html_print_checkbox('ehorus_user_level_enabled', 1, $user_info['ehorus_user_level_enabled'], true);
|
||||
$table->data[19][0] = __('eHorus user');
|
||||
$table->data[20][0] = __('eHorus password');
|
||||
$table->data[19][1] = html_print_input_text('ehorus_user_level_user', $user_info['ehorus_user_level_user'], '', 15, 45, true);
|
||||
$table->data[20][1] = html_print_input_password('ehorus_user_level_pass', io_output_password($user_info['ehorus_user_level_pass']), '', 15, 45, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -501,41 +501,60 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[5] = __('Pending');
|
||||
}
|
||||
|
||||
if ($task['id_recon_script'] == 0) {
|
||||
// Internal discovery task.
|
||||
switch ($task['type']) {
|
||||
case DISCOVERY_CLOUD_AWS_RDS:
|
||||
// Discovery Applications MySQL.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
true,
|
||||
['title' => __('Discovery Cloud RDS')]
|
||||
).' ';
|
||||
$data[6] .= __('Discovery.Cloud.Aws.RDS');
|
||||
break;
|
||||
switch ($task['type']) {
|
||||
case DISCOVERY_CLOUD_AZURE_COMPUTE:
|
||||
// Discovery Applications MySQL.
|
||||
$data[6] = html_print_image(
|
||||
'images/plugin.png',
|
||||
true,
|
||||
['title' => __('Discovery Cloud Azure Compute')]
|
||||
).' ';
|
||||
$data[6] .= __('Cloud.Azure.Compute');
|
||||
break;
|
||||
|
||||
case DISCOVERY_APP_MYSQL:
|
||||
// Discovery Applications MySQL.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
true,
|
||||
['title' => __('Discovery Applications MySQL')]
|
||||
).' ';
|
||||
$data[6] .= __('Discovery.App.MySQL');
|
||||
break;
|
||||
case DISCOVERY_CLOUD_AWS_EC2:
|
||||
// Discovery Applications MySQL.
|
||||
$data[6] = html_print_image(
|
||||
'images/plugin.png',
|
||||
true,
|
||||
['title' => __('Discovery Cloud AWS EC2')]
|
||||
).' ';
|
||||
$data[6] .= __('Cloud.AWS.EC2');
|
||||
break;
|
||||
|
||||
case DISCOVERY_APP_ORACLE:
|
||||
// Discovery Applications Oracle.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
true,
|
||||
['title' => __('Discovery Applications Oracle')]
|
||||
).' ';
|
||||
$data[6] .= __('Discovery.App.Oracle');
|
||||
break;
|
||||
case DISCOVERY_CLOUD_AWS_RDS:
|
||||
// Discovery Cloud RDS.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
true,
|
||||
['title' => __('Discovery Cloud RDS')]
|
||||
).' ';
|
||||
$data[6] .= __('Discovery.Cloud.Aws.RDS');
|
||||
break;
|
||||
|
||||
case DISCOVERY_HOSTDEVICES:
|
||||
default:
|
||||
case DISCOVERY_APP_MYSQL:
|
||||
// Discovery Applications MySQL.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
true,
|
||||
['title' => __('Discovery Applications MySQL')]
|
||||
).' ';
|
||||
$data[6] .= __('Discovery.App.MySQL');
|
||||
break;
|
||||
|
||||
case DISCOVERY_APP_ORACLE:
|
||||
// Discovery Applications Oracle.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
true,
|
||||
['title' => __('Discovery Applications Oracle')]
|
||||
).' ';
|
||||
$data[6] .= __('Discovery.App.Oracle');
|
||||
break;
|
||||
|
||||
case DISCOVERY_HOSTDEVICES:
|
||||
default:
|
||||
if ($task['id_recon_script'] == 0) {
|
||||
// Discovery NetScan.
|
||||
$data[6] = html_print_image(
|
||||
'images/network.png',
|
||||
|
@ -550,15 +569,15 @@ class DiscoveryTaskList extends Wizard
|
|||
} else {
|
||||
$data[6] .= __('Discovery.NetScan');
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// APP recon task.
|
||||
$data[6] = html_print_image(
|
||||
'images/plugin.png',
|
||||
true
|
||||
).' ';
|
||||
$data[6] .= $recon_script_name;
|
||||
} else {
|
||||
// APP or external script recon task.
|
||||
$data[6] = html_print_image(
|
||||
'images/plugin.png',
|
||||
true
|
||||
).' ';
|
||||
$data[6] .= $recon_script_name;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ($task['status'] <= 0 || $task['status'] > 100) {
|
||||
|
@ -699,7 +718,16 @@ class DiscoveryTaskList extends Wizard
|
|||
if ($script !== false) {
|
||||
switch ($script['type']) {
|
||||
case DISCOVERY_SCRIPT_CLOUD_AWS:
|
||||
return 'wiz=cloud&mode=amazonws&ki='.$task['auth_strings'].'&page=1';
|
||||
switch ($task['type']) {
|
||||
case DISCOVERY_CLOUD_AWS_EC2:
|
||||
return 'wiz=cloud&mode=amazonws&ki='.$task['auth_strings'].'&page=1';
|
||||
|
||||
case DISCOVERY_CLOUD_AZURE_COMPUTE:
|
||||
return 'wiz=cloud&mode=azure&ki='.$task['auth_strings'].'&sub=compute&page=0';
|
||||
|
||||
default:
|
||||
return 'wiz=cloud';
|
||||
}
|
||||
|
||||
case DISCOVERY_SCRIPT_APP_VMWARE:
|
||||
return 'wiz=app&mode=vmware&page=0';
|
||||
|
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 246 B |
Before Width: | Height: | Size: 249 B |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.3 KiB |
|
@ -1139,6 +1139,7 @@ if ($get_extended_event) {
|
|||
|
||||
$dialog_page = get_parameter('dialog_page', 'general');
|
||||
$filter = get_parameter('filter', []);
|
||||
$similar_ids = get_parameter('similar_ids', $event_id);
|
||||
$group_rep = $filter['group_rep'];
|
||||
$event_rep = $event['event_rep'];
|
||||
$timestamp_first = $event['min_timestamp'];
|
||||
|
@ -1146,6 +1147,8 @@ if ($get_extended_event) {
|
|||
$server_id = $event['server_id'];
|
||||
$comments = $event['comments'];
|
||||
|
||||
$event['similar_ids'] = $similar_ids;
|
||||
|
||||
if (!isset($comments)) {
|
||||
$comments = $event['user_comment'];
|
||||
}
|
||||
|
|
|
@ -472,11 +472,17 @@ if (check_login()) {
|
|||
$result = false;
|
||||
$id_module_a = (int) get_parameter('id_module_a');
|
||||
$id_module_b = (int) get_parameter('id_module_b');
|
||||
$type = (string) get_parameter('relation_type');
|
||||
|
||||
if ($id_module_a < 1) {
|
||||
$name_module_a = get_parameter('name_module_a', '');
|
||||
if ($name_module_a) {
|
||||
$id_module_a = (int) db_get_value('id_agente_modulo', 'tagente_modulo', 'nombre', $name_module_a);
|
||||
$id_module_a = (int) db_get_value(
|
||||
'id_agente_modulo',
|
||||
'tagente_modulo',
|
||||
'nombre',
|
||||
$name_module_a
|
||||
);
|
||||
} else {
|
||||
echo json_encode($result);
|
||||
return;
|
||||
|
@ -486,7 +492,12 @@ if (check_login()) {
|
|||
if ($id_module_b < 1) {
|
||||
$name_module_b = get_parameter('name_module_b', '');
|
||||
if ($name_module_b) {
|
||||
$id_module_b = (int) db_get_value('id_agente_modulo', 'tagente_modulo', 'nombre', $name_module_b);
|
||||
$id_module_b = (int) db_get_value(
|
||||
'id_agente_modulo',
|
||||
'tagente_modulo',
|
||||
'nombre',
|
||||
$name_module_b
|
||||
);
|
||||
} else {
|
||||
echo json_encode($result);
|
||||
return;
|
||||
|
@ -494,7 +505,7 @@ if (check_login()) {
|
|||
}
|
||||
|
||||
if ($id_module_a > 0 && $id_module_b > 0) {
|
||||
$result = modules_add_relation($id_module_a, $id_module_b);
|
||||
$result = modules_add_relation($id_module_a, $id_module_b, $type);
|
||||
}
|
||||
|
||||
echo json_encode($result);
|
||||
|
@ -1011,7 +1022,7 @@ if (check_login()) {
|
|||
$title
|
||||
);
|
||||
|
||||
$data[5] = ui_print_module_status($module['estado'], $title, true, false, true);
|
||||
$data[5] = ui_print_status_image($status, $title, true);
|
||||
if (!$show_context_help_first_time) {
|
||||
$show_context_help_first_time = true;
|
||||
|
||||
|
|
|
@ -65,6 +65,7 @@ if ($add_sla) {
|
|||
$sla_max = get_parameter('sla_max', 0);
|
||||
$sla_min = get_parameter('sla_min', 0);
|
||||
$server_id = (int) get_parameter('server_id', 0);
|
||||
$id_module_failover = (int) get_parameter('id_module_failover', 0);
|
||||
|
||||
$id_service = (int) get_parameter('id_service');
|
||||
if (empty($id_module) && !empty($id_service)) {
|
||||
|
@ -85,12 +86,13 @@ if ($add_sla) {
|
|||
$result = db_process_sql_insert(
|
||||
'treport_content_sla_combined',
|
||||
[
|
||||
'id_report_content' => $id,
|
||||
'id_agent_module' => $id_module,
|
||||
'sla_max' => $sla_max,
|
||||
'sla_min' => $sla_min,
|
||||
'sla_limit' => $sla_limit,
|
||||
'server_name' => $connection['server_name'],
|
||||
'id_report_content' => $id,
|
||||
'id_agent_module' => $id_module,
|
||||
'id_agent_module_failover' => $id_module_failover,
|
||||
'sla_max' => $sla_max,
|
||||
'sla_min' => $sla_min,
|
||||
'sla_limit' => $sla_limit,
|
||||
'server_name' => $connection['server_name'],
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
@ -163,6 +163,7 @@ if ($install_package) {
|
|||
unlink($files_copied);
|
||||
}
|
||||
|
||||
|
||||
if (file_exists($package)) {
|
||||
if ($files_h = fopen($files_total, 'r')) {
|
||||
while ($line = stream_get_line($files_h, 65535, "\n")) {
|
||||
|
|
|
@ -1976,7 +1976,7 @@ class ConsoleSupervisor
|
|||
'id_user',
|
||||
$config['id_user']
|
||||
);
|
||||
if (license_free() === true
|
||||
if (!$config['disabled_newsletter']
|
||||
&& $newsletter != 1
|
||||
&& $login === false
|
||||
) {
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC190702';
|
||||
$build_version = 'PC190712';
|
||||
$pandora_version = 'v7.0NG.736';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
|
|
@ -527,14 +527,6 @@ define('NODE_MODULE', 1);
|
|||
define('NODE_PANDORA', 2);
|
||||
define('NODE_GENERIC', 3);
|
||||
|
||||
// SAML attributes constants.
|
||||
define('SAML_ROLE_AND_TAG', 'eduPersonEntitlement');
|
||||
define('SAML_USER_DESC', 'commonName');
|
||||
define('SAML_ID_USER_IN_PANDORA', 'eduPersonTargetedId');
|
||||
define('SAML_GROUP_IN_PANDORA', 'schacHomeOrganization');
|
||||
define('SAML_MAIL_IN_PANDORA', 'mail');
|
||||
define('SAML_DEFAULT_PROFILES_AND_TAGS_FORM', 'urn:mace:rediris.es:entitlement:monitoring:');
|
||||
|
||||
// Other constants.
|
||||
define('STATUS_OK', 0);
|
||||
define('STATUS_ERROR', 1);
|
||||
|
@ -590,6 +582,7 @@ define('DISCOVERY_APP_MYSQL', 4);
|
|||
define('DISCOVERY_APP_ORACLE', 5);
|
||||
define('DISCOVERY_CLOUD_AWS_EC2', 6);
|
||||
define('DISCOVERY_CLOUD_AWS_RDS', 7);
|
||||
define('DISCOVERY_CLOUD_AZURE_COMPUTE', 8);
|
||||
|
||||
|
||||
// Discovery types matching definition.
|
||||
|
@ -602,6 +595,7 @@ define('DISCOVERY_SCRIPT_IPAM_RECON', 3);
|
|||
define('DISCOVERY_SCRIPT_IPMI_RECON', 4);
|
||||
|
||||
// Discovery task descriptions.
|
||||
define('CLOUDWIZARD_AZURE_DESCRIPTION', 'Discovery.Cloud.Azure.Compute');
|
||||
define('CLOUDWIZARD_AWS_DESCRIPTION', 'Discovery.Cloud.AWS.EC2');
|
||||
define('CLOUDWIZARD_VMWARE_DESCRIPTION', 'Discovery.App.VMware');
|
||||
|
||||
|
|
|
@ -1531,7 +1531,7 @@ function agents_get_alias($id_agent, $case='none')
|
|||
return $cache[$case][$id_agent];
|
||||
}
|
||||
|
||||
if ($config['dbconnection_cache'] == null && is_metaconsole()) {
|
||||
if (is_metaconsole()) {
|
||||
$alias = (string) db_get_value('alias', 'tmetaconsole_agent', 'id_tagente', (int) $id_agent);
|
||||
} else {
|
||||
$alias = (string) db_get_value('alias', 'tagente', 'id_agente', (int) $id_agent);
|
||||
|
@ -1554,7 +1554,13 @@ function agents_get_alias($id_agent, $case='none')
|
|||
|
||||
function agents_get_alias_by_name($name, $case='none')
|
||||
{
|
||||
$alias = (string) db_get_value('alias', 'tagente', 'nombre', $name);
|
||||
if (is_metaconsole()) {
|
||||
$table = 'tmetaconsole_agent';
|
||||
} else {
|
||||
$table = 'tagente';
|
||||
}
|
||||
|
||||
$alias = (string) db_get_value('alias', $table, 'nombre', $name);
|
||||
|
||||
switch ($case) {
|
||||
case 'upper':
|
||||
|
@ -3385,11 +3391,22 @@ function agents_get_image_status($status)
|
|||
*/
|
||||
function agents_get_status_animation($up=true)
|
||||
{
|
||||
global $config;
|
||||
|
||||
// Gif with black background or white background
|
||||
if ($config['style'] === 'pandora_black') {
|
||||
$heartbeat_green = 'images/heartbeat_green_black.gif';
|
||||
$heartbeat_red = 'images/heartbeat_red_black.gif';
|
||||
} else {
|
||||
$heartbeat_green = 'images/heartbeat_green.gif';
|
||||
$heartbeat_red = 'images/heartbeat_red.gif';
|
||||
}
|
||||
|
||||
switch ($up) {
|
||||
case true:
|
||||
default:
|
||||
return html_print_image(
|
||||
'images/heartbeat_green.gif',
|
||||
$heartbeat_green,
|
||||
true,
|
||||
[
|
||||
'width' => '170',
|
||||
|
@ -3399,7 +3416,7 @@ function agents_get_status_animation($up=true)
|
|||
|
||||
case false:
|
||||
return html_print_image(
|
||||
'images/heartbeat_red.gif',
|
||||
$heartbeat_red,
|
||||
true,
|
||||
[
|
||||
'width' => '170',
|
||||
|
|
|
@ -15059,17 +15059,18 @@ function remove_agent_from_policy($id_policy, $use_agent_name, $params)
|
|||
if (is_metaconsole()) {
|
||||
if ($use_agent_name === false) {
|
||||
$id_node = $params[1];
|
||||
$id_agent = db_get_value_filter('id_agente', 'tmetaconsole_agent', ['id_tagente' => $params[0], 'id_tmetaconsole_setup' => $id_node]);
|
||||
$id_agent = $params[0];
|
||||
} else {
|
||||
$id_agent = db_get_value_filter('id_agente', 'tmetaconsole_agent', ['nombre' => $params[0]]);
|
||||
$id_node = db_get_value_filter('id_tmetaconsole_setup', 'tmetaconsole_agent', ['nombre' => $params[0]]);
|
||||
$id_agent = db_get_value_filter('id_tagente', 'tmetaconsole_agent', ['nombre' => $params[0]]);
|
||||
}
|
||||
|
||||
$agent = db_get_row_filter('tmetaconsole_agent', ['id_agente' => $id_agent]);
|
||||
$agent = db_get_row_filter('tmetaconsole_agent', ['id_tagente' => $id_agent, 'id_tmetaconsole_setup' => $id_node]);
|
||||
}
|
||||
|
||||
$policy = policies_get_policy($id_policy, false, false);
|
||||
|
||||
$policy_agent = db_get_row_filter('tpolicy_agents', ['id_policy' => $id_policy, 'id_agent' => $id_agent]);
|
||||
$policy_agent = (is_metaconsole()) ? db_get_row_filter('tpolicy_agents', ['id_policy' => $id_policy, 'id_agent' => $id_agent, 'id_node' => $id_node]) : db_get_row_filter('tpolicy_agents', ['id_policy' => $id_policy, 'id_agent' => $id_agent]);
|
||||
|
||||
if (empty($policy)) {
|
||||
returnError('error_policy', __('This policy does not exist.'));
|
||||
|
|
|
@ -403,6 +403,10 @@ function config_update_config()
|
|||
$error_update[] = __('Enable Update Manager');
|
||||
}
|
||||
|
||||
if (!config_update_value('disabled_newsletter', get_parameter('disabled_newsletter'))) {
|
||||
$error_update[] = __('Disabled newsletter');
|
||||
}
|
||||
|
||||
if (!config_update_value('ipam_ocuppied_critical_treshold', get_parameter('ipam_ocuppied_critical_treshold'))) {
|
||||
$error_update[] = __('Ipam Ocuppied Manager Critical');
|
||||
}
|
||||
|
@ -660,6 +664,42 @@ function config_update_config()
|
|||
$error_update[] = __('Saml path');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_source', get_parameter('saml_source'))) {
|
||||
$error_update[] = __('Saml source');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_user_id', get_parameter('saml_user_id'))) {
|
||||
$error_update[] = __('Saml user id parameter');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_mail', get_parameter('saml_mail'))) {
|
||||
$error_update[] = __('Saml mail parameter');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_group_name', get_parameter('saml_group_name'))) {
|
||||
$error_update[] = __('Saml group name parameter');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_attr_type', (bool) get_parameter('saml_attr_type'))) {
|
||||
$error_update[] = __('Saml attr type parameter');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_profiles_and_tags', get_parameter('saml_profiles_and_tags'))) {
|
||||
$error_update[] = __('Saml profiles and tags parameter');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_profile', get_parameter('saml_profile'))) {
|
||||
$error_update[] = __('Saml profile parameters');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_tag', get_parameter('saml_tag'))) {
|
||||
$error_update[] = __('Saml tag parameter');
|
||||
}
|
||||
|
||||
if (!config_update_value('saml_profile_tag_separator', get_parameter('saml_profile_tag_separator'))) {
|
||||
$error_update[] = __('Saml profile and tag separator');
|
||||
}
|
||||
|
||||
if (!config_update_value('double_auth_enabled', get_parameter('double_auth_enabled'))) {
|
||||
$error_update[] = __('Double authentication');
|
||||
}
|
||||
|
@ -1695,6 +1735,10 @@ function config_process_config()
|
|||
config_update_value('enable_update_manager', 1);
|
||||
}
|
||||
|
||||
if (!isset($config['disabled_newsletter'])) {
|
||||
config_update_value('disabled_newsletter', 0);
|
||||
}
|
||||
|
||||
if (!isset($config['ipam_ocuppied_critical_treshold'])) {
|
||||
config_update_value('ipam_ocuppied_critical_treshold', 90);
|
||||
}
|
||||
|
@ -2372,6 +2416,42 @@ function config_process_config()
|
|||
config_update_value('saml_path', '/opt/');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_source'])) {
|
||||
config_update_value('saml_source', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_user_id'])) {
|
||||
config_update_value('saml_user_id', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_mail'])) {
|
||||
config_update_value('saml_mail', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_group_name'])) {
|
||||
config_update_value('saml_group_name', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_attr_type'])) {
|
||||
config_update_value('saml_attr_type', false);
|
||||
}
|
||||
|
||||
if (!isset($config['saml_profiles_and_tags'])) {
|
||||
config_update_value('saml_profiles_and_tags', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_profile'])) {
|
||||
config_update_value('saml_profile', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_tag'])) {
|
||||
config_update_value('saml_tag', '');
|
||||
}
|
||||
|
||||
if (!isset($config['saml_profile_tag_separator'])) {
|
||||
config_update_value('saml_profile_tag_separator', '');
|
||||
}
|
||||
|
||||
if (!isset($config['autoupdate'])) {
|
||||
config_update_value('autoupdate', 1);
|
||||
}
|
||||
|
@ -2887,7 +2967,17 @@ function config_prepare_session()
|
|||
|
||||
// Reset the expiration time upon page load //session_name() is default name of session PHPSESSID.
|
||||
if (isset($_COOKIE[session_name()])) {
|
||||
setcookie(session_name(), $_COOKIE[session_name()], (time() + $sessionCookieExpireTime), '/');
|
||||
$update_cookie = true;
|
||||
if (is_ajax()) {
|
||||
// Avoid session upadte while processing ajax responses - notifications.
|
||||
if (get_parameter('check_new_notifications', false)) {
|
||||
$update_cookie = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($update_cookie === true) {
|
||||
setcookie(session_name(), $_COOKIE[session_name()], (time() + $sessionCookieExpireTime), '/');
|
||||
}
|
||||
}
|
||||
|
||||
ini_set('post_max_size', $config['max_file_size']);
|
||||
|
|
|
@ -72,6 +72,10 @@ function credentials_get_all(
|
|||
throw new Exception('[credential_get_all] Fields must be an array or "count".');
|
||||
}
|
||||
|
||||
if (isset($filter['product']) && !empty($filter['product'])) {
|
||||
$sql_filters[] = sprintf(' AND cs.product = "%s"', $filter['product']);
|
||||
}
|
||||
|
||||
if (isset($filter['free_search']) && !empty($filter['free_search'])) {
|
||||
$sql_filters[] = vsprintf(
|
||||
' AND (lower(cs.username) like lower("%%%s%%")
|
||||
|
@ -163,7 +167,7 @@ function credentials_get_all(
|
|||
%s
|
||||
%s',
|
||||
join(',', $fields),
|
||||
join(',', $sql_filters),
|
||||
join(' ', $sql_filters),
|
||||
$order_by,
|
||||
$pagination
|
||||
);
|
||||
|
@ -292,8 +296,8 @@ function print_inputs($values=null)
|
|||
'script' => 'calculate_inputs()',
|
||||
'fields' => [
|
||||
// 'CUSTOM' => __('Custom'),
|
||||
'AWS' => __('Aws'),
|
||||
// 'AZURE' => __('Azure'),
|
||||
'AWS' => __('Aws'),
|
||||
'AZURE' => __('Azure'),
|
||||
// 'GOOGLE' => __('Google'),
|
||||
],
|
||||
'selected' => $values['product'],
|
||||
|
@ -319,7 +323,7 @@ function print_inputs($values=null)
|
|||
|
||||
case 'AZURE':
|
||||
$user_label = __('Account ID');
|
||||
$pass_label = __('Password');
|
||||
$pass_label = __('Application secret');
|
||||
$extra_1_label = __('Tenant or domain name');
|
||||
$extra_2_label = __('Subscription id');
|
||||
break;
|
||||
|
@ -358,7 +362,7 @@ function print_inputs($values=null)
|
|||
'label' => $extra_1_label,
|
||||
'name' => 'extra_1',
|
||||
'input_class' => 'flex-row',
|
||||
'type' => 'password',
|
||||
'type' => 'text',
|
||||
'value' => $values['extra_1'],
|
||||
'return' => true,
|
||||
]
|
||||
|
@ -371,7 +375,7 @@ function print_inputs($values=null)
|
|||
'label' => $extra_2_label,
|
||||
'name' => 'extra_2',
|
||||
'input_class' => 'flex-row',
|
||||
'type' => 'password',
|
||||
'type' => 'text',
|
||||
'value' => $values['extra_2'],
|
||||
'return' => true,
|
||||
'display' => $extra2,
|
||||
|
|
|
@ -1687,7 +1687,7 @@ function events_change_status(
|
|||
$ack_user = $config['id_user'];
|
||||
} else {
|
||||
$acl_utimestamp = 0;
|
||||
$ack_user = '';
|
||||
$ack_user = $config['id_user'];
|
||||
}
|
||||
|
||||
switch ($new_status) {
|
||||
|
@ -4398,6 +4398,8 @@ function events_page_general($event)
|
|||
$data[1] = $user_owner;
|
||||
}
|
||||
|
||||
$table_general->cellclass[3][1] = 'general_owner';
|
||||
|
||||
$table_general->data[] = $data;
|
||||
|
||||
$data = [];
|
||||
|
@ -4465,6 +4467,8 @@ function events_page_general($event)
|
|||
$data[1] = '<i>'.__('N/A').'</i>';
|
||||
}
|
||||
|
||||
$table_general->cellclass[7][1] = 'general_status';
|
||||
|
||||
$table_general->data[] = $data;
|
||||
|
||||
$data = [];
|
||||
|
|
|
@ -2235,7 +2235,6 @@ function combined_graph_summatory_average(
|
|||
$data_array_pop[$key_reverse] = array_pop(
|
||||
$data_array_reverse[$key_reverse]
|
||||
);
|
||||
$count_data_array_reverse--;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2287,6 +2286,7 @@ function combined_graph_summatory_average(
|
|||
}
|
||||
|
||||
$count++;
|
||||
$count_data_array_reverse--;
|
||||
}
|
||||
|
||||
if ($summatory && isset($array_sum_reverse)
|
||||
|
|
|
@ -52,6 +52,9 @@ function menu_print_menu(&$menu)
|
|||
$sec2 = (string) get_parameter('sec2');
|
||||
if ($sec2 == 'operation/agentes/ver_agente') {
|
||||
$sec2 = 'godmode/agentes/configurar_agente';
|
||||
} else if ($sec2 == 'godmode/servers/discovery') {
|
||||
$wiz = (string) get_parameter('wiz');
|
||||
$sec2 = 'godmode/servers/discovery&wiz='.$wiz;
|
||||
} else {
|
||||
$sec2 = (string) get_parameter('sec2');
|
||||
}
|
||||
|
|
|
@ -383,7 +383,7 @@ function messages_get_count(
|
|||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT count(*) as "n" FROM (
|
||||
'SELECT count(distinct id_mensaje) as "n" FROM (
|
||||
SELECT
|
||||
tm.*,
|
||||
utimestamp_read > 0 as "read"
|
||||
|
|
|
@ -2308,32 +2308,67 @@ function modules_get_color_status($status)
|
|||
return COL_UNKNOWN;
|
||||
}
|
||||
|
||||
switch ($status) {
|
||||
case AGENT_MODULE_STATUS_NORMAL:
|
||||
case AGENT_STATUS_NORMAL:
|
||||
switch ((string) $status) {
|
||||
case (string) AGENT_MODULE_STATUS_NORMAL:
|
||||
case (string) AGENT_STATUS_NORMAL:
|
||||
case STATUS_MODULE_OK:
|
||||
case STATUS_AGENT_OK:
|
||||
case STATUS_ALERT_NOT_FIRED:
|
||||
case STATUS_SERVER_OK:
|
||||
case STATUS_MODULE_OK_BALL:
|
||||
case STATUS_AGENT_OK_BALL:
|
||||
case STATUS_ALERT_NOT_FIRED_BALL:
|
||||
return COL_NORMAL;
|
||||
|
||||
case AGENT_MODULE_STATUS_NOT_INIT:
|
||||
case AGENT_STATUS_NOT_INIT:
|
||||
case STATUS_MODULE_NO_DATA:
|
||||
case STATUS_AGENT_NOT_INIT:
|
||||
case STATUS_AGENT_NO_DATA:
|
||||
case STATUS_MODULE_NO_DATA_BALL:
|
||||
case STATUS_AGENT_NO_DATA_BALL:
|
||||
case STATUS_AGENT_NO_MONITORS_BALL:
|
||||
return COL_NOTINIT;
|
||||
|
||||
case AGENT_MODULE_STATUS_CRITICAL_BAD:
|
||||
case AGENT_STATUS_CRITICAL:
|
||||
case STATUS_MODULE_CRITICAL:
|
||||
case STATUS_AGENT_CRITICAL:
|
||||
case STATUS_MODULE_CRITICAL_BALL:
|
||||
case STATUS_AGENT_CRITICAL_BALL:
|
||||
return COL_CRITICAL;
|
||||
|
||||
case AGENT_MODULE_STATUS_WARNING:
|
||||
case AGENT_STATUS_WARNING:
|
||||
case STATUS_MODULE_WARNING:
|
||||
case STATUS_AGENT_WARNING:
|
||||
case STATUS_MODULE_WARNING_BALL:
|
||||
case STATUS_AGENT_WARNING_BALL:
|
||||
return COL_WARNING;
|
||||
|
||||
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
||||
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
||||
case AGENT_STATUS_ALERT_FIRED:
|
||||
case STATUS_ALERT_FIRED:
|
||||
case STATUS_ALERT_FIRED_BALL:
|
||||
return COL_ALERTFIRED;
|
||||
|
||||
case AGENT_MODULE_STATUS_UNKNOWN:
|
||||
case AGENT_STATUS_UNKNOWN:
|
||||
case STATUS_MODULE_UNKNOWN:
|
||||
case STATUS_AGENT_UNKNOWN:
|
||||
case STATUS_AGENT_DOWN:
|
||||
case STATUS_ALERT_DISABLED:
|
||||
case STATUS_MODULE_UNKNOWN_BALL:
|
||||
case STATUS_AGENT_UNKNOWN_BALL:
|
||||
case STATUS_AGENT_DOWN_BALL:
|
||||
case STATUS_ALERT_DISABLED_BALL:
|
||||
return COL_UNKNOWN;
|
||||
|
||||
case STATUS_SERVER_DOWN:
|
||||
case STATUS_SERVER_DOWN_BALL:
|
||||
return '#444';
|
||||
|
||||
default:
|
||||
// Ignored.
|
||||
break;
|
||||
|
@ -2596,7 +2631,7 @@ function modules_get_relations($params=[])
|
|||
}
|
||||
|
||||
$sql = 'SELECT DISTINCT tmr.id, tmr.module_a, tmr.module_b,
|
||||
tmr.disable_update
|
||||
tmr.disable_update, tmr.type
|
||||
FROM tmodule_relationship tmr,
|
||||
tagente_modulo tam,
|
||||
tagente ta,
|
||||
|
@ -2699,11 +2734,13 @@ function modules_relation_exists($id_module, $id_module_other=false)
|
|||
/**
|
||||
* Change the 'disabled_update' value of a relation row.
|
||||
*
|
||||
* @param int Relation id.
|
||||
* @param integer $id_module_a Id agent module a.
|
||||
* @param integer $id_module_b Id agent module b.
|
||||
* @param string $type Type direct or failover.
|
||||
*
|
||||
* @return boolean True if the 'disabled_update' changes to 1, false otherwise.
|
||||
*/
|
||||
function modules_add_relation($id_module_a, $id_module_b)
|
||||
function modules_add_relation($id_module_a, $id_module_b, $type='direct')
|
||||
{
|
||||
$result = false;
|
||||
|
||||
|
@ -2711,6 +2748,7 @@ function modules_add_relation($id_module_a, $id_module_b)
|
|||
$values = [
|
||||
'module_a' => $id_module_a,
|
||||
'module_b' => $id_module_b,
|
||||
'type' => $type,
|
||||
];
|
||||
$result = db_process_sql_insert('tmodule_relationship', $values);
|
||||
}
|
||||
|
|
|
@ -450,14 +450,26 @@ function networkmap_generate_dot(
|
|||
$nodes[$node_count] = $module;
|
||||
}
|
||||
} else {
|
||||
$have_relations_a = db_get_value('id', 'tmodule_relationship', 'module_a', $module['id_agente_modulo']);
|
||||
$have_relations_b = db_get_value('id', 'tmodule_relationship', 'module_b', $module['id_agente_modulo']);
|
||||
$sql_a = sprintf(
|
||||
'SELECT id
|
||||
FROM tmodule_relationship
|
||||
WHERE module_a = %d AND type = "direct"',
|
||||
$module['id_agente_modulo']
|
||||
);
|
||||
$sql_b = sprintf(
|
||||
'SELECT id
|
||||
FROM tmodule_relationship
|
||||
WHERE module_b = %d AND type = "direct"',
|
||||
$module['id_agente_modulo']
|
||||
);
|
||||
$have_relations_a = db_get_value_sql($sql_a);
|
||||
$have_relations_b = db_get_value_sql($sql_b);
|
||||
|
||||
if ($have_relations_a || $have_relations_b) {
|
||||
// Save node parent information to define edges later
|
||||
// Save node parent information to define edges later.
|
||||
$parents[$node_count] = $module['parent'] = $agent['id_node'];
|
||||
|
||||
// Add node
|
||||
// Add node.
|
||||
$nodes[$node_count] = $module;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,9 +107,15 @@ function html_do_report_info($report)
|
|||
{
|
||||
global $config;
|
||||
|
||||
if ($config['style'] === 'pandora_black') {
|
||||
$background_color = '#222';
|
||||
} else {
|
||||
$background_color = '#f5f5f5';
|
||||
}
|
||||
|
||||
$date_today = date($config['date_format']);
|
||||
|
||||
$html = '<div style="border: 1px dashed #999; padding: 10px 15px; background: #f5f5f5;margin-top:20px;margin-bottom:20px;"><table>
|
||||
$html = '<div style="border: 1px dashed #999; padding: 10px 15px; background: '.$background_color.';margin-top:20px;margin-bottom:20px;"><table>
|
||||
<tr>
|
||||
<td><b>'.__('Generated').': </b></td><td>'.$date_today.'</td>
|
||||
</tr>
|
||||
|
@ -3252,53 +3258,111 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
|
|||
|
||||
$tables_chart = '';
|
||||
|
||||
$table1 = new stdClass();
|
||||
$table1->width = '99%';
|
||||
$table1->data = [];
|
||||
$table1->size = [];
|
||||
$table1->size[0] = '10%';
|
||||
$table1->size[1] = '80%';
|
||||
$table1->size[2] = '5%';
|
||||
$table1->size[3] = '5%';
|
||||
foreach ($item['charts'] as $chart) {
|
||||
$checks_resume = '';
|
||||
$sla_value = '';
|
||||
if (reporting_sla_is_not_init_from_array($chart)) {
|
||||
$color = COL_NOTINIT;
|
||||
$sla_value = __('Not init');
|
||||
} else if (reporting_sla_is_ignored_from_array($chart)) {
|
||||
$color = COL_IGNORED;
|
||||
$sla_value = __('No data');
|
||||
} else {
|
||||
switch ($chart['sla_status']) {
|
||||
case REPORT_STATUS_ERR:
|
||||
$color = COL_CRITICAL;
|
||||
break;
|
||||
if (isset($item['failed']) === true && empty($item['failed']) === false) {
|
||||
$tables_chart .= $item['failed'];
|
||||
} else {
|
||||
foreach ($item['charts'] as $k_chart => $chart) {
|
||||
$checks_resume = '';
|
||||
$sla_value = '';
|
||||
if (reporting_sla_is_not_init_from_array($chart)) {
|
||||
$color = COL_NOTINIT;
|
||||
$sla_value = __('Not init');
|
||||
} else if (reporting_sla_is_ignored_from_array($chart)) {
|
||||
$color = COL_IGNORED;
|
||||
$sla_value = __('No data');
|
||||
} else {
|
||||
switch ($chart['sla_status']) {
|
||||
case REPORT_STATUS_ERR:
|
||||
$color = COL_CRITICAL;
|
||||
break;
|
||||
|
||||
case REPORT_STATUS_OK:
|
||||
$color = COL_NORMAL;
|
||||
break;
|
||||
case REPORT_STATUS_OK:
|
||||
$color = COL_NORMAL;
|
||||
break;
|
||||
|
||||
default:
|
||||
$color = COL_UNKNOWN;
|
||||
break;
|
||||
default:
|
||||
$color = COL_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
|
||||
$sla_value = sla_truncate(
|
||||
$chart['sla_value'],
|
||||
$config['graph_precision']
|
||||
).'%';
|
||||
$checks_resume = '('.$chart['checks_ok'].'/'.$chart['checks_total'].')';
|
||||
}
|
||||
|
||||
$sla_value = sla_truncate(
|
||||
$chart['sla_value'],
|
||||
$config['graph_precision']
|
||||
).'%';
|
||||
$checks_resume = '('.$chart['checks_ok'].'/'.$chart['checks_total'].')';
|
||||
}
|
||||
// Check failover availability report.
|
||||
if ($item['data'][$k_chart]['failover'] === '') {
|
||||
$table1 = new stdClass();
|
||||
$table1->width = '99%';
|
||||
$table1->data = [];
|
||||
$table1->size = [];
|
||||
$table1->size[0] = '10%';
|
||||
$table1->size[1] = '80%';
|
||||
$table1->size[2] = '5%';
|
||||
$table1->size[3] = '5%';
|
||||
$table1->data[0][0] = $chart['agent'].'<br />'.$chart['module'];
|
||||
$table1->data[0][1] = $chart['chart'];
|
||||
$table1->data[0][2] = "<span style = 'font: bold 2em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
$table1->data[0][3] = $checks_resume;
|
||||
$tables_chart .= html_print_table(
|
||||
$table1,
|
||||
true
|
||||
);
|
||||
} else {
|
||||
if ($item['data'][$k_chart]['failover'] === 'primary'
|
||||
|| $item['failover_type'] == REPORT_FAILOVER_TYPE_SIMPLE
|
||||
) {
|
||||
$table1 = new stdClass();
|
||||
$table1->width = '99%';
|
||||
$table1->data = [];
|
||||
$table1->size = [];
|
||||
$table1->size[0] = '10%';
|
||||
$table1->size[1] = '80%';
|
||||
$table1->size[2] = '5%';
|
||||
$table1->size[3] = '5%';
|
||||
}
|
||||
|
||||
$table1->data[0][0] = $chart['agent'].'<br />'.$chart['module'];
|
||||
$table1->data[0][1] = $chart['chart'];
|
||||
$table1->data[0][2] = "<span style = 'font: bold 2em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
$table1->data[0][3] = $checks_resume;
|
||||
$tables_chart .= html_print_table(
|
||||
$table1,
|
||||
true
|
||||
);
|
||||
$title = '';
|
||||
$checks_resume_text = $checks_resume;
|
||||
$sla_value_text = "<span style = 'font: bold 2em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
switch ($item['data'][$k_chart]['failover']) {
|
||||
case 'primary':
|
||||
$title = '<b>'.__('Primary').'</b>';
|
||||
$title .= '<br />'.$chart['agent'];
|
||||
$title .= '<br />'.$chart['module'];
|
||||
break;
|
||||
|
||||
case (preg_match('/failover.*/', $item['data'][$k_chart]['failover']) ? true : false):
|
||||
$title = '<b>'.__('Failover').'</b>';
|
||||
$title .= '<br />'.$chart['agent'];
|
||||
$title .= '<br />'.$chart['module'];
|
||||
break;
|
||||
|
||||
case 'result':
|
||||
default:
|
||||
$title = '<b>'.__('Result').'</b>';
|
||||
$sla_value_text = "<span style = 'font: bold 3em Arial, Sans-serif; color: ".$color."'>".$sla_value.'</span>';
|
||||
$checks_resume_text = '<span style = "font-size: 12pt;">';
|
||||
$checks_resume_text .= $checks_resume;
|
||||
$checks_resume_text .= '</span>';
|
||||
break;
|
||||
}
|
||||
|
||||
$table1->data[$item['data'][$k_chart]['failover']][0] = $title;
|
||||
$table1->data[$item['data'][$k_chart]['failover']][1] = $chart['chart'];
|
||||
$table1->data[$item['data'][$k_chart]['failover']][2] = $sla_value_text;
|
||||
$table1->data[$item['data'][$k_chart]['failover']][3] = $checks_resume_text;
|
||||
|
||||
if ($item['data'][$k_chart]['failover'] === 'result') {
|
||||
$tables_chart .= html_print_table(
|
||||
$table1,
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($item['type'] == 'availability_graph') {
|
||||
|
@ -3496,7 +3560,8 @@ function reporting_html_general($table, $item, $pdf=0)
|
|||
$table1->head = array_merge([__('Agent')], $list_modules);
|
||||
foreach ($item['data'] as $agent => $modules) {
|
||||
$row = [];
|
||||
$row['agent'] = $agent;
|
||||
$alias = agents_get_alias_by_name($agent);
|
||||
$row['agent'] = $alias;
|
||||
$table1->style['agent'] = 'text-align: center;';
|
||||
foreach ($list_modules as $name) {
|
||||
$table1->style[$name] = 'text-align: center;';
|
||||
|
|
|
@ -96,7 +96,6 @@ function snmp_browser_get_html_tree(
|
|||
foreach ($tree['__LEAVES__'] as $level => $sub_level) {
|
||||
// Id used to expand leafs.
|
||||
$sub_id = time().rand(0, getrandmax());
|
||||
|
||||
// Display the branch.
|
||||
$output .= '<li id="li_'.$sub_id.'" style="margin: 0; padding: 0;">';
|
||||
|
||||
|
@ -174,7 +173,6 @@ function snmp_browser_get_html_tree(
|
|||
$last_array,
|
||||
$sufix,
|
||||
$checked,
|
||||
$return,
|
||||
$descriptive_ids,
|
||||
$previous_id
|
||||
);
|
||||
|
@ -225,7 +223,6 @@ function snmp_browser_print_tree(
|
|||
$last_array,
|
||||
$sufix,
|
||||
$checked,
|
||||
$return,
|
||||
$descriptive_ids,
|
||||
$previous_id
|
||||
);
|
||||
|
|
|
@ -444,7 +444,7 @@ function tactical_monitor_fired_alerts($group_array, $strict_user=false, $id_gro
|
|||
WHERE tagente.id_grupo IN $group_clause_strict AND tagente_modulo.id_agente = tagente.id_agente
|
||||
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||
AND talert_template_modules.id_agent_module = tagente_modulo.id_agente_modulo
|
||||
AND times_fired > 0 ";
|
||||
AND times_fired > 0 AND talert_template_modules.disabled = 0";
|
||||
|
||||
$count = db_get_sql($sql);
|
||||
return $count;
|
||||
|
@ -456,7 +456,7 @@ function tactical_monitor_fired_alerts($group_array, $strict_user=false, $id_gro
|
|||
WHERE tagente.id_grupo IN $group_clause AND tagente_modulo.id_agente = tagente.id_agente
|
||||
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||
AND talert_template_modules.id_agent_module = tagente_modulo.id_agente_modulo
|
||||
AND times_fired > 0"
|
||||
AND times_fired > 0 AND talert_template_modules.disabled = 0"
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -1755,6 +1755,12 @@ function ui_process_page_head($string, $bitfield)
|
|||
// Add the dialog styles CSS.
|
||||
$config['css']['dialog'] = 'include/styles/js/introjs.css';
|
||||
|
||||
// If the theme is the default, we don't load it twice.
|
||||
if ($config['style'] !== 'pandora') {
|
||||
// It loads the last of all.
|
||||
$config['css']['theme'] = 'include/styles/'.$config['style'].'.css';
|
||||
}
|
||||
|
||||
// If skin's css files exists then add them.
|
||||
if ($exists_css) {
|
||||
foreach ($skin_styles as $filename => $name) {
|
||||
|
@ -1766,10 +1772,10 @@ function ui_process_page_head($string, $bitfield)
|
|||
// User style should go last so it can rewrite common styles.
|
||||
$config['css'] = array_merge(
|
||||
[
|
||||
'common' => 'include/styles/common.css',
|
||||
'menu' => 'include/styles/menu.css',
|
||||
'tables' => 'include/styles/tables.css',
|
||||
$config['style'] => 'include/styles/'.$config['style'].'.css',
|
||||
'common' => 'include/styles/common.css',
|
||||
'menu' => 'include/styles/menu.css',
|
||||
'tables' => 'include/styles/tables.css',
|
||||
'general' => 'include/styles/pandora.css',
|
||||
],
|
||||
$config['css']
|
||||
);
|
||||
|
@ -2598,12 +2604,12 @@ function ui_get_status_images_path()
|
|||
/**
|
||||
* Prints an image representing a status.
|
||||
*
|
||||
* @param string $type Type.
|
||||
* @param string $title Title.
|
||||
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
||||
* @param array $options Options to set image attributes: I.E.: style.
|
||||
* @param string $path Path of the image, if not provided use the status path.
|
||||
* @param boolean $rounded_image Round.
|
||||
* @param string $type Type.
|
||||
* @param string $title Title.
|
||||
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
||||
* @param array $options Options to set image attributes: I.E.: style.
|
||||
* @param string $path Path of the image, if not provided use the status path.
|
||||
* @param boolean $image_with_css Don't use an image. Draw an image with css styles.
|
||||
*
|
||||
* @return string HTML code if return parameter is true.
|
||||
*/
|
||||
|
@ -2613,37 +2619,8 @@ function ui_print_status_image(
|
|||
$return=false,
|
||||
$options=false,
|
||||
$path=false,
|
||||
$rounded_image=false
|
||||
$image_with_css=false
|
||||
) {
|
||||
// This is for the List of Modules in Agent View.
|
||||
if ($rounded_image === true) {
|
||||
switch ($type) {
|
||||
case 'module_ok.png':
|
||||
$type = 'module_ok_rounded.png';
|
||||
break;
|
||||
|
||||
case 'module_critical.png':
|
||||
$type = 'module_critical_rounded.png';
|
||||
break;
|
||||
|
||||
case 'module_warning.png':
|
||||
$type = 'module_warning_rounded.png';
|
||||
break;
|
||||
|
||||
case 'module_no_data.png':
|
||||
$type = 'module_no_data_rounded.png';
|
||||
break;
|
||||
|
||||
case 'module_unknown.png':
|
||||
$type = 'module_unknown_rounded.png';
|
||||
break;
|
||||
|
||||
default:
|
||||
$type = $type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($path === false) {
|
||||
$imagepath_array = ui_get_status_images_path();
|
||||
$imagepath = $imagepath_array[0];
|
||||
|
@ -2651,35 +2628,112 @@ function ui_print_status_image(
|
|||
$imagepath = $path;
|
||||
}
|
||||
|
||||
$imagepath .= '/'.$type;
|
||||
|
||||
if ($options === false) {
|
||||
$options = [];
|
||||
if ($imagepath == 'images/status_sets/default') {
|
||||
$image_with_css = true;
|
||||
}
|
||||
|
||||
$options['title'] = $title;
|
||||
$imagepath .= '/'.$type;
|
||||
|
||||
return html_print_image($imagepath, $return, $options, false, false, false, true);
|
||||
if ($image_with_css === true) {
|
||||
$shape_status = get_shape_status_set($type);
|
||||
return ui_print_status_sets($type, $title, $return, $shape_status);
|
||||
} else {
|
||||
if ($options === false) {
|
||||
$options = [];
|
||||
}
|
||||
|
||||
$options['title'] = $title;
|
||||
|
||||
return html_print_image($imagepath, $return, $options, false, false, false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the shape of an image by assigning it a CSS class. Prints an image with CSS representing a status.
|
||||
*
|
||||
* @param string $type Module/Agent/Alert status.
|
||||
*
|
||||
* @return array With CSS class.
|
||||
*/
|
||||
function get_shape_status_set($type)
|
||||
{
|
||||
switch ($type) {
|
||||
// Small rectangles.
|
||||
case STATUS_ALERT_NOT_FIRED:
|
||||
case STATUS_ALERT_FIRED:
|
||||
case STATUS_ALERT_DISABLED:
|
||||
$return = ['class' => 'status_small_rectangles'];
|
||||
break;
|
||||
|
||||
// Rounded rectangles.
|
||||
case STATUS_MODULE_OK:
|
||||
case STATUS_AGENT_OK:
|
||||
case STATUS_MODULE_NO_DATA:
|
||||
case STATUS_AGENT_NO_DATA:
|
||||
case STATUS_MODULE_CRITICAL:
|
||||
case STATUS_AGENT_CRITICAL:
|
||||
case STATUS_MODULE_WARNING:
|
||||
case STATUS_AGENT_WARNING:
|
||||
case STATUS_MODULE_UNKNOWN:
|
||||
case STATUS_AGENT_UNKNOWN:
|
||||
case STATUS_AGENT_DOWN:
|
||||
$return = ['class' => 'status_rounded_rectangles'];
|
||||
break;
|
||||
|
||||
// Small squares.
|
||||
case STATUS_SERVER_OK:
|
||||
case STATUS_SERVER_DOWN:
|
||||
$return = ['class' => 'status_small_squares'];
|
||||
break;
|
||||
|
||||
// Balls.
|
||||
case STATUS_AGENT_CRITICAL_BALL:
|
||||
case STATUS_AGENT_WARNING_BALL:
|
||||
case STATUS_AGENT_DOWN_BALL:
|
||||
case STATUS_AGENT_UNKNOWN_BALL:
|
||||
case STATUS_AGENT_OK_BALL:
|
||||
case STATUS_AGENT_NO_DATA_BALL:
|
||||
case STATUS_AGENT_NO_MONITORS_BALL:
|
||||
$return = ['class' => 'status_balls'];
|
||||
break;
|
||||
|
||||
// Small Balls.
|
||||
case STATUS_MODULE_OK_BALL:
|
||||
case STATUS_MODULE_CRITICAL_BALL:
|
||||
case STATUS_MODULE_WARNING_BALL:
|
||||
case STATUS_MODULE_NO_DATA_BALL:
|
||||
case STATUS_MODULE_UNKNOWN_BALL:
|
||||
case STATUS_ALERT_FIRED_BALL:
|
||||
case STATUS_ALERT_NOT_FIRED_BALL:
|
||||
case STATUS_ALERT_DISABLED_BALL:
|
||||
$return = ['class' => 'status_small_balls'];
|
||||
break;
|
||||
|
||||
default:
|
||||
// Ignored.
|
||||
break;
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prints an image representing a status.
|
||||
*
|
||||
* @param string $status Module status.
|
||||
* @param string $title Title.
|
||||
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
||||
* @param array $options Options to set image attributes: I.E.: style.
|
||||
* @param boolean $rounded_image Round.
|
||||
* @param string $status Module status.
|
||||
* @param string $title Title.
|
||||
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
||||
* @param array $options Options to set image attributes: I.E.: style.
|
||||
*
|
||||
* @return string HTML.
|
||||
*/
|
||||
function ui_print_module_status(
|
||||
function ui_print_status_sets(
|
||||
$status,
|
||||
$title='',
|
||||
$return=false,
|
||||
$options=false,
|
||||
$rounded_image=false
|
||||
$options=false
|
||||
) {
|
||||
global $config;
|
||||
|
||||
|
@ -2687,21 +2741,26 @@ function ui_print_module_status(
|
|||
$options = [];
|
||||
}
|
||||
|
||||
$options['style'] .= 'width: 50px;';
|
||||
$options['style'] .= 'height: 2em;';
|
||||
$options['style'] .= 'display: inline-block;';
|
||||
|
||||
include_once __DIR__.'/functions_modules.php';
|
||||
$options['style'] .= 'background: '.modules_get_color_status($status).';';
|
||||
|
||||
if ($rounded_image === true) {
|
||||
$options['style'] .= 'border-radius: 5px;';
|
||||
if (isset($options['style'])) {
|
||||
$options['style'] .= ' background: '.modules_get_color_status($status).'; display: inline-block;';
|
||||
} else {
|
||||
$options['style'] = 'background: '.modules_get_color_status($status).'; display: inline-block;';
|
||||
}
|
||||
|
||||
$options['title'] = $title;
|
||||
$options['data-title'] = $title;
|
||||
$options['data-use_title_for_force_title'] = 1;
|
||||
$options['class'] = 'forced_title';
|
||||
if (isset($options['class'])) {
|
||||
$options['class'] = $options['class'];
|
||||
}
|
||||
|
||||
if ($title != '') {
|
||||
$options['title'] = $title;
|
||||
$options['data-title'] = $title;
|
||||
$options['data-use_title_for_force_title'] = 1;
|
||||
if (isset($options['class'])) {
|
||||
$options['class'] .= ' forced_title';
|
||||
} else {
|
||||
$options['class'] = 'forced_title';
|
||||
}
|
||||
}
|
||||
|
||||
$output = '<div ';
|
||||
foreach ($options as $k => $v) {
|
||||
|
|
|
@ -293,7 +293,7 @@ function users_get_groups(
|
|||
}
|
||||
// Per-group permissions.
|
||||
else {
|
||||
$query = 'SELECT * FROM tgrupo ORDER BY parent,id_grupo DESC';
|
||||
$query = 'SELECT * FROM tgrupo ORDER BY nombre';
|
||||
$raw_groups = db_get_all_rows_sql($query);
|
||||
|
||||
$query = sprintf(
|
||||
|
|
|
@ -740,6 +740,8 @@ function print_donut_narrow_graph(
|
|||
array $data,
|
||||
$data_total
|
||||
) {
|
||||
global $config;
|
||||
|
||||
if (empty($data)) {
|
||||
return graph_nodata_image($width, $height, 'pie');
|
||||
}
|
||||
|
@ -754,10 +756,31 @@ function print_donut_narrow_graph(
|
|||
|
||||
$graph_id = uniqid('graph_');
|
||||
|
||||
// This is for "Style template" in visual styles.
|
||||
switch ($config['style']) {
|
||||
case 'pandora':
|
||||
$textColor = '#000';
|
||||
$strokeColor = '#fff';
|
||||
break;
|
||||
|
||||
case 'pandora_black':
|
||||
$textColor = '#fff';
|
||||
$strokeColor = '#222';
|
||||
break;
|
||||
|
||||
default:
|
||||
$textColor = '#000';
|
||||
$strokeColor = '#fff';
|
||||
break;
|
||||
}
|
||||
|
||||
$textColor = json_encode($textColor);
|
||||
$strokeColor = json_encode($strokeColor);
|
||||
|
||||
$out = "<div id='$graph_id'></div>";
|
||||
$out .= include_javascript_d3(true);
|
||||
$out .= "<script type='text/javascript'>
|
||||
donutNarrowGraph($colors, $width, $height, $data_total)
|
||||
donutNarrowGraph($colors, $width, $height, $data_total, $textColor, $strokeColor)
|
||||
.donutbody(d3.select($graph_id))
|
||||
.data($data)
|
||||
.render();
|
||||
|
|
|
@ -2762,7 +2762,14 @@ function valueToBytes(value) {
|
|||
return value.toFixed(2) + shorts[pos] + "B";
|
||||
}
|
||||
|
||||
function donutNarrowGraph(colores, width, height, total) {
|
||||
function donutNarrowGraph(
|
||||
colores,
|
||||
width,
|
||||
height,
|
||||
total,
|
||||
textColor,
|
||||
strokeColor
|
||||
) {
|
||||
// Default settings
|
||||
var donutbody = d3.select("body");
|
||||
var data = {};
|
||||
|
@ -2848,7 +2855,7 @@ function donutNarrowGraph(colores, width, height, total) {
|
|||
this._current = d;
|
||||
})
|
||||
.attr("d", arc)
|
||||
.attr("stroke", "white")
|
||||
.attr("stroke", strokeColor)
|
||||
.style("fill", function(d) {
|
||||
return color(d.data.key);
|
||||
});
|
||||
|
@ -2872,7 +2879,7 @@ function donutNarrowGraph(colores, width, height, total) {
|
|||
.attr("y", 0 + radius / 10)
|
||||
.attr("class", "text-tooltip")
|
||||
.style("text-anchor", "middle")
|
||||
//.attr("fill", "#82b92e")
|
||||
.attr("fill", textColor)
|
||||
.style("font-size", function(d) {
|
||||
if (normal_status) {
|
||||
percentage_normal = (normal_status * 100) / total;
|
||||
|
@ -2902,6 +2909,7 @@ function donutNarrowGraph(colores, width, height, total) {
|
|||
/* .attr("fill", function(d) {
|
||||
return color(obj.data.key);
|
||||
})*/
|
||||
.attr("fill", textColor)
|
||||
.style("font-size", function(d) {
|
||||
percentage = (d[obj.data.key] * 100) / total;
|
||||
if (Number.isInteger(percentage)) {
|
||||
|
|
|
@ -437,19 +437,18 @@ function event_change_status(event_ids) {
|
|||
var meta = $("#hidden-meta").val();
|
||||
var history = $("#hidden-history").val();
|
||||
|
||||
var params = [];
|
||||
params.push("page=include/ajax/events");
|
||||
params.push("change_status=1");
|
||||
params.push("event_ids=" + event_ids);
|
||||
params.push("new_status=" + new_status);
|
||||
params.push("meta=" + meta);
|
||||
params.push("history=" + history);
|
||||
|
||||
$("#button-status_button").attr("disabled", "disabled");
|
||||
$("#response_loading").show();
|
||||
|
||||
jQuery.ajax({
|
||||
data: params.join("&"),
|
||||
data: {
|
||||
page: "include/ajax/events",
|
||||
change_status: 1,
|
||||
event_ids: event_ids,
|
||||
new_status: new_status,
|
||||
meta: meta,
|
||||
history: history
|
||||
},
|
||||
type: "POST",
|
||||
url: $("#hidden-ajax_file").val(),
|
||||
async: true,
|
||||
|
@ -457,12 +456,21 @@ function event_change_status(event_ids) {
|
|||
success: function(data) {
|
||||
$("#button-status_button").removeAttr("disabled");
|
||||
$("#response_loading").hide();
|
||||
show_event_dialog(
|
||||
event_id,
|
||||
$("#hidden-group_rep").val(),
|
||||
"responses",
|
||||
data
|
||||
);
|
||||
|
||||
if ($("#notification_status_success").length) {
|
||||
$("#notification_status_success").hide();
|
||||
}
|
||||
|
||||
if ($("#notification_status_error").length) {
|
||||
$("#notification_status_error").hide();
|
||||
}
|
||||
|
||||
if (data == "status_ok") {
|
||||
dt_events.draw(false);
|
||||
$("#notification_status_success").show();
|
||||
} else {
|
||||
$("#notification_status_error").show();
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
|
@ -475,19 +483,18 @@ function event_change_owner() {
|
|||
var meta = $("#hidden-meta").val();
|
||||
var history = $("#hidden-history").val();
|
||||
|
||||
var params = [];
|
||||
params.push("page=include/ajax/events");
|
||||
params.push("change_owner=1");
|
||||
params.push("event_id=" + event_id);
|
||||
params.push("new_owner=" + new_owner);
|
||||
params.push("meta=" + meta);
|
||||
params.push("history=" + history);
|
||||
|
||||
$("#button-owner_button").attr("disabled", "disabled");
|
||||
$("#response_loading").show();
|
||||
|
||||
jQuery.ajax({
|
||||
data: params.join("&"),
|
||||
data: {
|
||||
page: "include/ajax/events",
|
||||
change_owner: 1,
|
||||
event_id: event_id,
|
||||
new_owner: new_owner,
|
||||
meta: meta,
|
||||
history: history
|
||||
},
|
||||
type: "POST",
|
||||
url: $("#hidden-ajax_file").val(),
|
||||
async: true,
|
||||
|
@ -496,12 +503,29 @@ function event_change_owner() {
|
|||
$("#button-owner_button").removeAttr("disabled");
|
||||
$("#response_loading").hide();
|
||||
|
||||
show_event_dialog(
|
||||
event_id,
|
||||
$("#hidden-group_rep").val(),
|
||||
"responses",
|
||||
data
|
||||
);
|
||||
if ($("#notification_owner_success").length) {
|
||||
$("#notification_owner_success").hide();
|
||||
}
|
||||
|
||||
if ($("#notification_owner_error").length) {
|
||||
$("#notification_owner_error").hide();
|
||||
}
|
||||
|
||||
if (data == "owner_ok") {
|
||||
dt_events.draw(false);
|
||||
$("#notification_owner_success").show();
|
||||
if (new_owner == -1) {
|
||||
$("#extended_event_general_page table td.general_owner").html(
|
||||
"<i>N/A</i>"
|
||||
);
|
||||
} else {
|
||||
$("#extended_event_general_page table td.general_owner").text(
|
||||
new_owner
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$("#notification_owner_error").show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -536,7 +536,7 @@ function configure_modules_form() {
|
|||
|
||||
var obj = jQuery.parseJSON(data["macros"]);
|
||||
$.each(obj, function(k, macro) {
|
||||
add_macro_field(macro, "simple-macro");
|
||||
add_macro_field(macro, "simple-macro", "td", k);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -791,7 +791,7 @@ function new_macro(prefix, callback) {
|
|||
}
|
||||
}
|
||||
|
||||
function add_macro_field(macro, row_model_id) {
|
||||
function add_macro_field(macro, row_model_id, type_copy, k) {
|
||||
var macro_desc = macro["desc"];
|
||||
// Change the carriage returns by html returns <br> in help
|
||||
var macro_help = macro["help"].replace(/
/g, "<br>");
|
||||
|
@ -799,7 +799,6 @@ function add_macro_field(macro, row_model_id) {
|
|||
var macro_value = $("<div />")
|
||||
.html(macro["value"])
|
||||
.text();
|
||||
var macro_hide = macro["hide"];
|
||||
|
||||
macro_value.type = "password";
|
||||
|
||||
|
@ -809,6 +808,7 @@ function add_macro_field(macro, row_model_id) {
|
|||
|
||||
// Change attributes to be unique and with identificable class
|
||||
$macro_field.attr("id", row_id);
|
||||
|
||||
$macro_field.attr("class", "macro_field");
|
||||
|
||||
// Get the number of fields already printed
|
||||
|
@ -828,6 +828,19 @@ function add_macro_field(macro, row_model_id) {
|
|||
);
|
||||
}
|
||||
|
||||
// Only for create module type plugin need rename
|
||||
// td id "simple-macro_field" + k + "-1" is horrible.
|
||||
if (k) {
|
||||
$("#" + row_model_id + "_field" + k + "_ td:eq(0)").attr(
|
||||
"id",
|
||||
"simple-macro_field" + k + "-0"
|
||||
);
|
||||
$("#" + row_model_id + "_field" + k + "_ td:eq(1)").attr(
|
||||
"id",
|
||||
"simple-macro_field" + k + "-1"
|
||||
);
|
||||
}
|
||||
|
||||
// Change the label
|
||||
if (macro_help == "") {
|
||||
$("#" + row_id)
|
||||
|
@ -850,16 +863,29 @@ function add_macro_field(macro, row_model_id) {
|
|||
}
|
||||
|
||||
// Change the text box id and value
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.attr("id", "text-" + macro_macro);
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.attr("name", macro_macro);
|
||||
if (type_copy == "td") {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.children()
|
||||
.attr("id", "text-" + macro_macro);
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.children()
|
||||
.attr("name", macro_macro);
|
||||
} else {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.attr("id", "text-" + macro_macro);
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.attr("name", macro_macro);
|
||||
}
|
||||
|
||||
macro_field_hide = false;
|
||||
var macro_field_hide = false;
|
||||
if (typeof macro["hide"] == "string") {
|
||||
if (macro["hide"].length == 0) {
|
||||
macro_field_hide = false;
|
||||
|
@ -872,16 +898,33 @@ function add_macro_field(macro, row_model_id) {
|
|||
}
|
||||
}
|
||||
|
||||
if (macro_field_hide) {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.attr("type", "password");
|
||||
if (type_copy == "td") {
|
||||
if (macro_field_hide) {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.children()
|
||||
.attr("type", "password");
|
||||
} else {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.children()
|
||||
.val(macro_value);
|
||||
}
|
||||
} else {
|
||||
if (macro_field_hide) {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.attr("type", "password");
|
||||
} else {
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.val(macro_value);
|
||||
}
|
||||
}
|
||||
$("#" + row_id)
|
||||
.children()
|
||||
.eq(1)
|
||||
.val(macro_value);
|
||||
|
||||
$("#" + row_id).show();
|
||||
}
|
||||
|
@ -908,7 +951,7 @@ function load_plugin_macros_fields(row_model_id) {
|
|||
$("#hidden-macros").val(data["base64"]);
|
||||
jQuery.each(data["array"], function(i, macro) {
|
||||
if (macro["desc"] != "") {
|
||||
add_macro_field(macro, row_model_id);
|
||||
add_macro_field(macro, row_model_id, "td");
|
||||
}
|
||||
});
|
||||
//Plugin text can be larger
|
||||
|
@ -1223,3 +1266,42 @@ function get_explanation_recon_script(id, id_rt, url) {
|
|||
|
||||
taskManager.addTask(xhr);
|
||||
}
|
||||
|
||||
// Filter modules in a select (bulk operations)
|
||||
function filterByText(selectbox, textbox, textNoData) {
|
||||
return selectbox.each(function() {
|
||||
var select = selectbox;
|
||||
var options = [];
|
||||
$(select)
|
||||
.find("option")
|
||||
.each(function() {
|
||||
options.push({ value: $(this).val(), text: $(this).text() });
|
||||
});
|
||||
$(select).data("options", options);
|
||||
$(textbox).bind("change keyup", function() {
|
||||
var options = $(select)
|
||||
.empty()
|
||||
.scrollTop(0)
|
||||
.data("options");
|
||||
var search = $(this).val();
|
||||
var regex = new RegExp(search, "gi");
|
||||
$.each(options, function(i) {
|
||||
var option = options[i];
|
||||
if (option.text.match(regex) !== null) {
|
||||
$(select).append(
|
||||
$("<option>")
|
||||
.text(option.text)
|
||||
.val(option.value)
|
||||
);
|
||||
}
|
||||
});
|
||||
if ($(select)[0].length == 0) {
|
||||
$(select).append(
|
||||
$("<option>")
|
||||
.text(textNoData)
|
||||
.val(textNoData)
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,32 +1,75 @@
|
|||
<?php
|
||||
/**
|
||||
* Session manager.
|
||||
*
|
||||
* @category Session handler.
|
||||
* @package Pandora FMS.
|
||||
* @subpackage OpenSource.
|
||||
* @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-2009 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 Lesser 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.
|
||||
// Begin.
|
||||
|
||||
|
||||
/**
|
||||
* Open session.
|
||||
*
|
||||
* @param string $save_path Save path.
|
||||
* @param string $session_name Session name.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function pandora_session_open($save_path, $session_name)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Close session.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function pandora_session_close()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read a session.
|
||||
*
|
||||
* @param string $session_id Session ID.
|
||||
*
|
||||
* @return string Session data.
|
||||
*/
|
||||
function pandora_session_read($session_id)
|
||||
{
|
||||
$session_id = addslashes($session_id);
|
||||
$session_data = db_get_value('data', 'tsessions_php', 'id_session', $session_id);
|
||||
$session_data = db_get_value(
|
||||
'data',
|
||||
'tsessions_php',
|
||||
'id_session',
|
||||
$session_id
|
||||
);
|
||||
|
||||
if (!empty($session_data)) {
|
||||
return $session_data;
|
||||
|
@ -36,10 +79,25 @@ function pandora_session_read($session_id)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write session data.
|
||||
*
|
||||
* @param string $session_id Session id.
|
||||
* @param string $data Data.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function pandora_session_write($session_id, $data)
|
||||
{
|
||||
$session_id = addslashes($session_id);
|
||||
|
||||
if (is_ajax()) {
|
||||
// Avoid session upadte while processing ajax responses - notifications.
|
||||
if (get_parameter('check_new_notifications', false)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
$values = [];
|
||||
$values['last_active'] = time();
|
||||
|
||||
|
@ -47,29 +105,55 @@ function pandora_session_write($session_id, $data)
|
|||
$values['data'] = addslashes($data);
|
||||
}
|
||||
|
||||
$session_exists = (bool) db_get_value('COUNT(id_session)', 'tsessions_php', 'id_session', $session_id);
|
||||
$session_exists = (bool) db_get_value(
|
||||
'COUNT(id_session)',
|
||||
'tsessions_php',
|
||||
'id_session',
|
||||
$session_id
|
||||
);
|
||||
|
||||
if (!$session_exists) {
|
||||
$values['id_session'] = $session_id;
|
||||
$retval_write = db_process_sql_insert('tsessions_php', $values);
|
||||
} else {
|
||||
$retval_write = db_process_sql_update('tsessions_php', $values, ['id_session' => $session_id]);
|
||||
$retval_write = db_process_sql_update(
|
||||
'tsessions_php',
|
||||
$values,
|
||||
['id_session' => $session_id]
|
||||
);
|
||||
}
|
||||
|
||||
return $retval_write !== false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Destroy a session.
|
||||
*
|
||||
* @param string $session_id Session Id.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function pandora_session_destroy($session_id)
|
||||
{
|
||||
$session_id = addslashes($session_id);
|
||||
|
||||
$retval = (bool) db_process_sql_delete('tsessions_php', ['id_session' => $session_id]);
|
||||
$retval = (bool) db_process_sql_delete(
|
||||
'tsessions_php',
|
||||
['id_session' => $session_id]
|
||||
);
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Session garbage collector.
|
||||
*
|
||||
* @param integer $max_lifetime Max lifetime.
|
||||
*
|
||||
* @return boolean.
|
||||
*/
|
||||
function pandora_session_gc($max_lifetime=300)
|
||||
{
|
||||
global $config;
|
||||
|
@ -80,7 +164,12 @@ function pandora_session_gc($max_lifetime=300)
|
|||
|
||||
$time_limit = (time() - $max_lifetime);
|
||||
|
||||
$retval = (bool) db_process_sql_delete('tsessions_php', ['last_active' => '<'.$time_limit]);
|
||||
$retval = (bool) db_process_sql_delete(
|
||||
'tsessions_php',
|
||||
[
|
||||
'last_active' => '<'.$time_limit,
|
||||
]
|
||||
);
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
@ -88,5 +177,12 @@ function pandora_session_gc($max_lifetime=300)
|
|||
|
||||
// FIXME: SAML should work with pandora session handlers
|
||||
if (db_get_value('value', 'tconfig', 'token', 'auth') != 'saml') {
|
||||
$result_handler = session_set_save_handler('pandora_session_open', 'pandora_session_close', 'pandora_session_read', 'pandora_session_write', 'pandora_session_destroy', 'pandora_session_gc');
|
||||
$result_handler = session_set_save_handler(
|
||||
'pandora_session_open',
|
||||
'pandora_session_close',
|
||||
'pandora_session_read',
|
||||
'pandora_session_write',
|
||||
'pandora_session_destroy',
|
||||
'pandora_session_gc'
|
||||
);
|
||||
}
|
||||
|
|
|
@ -271,6 +271,7 @@ ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header
|
|||
margin: 0;
|
||||
margin-bottom: -1px;
|
||||
border: none;
|
||||
border-bottom: 1px solid #a9a9a9;
|
||||
}
|
||||
|
||||
ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header
|
||||
|
@ -298,9 +299,6 @@ li.ui-tabs-tab.ui-corner-top.ui-state-default.ui-tab {
|
|||
li.ui-tabs-tab.ui-corner-top.ui-state-default.ui-tab.ui-tabs-active.ui-state-active {
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
div.extended_event_pages.ui-tabs-panel.ui-corner-bottom.ui-widget-content {
|
||||
border-top: 1px solid #a9a9a9;
|
||||
}
|
||||
|
||||
tr.group {
|
||||
padding: 5px;
|
||||
|
|
|
@ -5791,9 +5791,51 @@ div#status_pie {
|
|||
grid-template-columns: 50px auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------
|
||||
* - IMAGES FOR STATUS. This replaces the images of /images/status_sets/default/
|
||||
* - Don't delete this
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
.status_small_rectangles {
|
||||
width: 20px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.status_rounded_rectangles {
|
||||
width: 50px;
|
||||
height: 2em;
|
||||
display: inline-block;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.status_small_squares,
|
||||
.status_balls {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.status_balls {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.status_small_balls {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
}
|
||||
/*
|
||||
* ---------------------------------------------------------------------
|
||||
* - END - IMAGES FOR STATUS. Don't delete this
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* Table for show more info in events and config menu in modules graphs. (This class exists in events.css too) */
|
||||
.table_modal_alternate {
|
||||
border-spacing: 0px;
|
||||
border-spacing: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
/**
|
||||
* Exclude css from visual styles
|
||||
*
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
|
|
|
@ -138,3 +138,7 @@ div#tree-controller-recipient {
|
|||
width: 98%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.tree-node > .node-content > div + div:not(.tree-node-counters) {
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
|
|
@ -385,24 +385,30 @@ if (! isset($config['id_user'])) {
|
|||
$nick_in_db = $_SESSION['prepared_login_da']['id_user'];
|
||||
$expired_pass = false;
|
||||
} else if (($config['auth'] == 'saml') && ($login_button_saml)) {
|
||||
include_once ENTERPRISE_DIR.'/include/auth/saml.php';
|
||||
$saml_configured = include_once $config['homedir'].'/'.ENTERPRISE_DIR.'/include/auth/saml.php';
|
||||
|
||||
if (!$saml_configured) {
|
||||
include_once 'general/noaccesssaml.php';
|
||||
}
|
||||
|
||||
$saml_user_id = saml_process_user_login();
|
||||
|
||||
if (!$saml_user_id) {
|
||||
include_once 'general/noaccesssaml.php';
|
||||
}
|
||||
|
||||
|
||||
$nick_in_db = $saml_user_id;
|
||||
if (!$nick_in_db) {
|
||||
include_once $config['saml_path'].'simplesamlphp/lib/_autoload.php';
|
||||
$as = new SimpleSAML_Auth_Simple('PandoraFMS');
|
||||
$as = new SimpleSAML_Auth_Simple($config['saml_source']);
|
||||
$as->logout();
|
||||
}
|
||||
} else {
|
||||
// Function process_user_login is a virtual function which should be
|
||||
// defined in each auth file. It accepts username and password. The
|
||||
// rest should be internal to the auth file. The auth file can set
|
||||
// $config["auth_error"] to an informative error output or reference
|
||||
// their internal error messages to it process_user_login should
|
||||
// return false in case of errors or invalid login, the nickname
|
||||
// if correct.
|
||||
// process_user_login is a virtual function which should be defined in each auth file.
|
||||
// It accepts username and password. The rest should be internal to the auth file.
|
||||
// The auth file can set $config["auth_error"] to an informative error output or reference their internal error messages to it
|
||||
// process_user_login should return false in case of errors or invalid login, the nickname if correct
|
||||
$nick_in_db = process_user_login($nick, $pass);
|
||||
|
||||
$expired_pass = false;
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
<div style='height: 10px'>
|
||||
<?php
|
||||
$version = '7.0NG.736';
|
||||
$build = '190702';
|
||||
$build = '190712';
|
||||
$banner = "v$version Build $build";
|
||||
|
||||
error_reporting(0);
|
||||
|
|
|
@ -47,6 +47,8 @@ class ModuleGraph
|
|||
|
||||
private $module = null;
|
||||
|
||||
private $server_id = '';
|
||||
|
||||
|
||||
function __construct()
|
||||
{
|
||||
|
@ -68,6 +70,8 @@ class ModuleGraph
|
|||
|
||||
$this->id = (int) $system->getRequest('id', 0);
|
||||
$this->id_agent = (int) $system->getRequest('id_agent', 0);
|
||||
$this->server_id = $system->getRequest('server_id', '');
|
||||
|
||||
$this->module = modules_get_agentmodule($this->id);
|
||||
$this->graph_type = return_graphtype($this->module['id_tipo_modulo']);
|
||||
|
||||
|
@ -124,6 +128,16 @@ class ModuleGraph
|
|||
switch ($parameter2) {
|
||||
case 'get_graph':
|
||||
$this->getFilters();
|
||||
if ($system->getConfig('metaconsole')) {
|
||||
$server_data = metaconsole_get_connection_by_id(
|
||||
$this->server_id
|
||||
);
|
||||
// Establishes connection.
|
||||
if (metaconsole_load_external_db($server_data) !== NOERR) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$correct = 0;
|
||||
$graph = '';
|
||||
$correct = 1;
|
||||
|
@ -197,6 +211,10 @@ class ModuleGraph
|
|||
break;
|
||||
}
|
||||
|
||||
if ($system->getConfig('metaconsole')) {
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
|
||||
$graph = ob_get_clean().$graph;
|
||||
|
||||
echo json_encode(['correct' => $correct, 'graph' => $graph]);
|
||||
|
@ -252,7 +270,7 @@ class ModuleGraph
|
|||
- $(".ui-collapsible").height()
|
||||
- 55;
|
||||
var width = $(document).width() - 25;
|
||||
ajax_get_graph($("#id_module").val(), heigth, width);
|
||||
ajax_get_graph($("#id_module").val(), heigth, width, $("#server_id").val());
|
||||
}
|
||||
|
||||
load_graph();
|
||||
|
@ -264,7 +282,7 @@ class ModuleGraph
|
|||
});
|
||||
});
|
||||
|
||||
function ajax_get_graph(id, heigth_graph, width_graph) {
|
||||
function ajax_get_graph(id, heigth_graph, width_graph, server_id) {
|
||||
postvars = {};
|
||||
postvars["action"] = "ajax";
|
||||
postvars["parameter1"] = "module_graph";
|
||||
|
@ -284,6 +302,8 @@ class ModuleGraph
|
|||
|
||||
postvars["id"] = id;
|
||||
|
||||
postvars["server_id"] = server_id;
|
||||
|
||||
$.ajax ({
|
||||
type: "POST",
|
||||
url: "index.php",
|
||||
|
@ -360,9 +380,18 @@ class ModuleGraph
|
|||
]
|
||||
)
|
||||
);
|
||||
$ui->contentAddHtml(
|
||||
$ui->getInput(
|
||||
[
|
||||
'id' => 'server_id',
|
||||
'value' => $this->server_id,
|
||||
'type' => 'hidden',
|
||||
]
|
||||
)
|
||||
);
|
||||
$title = sprintf(__('Options for %s : %s'), $agent_alias, $this->module['nombre']);
|
||||
$ui->contentBeginCollapsible($title);
|
||||
$ui->beginForm('index.php?page=module_graph&id='.$this->id);
|
||||
$ui->beginForm('index.php?page=module_graph&id='.$this->id.'&server_id='.$this->server_id);
|
||||
$options = [
|
||||
'name' => 'draw_alerts',
|
||||
'value' => 1,
|
||||
|
|
|
@ -485,6 +485,8 @@ class Modules
|
|||
$temp_modules = db_get_all_rows_sql($sql_select.$sql.$sql_limit);
|
||||
|
||||
foreach ($temp_modules as $result_element_key => $result_element_value) {
|
||||
$result_element_value['server_id'] = $server['id'];
|
||||
$result_element_value['server_name'] = $server['server_name'];
|
||||
array_push($modules_db, $result_element_value);
|
||||
}
|
||||
|
||||
|
@ -684,7 +686,19 @@ class Modules
|
|||
|
||||
$row[7] = ui_get_snapshot_image($link, $is_snapshot).' ';
|
||||
} else {
|
||||
$row[7] = $row[__('Data')] = '<span style="white-space: nowrap;">'.'<span style="display: none;" class="show_collapside">'.$row[__('Status')].' </span>'.'<a data-ajax="false" class="ui-link" '.'href="index.php?page=module_graph&id='.$module['id_agente_modulo'].'&id_agent='.$this->id_agent.'">'.$output.'</a>'.'</span>';
|
||||
if ($system->getConfig('metaconsole')) {
|
||||
$row[__('Data')] = '<span style="white-space: nowrap;">';
|
||||
$row[__('Data')] .= '<span style="display: none;" class="show_collapside">';
|
||||
$row[__('Data')] .= $row[__('Status')].' </span>';
|
||||
$row[__('Data')] .= '<a data-ajax="false" class="ui-link" ';
|
||||
$row[__('Data')] .= 'href="index.php?page=module_graph&id='.$module['id_agente_modulo'];
|
||||
$row[__('Data')] .= '&server_id='.$module['server_id'];
|
||||
$row[__('Data')] .= '&id_agent='.$this->id_agent.'">';
|
||||
$row[__('Data')] .= $output.'</a></span>';
|
||||
$row[7] = $row[__('Data')];
|
||||
} else {
|
||||
$row[7] = $row[__('Data')] = '<span style="white-space: nowrap;">'.'<span style="display: none;" class="show_collapside">'.$row[__('Status')].' </span>'.'<a data-ajax="false" class="ui-link" '.'href="index.php?page=module_graph&id='.$module['id_agente_modulo'].'&id_agent='.$this->id_agent.'">'.$output.'</a>'.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
if (!$ajax) {
|
||||
|
|
|
@ -70,7 +70,7 @@ if (is_ajax()) {
|
|||
if ($id_agente > 0) {
|
||||
$last_contact = db_get_value_sql(
|
||||
sprintf(
|
||||
'SELECT intervalo - (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(IF(ultimo_contacto > ultimo_contacto_remoto, ultimo_contacto, ultimo_contacto_remoto)))
|
||||
'SELECT format(intervalo,2) - (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(IF(ultimo_contacto > ultimo_contacto_remoto, ultimo_contacto, ultimo_contacto_remoto))) as "val"
|
||||
FROM `tagente`
|
||||
WHERE id_agente = %d ',
|
||||
$id_agente
|
||||
|
|
|
@ -334,6 +334,50 @@ if (is_ajax()) {
|
|||
exit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Load user default form.
|
||||
*/
|
||||
|
||||
$user_filter = db_get_row_sql(
|
||||
sprintf(
|
||||
'SELECT f.id_filter, f.id_name
|
||||
FROM tevent_filter f
|
||||
INNER JOIN tusuario u
|
||||
ON u.default_event_filter=f.id_filter
|
||||
WHERE u.id_user = "%s" ',
|
||||
$config['id_user']
|
||||
)
|
||||
);
|
||||
if ($user_filter !== false) {
|
||||
$filter = events_get_event_filter($user_filter['id_filter']);
|
||||
if ($filter !== false) {
|
||||
$id_group = $filter['id_group'];
|
||||
$event_type = $filter['event_type'];
|
||||
$severity = $filter['severity'];
|
||||
$status = $filter['status'];
|
||||
$search = $filter['search'];
|
||||
$text_agent = $filter['text_agent'];
|
||||
$id_agent = $filter['id_agent'];
|
||||
$id_agent_module = $filter['id_agent_module'];
|
||||
$pagination = $filter['pagination'];
|
||||
$event_view_hr = $filter['event_view_hr'];
|
||||
$id_user_ack = $filter['id_user_ack'];
|
||||
$group_rep = $filter['group_rep'];
|
||||
$tag_with = json_decode(io_safe_output($filter['tag_with']));
|
||||
$tag_without = json_decode(io_safe_output($filter['tag_without']));
|
||||
|
||||
$tag_with_base64 = base64_encode(json_encode($tag_with));
|
||||
$tag_without_base64 = base64_encode(json_encode($tag_without));
|
||||
|
||||
$filter_only_alert = $filter['filter_only_alert'];
|
||||
$id_group_filter = $filter['id_group_filter'];
|
||||
$date_from = $filter['date_from'];
|
||||
$date_to = $filter['date_to'];
|
||||
$source = $filter['source'];
|
||||
$id_extra = $filter['id_extra'];
|
||||
$user_comment = $filter['user_comment'];
|
||||
}
|
||||
}
|
||||
|
||||
// TAGS.
|
||||
// Get the tags where the user have permissions in Events reading tasks.
|
||||
|
@ -736,47 +780,6 @@ if (is_metaconsole() !== true) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Load user default form.
|
||||
*/
|
||||
|
||||
$user_filter = db_get_row_sql(
|
||||
sprintf(
|
||||
'SELECT f.id_filter, f.id_name
|
||||
FROM tevent_filter f
|
||||
INNER JOIN tusuario u
|
||||
ON u.default_event_filter=f.id_filter
|
||||
WHERE u.id_user = "%s" ',
|
||||
$config['id_user']
|
||||
)
|
||||
);
|
||||
if ($user_filter !== false) {
|
||||
$filter = events_get_event_filter($user_filter['id_filter']);
|
||||
if ($filter !== false) {
|
||||
$id_group = $filter['id_group'];
|
||||
$event_type = $filter['event_type'];
|
||||
$severity = $filter['severity'];
|
||||
$status = $filter['status'];
|
||||
$search = $filter['search'];
|
||||
$text_agent = $filter['text_agent'];
|
||||
$id_agent = $filter['id_agent'];
|
||||
$id_agent_module = $filter['id_agent_module'];
|
||||
$pagination = $filter['pagination'];
|
||||
$event_view_hr = $filter['event_view_hr'];
|
||||
$id_user_ack = $filter['id_user_ack'];
|
||||
$group_rep = $filter['group_rep'];
|
||||
$tag_with = $filter['tag_with'];
|
||||
$tag_without = $filter['tag_without'];
|
||||
$filter_only_alert = $filter['filter_only_alert'];
|
||||
$id_group_filter = $filter['id_group_filter'];
|
||||
$date_from = $filter['date_from'];
|
||||
$date_to = $filter['date_to'];
|
||||
$source = $filter['source'];
|
||||
$id_extra = $filter['id_extra'];
|
||||
$user_comment = $filter['user_comment'];
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Load filter form.
|
||||
*/
|
||||
|
|
|
@ -26,6 +26,7 @@ if ($searchGraphs) {
|
|||
$usergraphs_id = array_keys($usergraphs);
|
||||
|
||||
if (empty($usergraphs_id)) {
|
||||
$totalGraphs = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -37,6 +38,7 @@ if ($searchGraphs) {
|
|||
'id_graph',
|
||||
'name',
|
||||
'description',
|
||||
|
||||
];
|
||||
|
||||
$totalGraphs = (int) db_get_value_filter('COUNT(id_graph) AS count', 'tgraph', $filter);
|
||||
|
@ -45,5 +47,7 @@ if ($searchGraphs) {
|
|||
$filter['limit'] = $config['block_size'];
|
||||
$filter['offset'] = (int) get_parameter('offset');
|
||||
$graphs = db_get_all_rows_filter('tgraph', $filter, $columns);
|
||||
} else {
|
||||
$totalGraphs = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,9 +20,10 @@ $searchGraphs = check_acl($config['id_user'], 0, 'RR');
|
|||
$searchMaps = check_acl($config['id_user'], 0, 'RR');
|
||||
$searchReports = check_acl($config['id_user'], 0, 'RR');
|
||||
$searchUsers = check_acl($config['id_user'], 0, 'UM');
|
||||
$searchPolicies = check_acl($config['id_user'], 0, 'AW');
|
||||
$searchHelps = true;
|
||||
|
||||
echo '<br><div style="margin:auto; width:90%; padding: 10px; background: #fff">';
|
||||
echo '<br><div style="margin:auto; width:90%; padding: 10px;">';
|
||||
|
||||
$anyfound = false;
|
||||
|
||||
|
@ -44,8 +45,12 @@ $table->style[9] = 'font-weight: bold; text-align: center;';
|
|||
$table->style[10] = 'font-weight: bold; text-align: center;';
|
||||
$table->style[11] = 'font-weight: bold; text-align: center;';
|
||||
$table->style[13] = 'font-weight: bold; text-align: center;';
|
||||
$table->style[14] = 'font-weight: bold; text-align: center;';
|
||||
$table->style[15] = 'font-weight: bold; text-align: center;';
|
||||
|
||||
|
||||
|
||||
|
||||
$table->data[0][0] = html_print_image('images/agent.png', true, ['title' => __('Agents found')]);
|
||||
$table->data[0][1] = "<a href='index.php?search_category=agents&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalAgents).'</a>';
|
||||
$table->data[0][2] = html_print_image('images/module.png', true, ['title' => __('Modules found')]);
|
||||
|
@ -64,8 +69,10 @@ $table->data[0][10] = html_print_image('images/reporting.png', true, ['title' =>
|
|||
$table->data[0][11] = "<a href='index.php?search_category=reports&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalReports).'</a>';
|
||||
$table->data[0][12] = html_print_image('images/visual_console_green.png', true, ['title' => __('Maps found')]);
|
||||
$table->data[0][13] = "<a href='index.php?search_category=maps&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalMaps).'</a>';
|
||||
$table->data[0][14] = html_print_image('images/help.png', true, ['title' => __('Helps found')]);
|
||||
$table->data[0][15] = "<a href='index.php?search_category=helps&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalHelps).'</a>';
|
||||
if (enterprise_installed()) {
|
||||
$table->data[0][14] = html_print_image('images/policies.png', true, ['title' => __('Policies')]);
|
||||
$table->data[0][15] = "<a href='index.php?search_category=policies&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalPolicies).'</a>';
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
|
@ -79,4 +86,5 @@ if ($searchAgents && $totalAgents > 0) {
|
|||
).'</a>';
|
||||
}
|
||||
|
||||
|
||||
echo '</div>';
|
||||
|
|
|
@ -0,0 +1,200 @@
|
|||
<?php
|
||||
|
||||
// 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.
|
||||
global $config;
|
||||
|
||||
enterprise_include_once('include/functions_policies.php');
|
||||
|
||||
|
||||
$searchpolicies = check_acl($config['id'], 0, 'AW');
|
||||
|
||||
$selectpolicieIDUp = '';
|
||||
$selectpolicieIDDown = '';
|
||||
$selectNameUp = '';
|
||||
$selectNameDown = '';
|
||||
$selectDescriptionUp = '';
|
||||
$selectDescriptionDown = '';
|
||||
$selectId_groupUp = '';
|
||||
$selectId_groupDown = '';
|
||||
$selectStatusUp = '';
|
||||
$selectStatusDown = '';
|
||||
|
||||
switch ($sortField) {
|
||||
case 'id':
|
||||
switch ($sort) {
|
||||
case 'up':
|
||||
$selectpolicieIDUp = $selected;
|
||||
$order = [
|
||||
'field' => 'id',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
|
||||
case 'down':
|
||||
$selectpolicieIDDown = $selected;
|
||||
$order = [
|
||||
'field' => 'id',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'name':
|
||||
switch ($sort) {
|
||||
case 'up':
|
||||
$selectNameUp = $selected;
|
||||
$order = [
|
||||
'field' => 'name',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
|
||||
case 'down':
|
||||
$selectNameDown = $selected;
|
||||
$order = [
|
||||
'field' => 'name',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'description':
|
||||
switch ($sort) {
|
||||
case 'up':
|
||||
$selectId_groupUp = $selected;
|
||||
$order = [
|
||||
'field' => 'description',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
|
||||
case 'down':
|
||||
$selectDescriptionDown = $selected;
|
||||
$order = [
|
||||
'field' => 'description',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'last_contact':
|
||||
switch ($sort) {
|
||||
case 'up':
|
||||
$selectId_groupUp = $selected;
|
||||
$order = [
|
||||
'field' => 'last_connect',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
|
||||
case 'down':
|
||||
$selectId_groupDown = $selected;
|
||||
$order = [
|
||||
'field' => 'last_connect',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'id_group':
|
||||
switch ($sort) {
|
||||
case 'up':
|
||||
$selectId_groupUp = $selected;
|
||||
$order = [
|
||||
'field' => 'last_connect',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
|
||||
case 'down':
|
||||
$selectId_groupDown = $selected;
|
||||
$order = [
|
||||
'field' => 'last_connect',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'status':
|
||||
switch ($sort) {
|
||||
case 'up':
|
||||
$selectStatusUp = $selected;
|
||||
$order = [
|
||||
'field' => 'is_admin',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
|
||||
case 'down':
|
||||
$selectStatusDown = $selected;
|
||||
$order = [
|
||||
'field' => 'is_admin',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$selectpolicieIDUp = $selected;
|
||||
$selectpolicieIDDown = '';
|
||||
$selectNameUp = '';
|
||||
$selectNameDown = '';
|
||||
$selectDescriptionUp = '';
|
||||
$selectDescriptionDown = '';
|
||||
$selectId_groupUp = '';
|
||||
$selectId_groupDown = '';
|
||||
$selectStatusUp = '';
|
||||
$selectStatusDown = '';
|
||||
|
||||
$order = [
|
||||
'field' => 'id',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
}
|
||||
|
||||
if ($searchpolicies == 0) {
|
||||
/*
|
||||
We take the user groups to get policies that meet the requirements of the search
|
||||
and which the user have permission on this groups
|
||||
*/
|
||||
$user_groups = users_get_groups($config['id_user'], 'AR', false);
|
||||
$id_user_groups = array_keys($user_groups);
|
||||
$id_user_groups_str = implode(',', $id_user_groups);
|
||||
|
||||
$sql = "SELECT id, name, description, id_group, status
|
||||
FROM tpolicies
|
||||
WHERE name LIKE '$stringSearchSQL'
|
||||
AND id_group IN ($id_user_groups_str)";
|
||||
}
|
||||
|
||||
|
||||
$sql .= ' LIMIT '.$config['block_size'].' OFFSET '.get_parameter('offset', 0);
|
||||
|
||||
$policies = db_process_sql($sql);
|
||||
|
||||
if ($policies !== false) {
|
||||
$totalPolicies = count($policies);
|
||||
|
||||
if ($only_count) {
|
||||
unset($policies);
|
||||
}
|
||||
} else {
|
||||
$totalPolicies = 0;
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
|
||||
// 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.
|
||||
global $config;
|
||||
|
||||
enterprise_include_once('include/functions_policies.php');
|
||||
require_once $config['homedir'].'/enterprise/include/functions_groups.php';
|
||||
|
||||
$searchpolicies = check_acl($config['id_user'], 0, 'AW');
|
||||
|
||||
if (!$policies || !$searchpolicies) {
|
||||
echo "<br><div class='nf'>".__('Zero results found')."</div>\n";
|
||||
} else {
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->width = '98%';
|
||||
$table->class = 'databox';
|
||||
|
||||
$table->align = [];
|
||||
$table->align[4] = 'center';
|
||||
|
||||
$table->head = [];
|
||||
// $table->head[0] = __('ID').' '.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=id_policie&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectpolicieIDUp]).'</a>'.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=id_policie&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectpolicieIDDown]).'</a>';
|
||||
$table->head[0] = __('Name').' '.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=name&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectNameUp]).'</a>'.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=name&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectNameDown]).'</a>';
|
||||
$table->head[1] = __('Description').' '.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=description&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectDescriptionUp]).'</a>'.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=description&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectDescriptionDown]).'</a>';
|
||||
$table->head[2] = __('Id_group').' '.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=last_contact&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectId_groupUp]).'</a>'.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=last_contact&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectId_groupDown]).'</a>';
|
||||
$table->head[3] = __('Status').' '.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=status&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectStatusUp]).'</a>'.'<a href="index.php?search_category=policies&keywords='.$config['search_keywords'].'&head_search_keywords=abc&offset='.$offset.'&sort_field=status&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectstatusDown]).'</a>';
|
||||
|
||||
$table->data = [];
|
||||
|
||||
foreach ($policies as $policie) {
|
||||
$policieIDCell = "<a href='?sec=gmodules&sec2=enterprise/godmode/policies/policies&id=".$policies['id']."'>".$policies['id'].'</a>';
|
||||
|
||||
switch ($policie['status']) {
|
||||
case POLICY_UPDATED:
|
||||
$status = html_print_image(
|
||||
'images/policies_ok.png',
|
||||
true,
|
||||
['title' => __('Policy updated')]
|
||||
);
|
||||
break;
|
||||
|
||||
case POLICY_PENDING_DATABASE:
|
||||
$status = html_print_image(
|
||||
'images/policies_error_db.png',
|
||||
true,
|
||||
['title' => __('Pending update policy only database')]
|
||||
);
|
||||
break;
|
||||
|
||||
case POLICY_PENDING_ALL:
|
||||
$status = html_print_image(
|
||||
'images/policies_error.png',
|
||||
true,
|
||||
['title' => __('Pending update policy')]
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
$url = $config['homeurl'].'/index.php?'.'sec=gmodules&'.'sec2=enterprise/godmode/policies/policies&id='.$policie['id'].'';
|
||||
|
||||
array_push(
|
||||
$table->data,
|
||||
[
|
||||
// $policie['id'],
|
||||
'<a href= '.$url.'>'.$policie['name'].'',
|
||||
$policie['description'],
|
||||
ui_print_group_icon($policie['id_group'], true),
|
||||
$status,
|
||||
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$totalPolicies = count($policies);
|
||||
echo '<br />';
|
||||
html_print_table($table);
|
||||
unset($table);
|
||||
ui_pagination($totalPolicies);
|
||||
}
|
|
@ -18,7 +18,7 @@ require_once $config['homedir'].'/include/functions_reporting.php';
|
|||
enterprise_include('operation/reporting/custom_reporting.php');
|
||||
|
||||
$searchAgents = $searchAlerts = $searchModules = check_acl($config['id_user'], 0, 'AR');
|
||||
$searchUsers = check_acl($config['id_user'], 0, 'UM');
|
||||
$searchUsers = $searchPolicies = check_acl($config['id_user'], 0, 'AW');
|
||||
$searchMaps = $searchReports = $searchGraphs = check_acl($config['id_user'], 0, 'IR');
|
||||
$searchMain = true;
|
||||
$searchHelps = true;
|
||||
|
@ -43,6 +43,7 @@ if ($config['search_category'] == 'all') {
|
|||
// INI SECURITY ACL
|
||||
if ((!$searchAgents && !$searchUsers && !$searchMaps)
|
||||
|| (!$searchUsers && $searchTab == 'users')
|
||||
|| (!$searchPolicies && $searchTab == 'policies')
|
||||
|| (!$searchAgents && ($searchTab == 'agents' || $searchTab == 'alerts'))
|
||||
|| (!$searchGraphs && ($searchTab == 'graphs' || $searchTab == 'maps' || $searchTab == 'reports'))
|
||||
) {
|
||||
|
@ -161,29 +162,29 @@ if ($searchModules) {
|
|||
$modules_tab = '';
|
||||
}
|
||||
|
||||
if ($searchHelps) {
|
||||
$helps_tab = [
|
||||
'text' => "<a href='index.php?search_category=helps&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
||||
'images/help_w.png',
|
||||
if ($searchPolicies) {
|
||||
$policies_tab = [
|
||||
'text' => "<a href='index.php?search_category=policies&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
||||
'images/policies.png',
|
||||
true,
|
||||
['title' => __('Helps')]
|
||||
['title' => __('Policies')]
|
||||
).'</a>',
|
||||
'active' => $searchTab == 'helps',
|
||||
'active' => $searchTab == 'policies',
|
||||
];
|
||||
} else {
|
||||
$helps_tab = '';
|
||||
$policies_tab = '';
|
||||
}
|
||||
|
||||
$onheader = [
|
||||
'main' => $main_tab,
|
||||
'agents' => $agents_tab,
|
||||
'modules' => $modules_tab,
|
||||
'alerts' => $alerts_tab,
|
||||
'users' => $users_tab,
|
||||
'graphs' => $graphs_tab,
|
||||
'reports' => $reports_tab,
|
||||
'maps' => $maps_tab,
|
||||
'helps' => $helps_tab,
|
||||
'main' => $main_tab,
|
||||
'agents' => $agents_tab,
|
||||
'modules' => $modules_tab,
|
||||
'alerts' => $alerts_tab,
|
||||
'users' => $users_tab,
|
||||
'graphs' => $graphs_tab,
|
||||
'reports' => $reports_tab,
|
||||
'maps' => $maps_tab,
|
||||
'policies' => $policies_tab,
|
||||
];
|
||||
|
||||
ui_print_page_header(
|
||||
|
@ -212,6 +213,7 @@ switch ($searchTab) {
|
|||
include_once 'search_maps.getdata.php';
|
||||
include_once 'search_modules.getdata.php';
|
||||
include_once 'search_helps.getdata.php';
|
||||
include_once 'search_policies.getdata.php';
|
||||
|
||||
include_once 'search_main.php';
|
||||
break;
|
||||
|
@ -251,8 +253,9 @@ switch ($searchTab) {
|
|||
include_once 'search_modules.php';
|
||||
break;
|
||||
|
||||
case 'helps':
|
||||
include_once 'search_helps.getdata.php';
|
||||
include_once 'search_helps.php';
|
||||
case 'policies':
|
||||
include_once 'search_policies.getdata.php';
|
||||
include_once 'search_policies.php';
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -426,24 +426,25 @@ if (check_acl($config['id_user'], 0, 'ER')) {
|
|||
).'</div>';
|
||||
}
|
||||
|
||||
if (!$config['disabled_newsletter']) {
|
||||
$newsletter = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Newsletter Subscribed').': </p>';
|
||||
if ($user_info['middlename'] > 0) {
|
||||
$newsletter .= '<span>'.__('Already subscribed to %s newsletter', get_product_name()).'</span>';
|
||||
} else {
|
||||
$newsletter .= '<span><a href="javascript: force_run_newsletter();">'.__('Subscribe to our newsletter').'</a></span></div>';
|
||||
$newsletter_reminder = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Newsletter Reminder').': </p>';
|
||||
$newsletter_reminder .= html_print_switch(
|
||||
[
|
||||
'name' => 'newsletter_reminder',
|
||||
'value' => $newsletter_reminder_value,
|
||||
'disabled' => false,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$newsletter = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Newsletter Subscribed').': </p>';
|
||||
if ($user_info['middlename'] > 0) {
|
||||
$newsletter .= '<span>'.__('Already subscribed to %s newsletter', get_product_name()).'</span>';
|
||||
} else {
|
||||
$newsletter .= '<span><a href="javascript: force_run_newsletter();">'.__('Subscribe to our newsletter').'</a></span></div>';
|
||||
$newsletter_reminder = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Newsletter Reminder').': </p>';
|
||||
$newsletter_reminder .= html_print_switch(
|
||||
[
|
||||
'name' => 'newsletter_reminder',
|
||||
'value' => $newsletter_reminder_value,
|
||||
'disabled' => false,
|
||||
]
|
||||
);
|
||||
$newsletter_reminder .= '</div>';
|
||||
}
|
||||
|
||||
$newsletter_reminder .= '</div>';
|
||||
|
||||
|
||||
|
||||
$autorefresh_list_out = [];
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.736
|
||||
%define release 190702
|
||||
%define release 190712
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.736
|
||||
%define release 190702
|
||||
%define release 190712
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.736
|
||||
%define release 190702
|
||||
%define release 190712
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
|
|
@ -820,6 +820,7 @@ CREATE TABLE IF NOT EXISTS `tmodule_relationship` (
|
|||
`module_a` int(10) unsigned NOT NULL,
|
||||
`module_b` int(10) unsigned NOT NULL,
|
||||
`disable_update` tinyint(1) unsigned NOT NULL default '0',
|
||||
`type` ENUM('direct', 'failover') DEFAULT 'direct',
|
||||
PRIMARY KEY (`id`),
|
||||
FOREIGN KEY (`module_a`) REFERENCES tagente_modulo(`id_agente_modulo`)
|
||||
ON DELETE CASCADE,
|
||||
|
@ -1452,6 +1453,8 @@ CREATE TABLE IF NOT EXISTS `treport_content` (
|
|||
`agent_max_value` TINYINT(1) DEFAULT '1',
|
||||
`agent_min_value` TINYINT(1) DEFAULT '1',
|
||||
`current_month` TINYINT(1) DEFAULT '1',
|
||||
`failover_mode` tinyint(1) DEFAULT '1',
|
||||
`failover_type` tinyint(1) DEFAULT '1',
|
||||
PRIMARY KEY(`id_rc`),
|
||||
FOREIGN KEY (`id_report`) REFERENCES treport(`id_report`)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE
|
||||
|
@ -1464,6 +1467,7 @@ CREATE TABLE IF NOT EXISTS `treport_content_sla_combined` (
|
|||
`id` INTEGER UNSIGNED NOT NULL auto_increment,
|
||||
`id_report_content` INTEGER UNSIGNED NOT NULL,
|
||||
`id_agent_module` int(10) unsigned NOT NULL,
|
||||
`id_agent_module_failover` int(10) unsigned NOT NULL,
|
||||
`sla_max` double(18,2) NOT NULL default 0,
|
||||
`sla_min` double(18,2) NOT NULL default 0,
|
||||
`sla_limit` double(18,2) NOT NULL default 0,
|
||||
|
@ -2992,6 +2996,8 @@ CREATE TABLE IF NOT EXISTS `treport_content_template` (
|
|||
`agent_max_value` TINYINT(1) DEFAULT '1',
|
||||
`agent_min_value` TINYINT(1) DEFAULT '1',
|
||||
`current_month` TINYINT(1) DEFAULT '1',
|
||||
`failover_mode` tinyint(1) DEFAULT '1',
|
||||
`failover_type` tinyint(1) DEFAULT '1',
|
||||
PRIMARY KEY(`id_rc`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
|
|
@ -114,10 +114,10 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
|
|||
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
||||
('custom_report_front_header', ''),
|
||||
('custom_report_front_footer', ''),
|
||||
('MR', 29),
|
||||
('MR', 30),
|
||||
('identification_reminder', 1),
|
||||
('identification_reminder_timestamp', 0),
|
||||
('current_package_enterprise', '736'),
|
||||
('current_package_enterprise', '737'),
|
||||
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}'),
|
||||
('custom_docs_logo', 'default_docs.png'),
|
||||
('custom_support_logo', 'default_support.png'),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-server
|
||||
Version: 7.0NG.736-190702
|
||||
Version: 7.0NG.736-190712
|
||||
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.736-190702"
|
||||
pandora_version="7.0NG.736-190712"
|
||||
|
||||
package_cpan=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -45,7 +45,7 @@ our @EXPORT = qw(
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.736";
|
||||
my $pandora_build = "190702";
|
||||
my $pandora_build = "190712";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
|
|
|
@ -56,15 +56,7 @@ my $TaskSem :shared;
|
|||
use constant {
|
||||
OS_OTHER => 10,
|
||||
OS_ROUTER => 17,
|
||||
OS_SWITCH => 18,
|
||||
DISCOVERY_HOSTDEVICES => 0,
|
||||
DISCOVERY_HOSTDEVICES_CUSTOM => 1,
|
||||
DISCOVERY_CLOUD_AWS => 2,
|
||||
DISCOVERY_APP_VMWARE => 3,
|
||||
DISCOVERY_APP_MYSQL => 4,
|
||||
DISCOVERY_APP_ORACLE => 5,
|
||||
DISCOVERY_CLOUD_AWS_EC2 => 6,
|
||||
DISCOVERY_CLOUD_AWS_RDS => 7
|
||||
OS_SWITCH => 18
|
||||
};
|
||||
|
||||
########################################################################################
|
||||
|
@ -196,49 +188,11 @@ sub data_consumer ($$) {
|
|||
my $main_event = pandora_event($pa_config, "[Discovery] Execution summary",$task->{'id_group'}, 0, 0, 0, 0, 'system', 0, $dbh);
|
||||
|
||||
my %cnf_extra;
|
||||
if ($task->{'type'} == DISCOVERY_CLOUD_AWS_EC2
|
||||
|| $task->{'type'} == DISCOVERY_CLOUD_AWS_RDS) {
|
||||
# auth_strings stores the crential identifier to be used.
|
||||
my $key = pandora_get_credential($dbh, $task->{'auth_strings'});
|
||||
|
||||
if (ref($key) eq "HASH") {
|
||||
$cnf_extra{'aws_access_key_id'} = $key->{'username'};
|
||||
$cnf_extra{'aws_secret_access_key'} = $key->{'password'};
|
||||
} else {
|
||||
# Invalid credential.
|
||||
return;
|
||||
}
|
||||
|
||||
$cnf_extra{'cloud_util_path'} = pandora_get_config_value($dbh, 'cloud_util_path');
|
||||
|
||||
# Pass credentials by file due Perl limitations. We cannot update ENV here.
|
||||
$cnf_extra{'creds_file'} = $pa_config->{'temporal'} . '/tmp_discovery.' . md5($task->{'id_rt'} . $task->{'name'} . time());
|
||||
eval {
|
||||
open(my $__file_cfg, '> '. $cnf_extra{'creds_file'}) or die($!);
|
||||
print $__file_cfg $cnf_extra{'aws_access_key_id'} . "\n";
|
||||
print $__file_cfg $cnf_extra{'aws_secret_access_key'} . "\n";
|
||||
close($__file_cfg);
|
||||
set_file_permissions(
|
||||
$pa_config,
|
||||
$cnf_extra{'creds_file'},
|
||||
"0600"
|
||||
);
|
||||
};
|
||||
if ($@) {
|
||||
logger(
|
||||
$pa_config,
|
||||
'Cannot instantiate configuration file for task: ' . safe_output($task->{'name'}),
|
||||
5
|
||||
);
|
||||
# A server restart will override ENV definition (see run)
|
||||
logger(
|
||||
$pa_config,
|
||||
'Cannot execute Discovery task: ' . safe_output($task->{'name'}) . '. Please restart the server.',
|
||||
1
|
||||
);
|
||||
# Skip this task.
|
||||
return;
|
||||
}
|
||||
|
||||
my $r = enterprise_hook('discovery_generate_extra_cnf',[$pa_config, $dbh, $task, \%cnf_extra]);
|
||||
if (defined($r) && $r eq 'ERR') {
|
||||
# Could not generate extra cnf, skip this task.
|
||||
return;
|
||||
}
|
||||
|
||||
my $recon = new PandoraFMS::Recon::Base(
|
||||
|
@ -490,7 +444,7 @@ sub PandoraFMS::Recon::Base::connect_agents($$$$$) {
|
|||
}
|
||||
|
||||
# Connect the modules if they are not already connected.
|
||||
my $connection_id = get_db_value($self->{'dbh'}, 'SELECT id FROM tmodule_relationship WHERE (module_a = ? AND module_b = ?) OR (module_b = ? AND module_a = ?)', $module_id_1, $module_id_2, $module_id_1, $module_id_2);
|
||||
my $connection_id = get_db_value($self->{'dbh'}, 'SELECT id FROM tmodule_relationship WHERE (module_a = ? AND module_b = ? AND `type` = "direct") OR (module_b = ? AND module_a = ? AND `type` = "direct")', $module_id_1, $module_id_2, $module_id_1, $module_id_2);
|
||||
if (! defined($connection_id)) {
|
||||
db_do($self->{'dbh'}, 'INSERT INTO tmodule_relationship (`module_a`, `module_b`, `id_rt`) VALUES(?, ?, ?)', $module_id_1, $module_id_2, $self->{'task_id'});
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ our @ISA = qw(Exporter);
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.736";
|
||||
my $pandora_build = "190702";
|
||||
my $pandora_build = "190712";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
|
|