Merge remote-tracking branch 'origin/develop' into ent-6422-10782-Error-entity-en-informe-SQL-query

This commit is contained in:
marcos 2020-11-24 08:59:44 +01:00
commit b42cb5a30f
102 changed files with 4941 additions and 1009 deletions

View File

@ -17,7 +17,7 @@ services:
- pandora - pandora
pandora: pandora:
image: pandorafms/pandorafms-open-stack-el8:749 image: pandorafms/pandorafms-open-stack-el8:latest
restart: always restart: always
depends_on: depends_on:
- db - db

View File

@ -143,7 +143,7 @@ done
# Darwin dmg installer files # Darwin dmg installer files
echo "Updating DARWIN DMG files..." echo "Updating DARWIN DMG files..."
sed -i -e "/VERSION/s/=.*/=\"$VERSION\"/" "$AGENT_DARWIN_BUILDER" sed -i -e "/VERSION/s/=\"7.0NG.*/=\"$VERSION\"/" "$AGENT_DARWIN_BUILDER"
sed -i -r "s/(version=\").*(\"\s+onConclusion=)/\1$VERSION\2/g" "$AGENT_DARWIN_DISTR" sed -i -r "s/(version=\").*(\"\s+onConclusion=)/\1$VERSION\2/g" "$AGENT_DARWIN_DISTR"
sed -i -r "s/(CFBundleVersion<\/key>\s*<string>).*(<\/string>)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST" sed -i -r "s/(CFBundleVersion<\/key>\s*<string>).*(<\/string>)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST"
sed -i -r "s/(CFBundleShortVersionString<\/key>\s*<string>).*(<\/string>)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST" sed -i -r "s/(CFBundleShortVersionString<\/key>\s*<string>).*(<\/string>)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST"

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 7.0NG.750-201030 Version: 7.0NG.750-201124
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -22,7 +22,7 @@ fi
# DMG package version # DMG package version
if [ "$#" -ge 2 ]; then if [ "$#" -ge 2 ]; then
VERSION="7.0NG.750" VERSION="$2"
else else
VERSION="7.0NG.750" VERSION="7.0NG.750"
fi fi
@ -37,7 +37,7 @@ fi
BUILD_DMG="$BUILD_PATH/build" BUILD_DMG="$BUILD_PATH/build"
BUILD_TMP="$BUILD_PATH/buildtmp" BUILD_TMP="$BUILD_PATH/buildtmp"
FULLNAME="7.0NG.749" FULLNAME="$DMGNAME-$VERSION.dmg"
echo "VERSION-"$VERSION" NAME-"$DMGNAME echo "VERSION-"$VERSION" NAME-"$DMGNAME
pushd . pushd .
cd $LOCALINST cd $LOCALINST

View File

@ -26,11 +26,13 @@ else
`/usr/local/share/pandora_agent/inst_utilities/print_conf.pl /usr/local/share/pandora_agent/pandora_agent.conf remote_config $REMOTECFG` `/usr/local/share/pandora_agent/inst_utilities/print_conf.pl /usr/local/share/pandora_agent/pandora_agent.conf remote_config $REMOTECFG`
# Create agent directories and files # Create agent directories and files
mkdir -p /usr/local/share/pandora_agent/collections mkdir -p /usr/local/bin/
mkdir -p /usr/local/share/pandora_agent/commands mkdir -p /usr/local/share/man/man1/
mkdir -p /usr/local/share/pandora_agent/collections/
mkdir -p /usr/local/share/pandora_agent/commands/
mkdir -p /etc/pandora/ mkdir -p /etc/pandora/
mkdir -p /var/spool/pandora/data_out mkdir -p /var/spool/pandora/data_out/
mkdir -p /var/log/pandora mkdir -p /var/log/pandora/
mv pandora_agent.conf /etc/pandora/ mv pandora_agent.conf /etc/pandora/
touch /var/log/pandora/pandora_agent.log touch /var/log/pandora/pandora_agent.log
@ -70,9 +72,9 @@ ln -s /usr/local/share/pandora_agent/collections /etc/pandora/collections
# Copy manuals # Copy manuals
cp -f man/man1/pandora_agent.1.gz /usr/local/share/man/man1 cp -f man/man1/pandora_agent.1.gz /usr/local/share/man/man1/
chmod 644 /usr/local/share/man/man1/pandora_agent.1.gz chmod 644 /usr/local/share/man/man1/pandora_agent.1.gz
cp -f man/man1/tentacle_client.1.gz /usr/local/share/man/man1 cp -f man/man1/tentacle_client.1.gz /usr/local/share/man/man1/
chmod 644 /usr/local/share/man/man1/tentacle_client.1.gz chmod 644 /usr/local/share/man/man1/tentacle_client.1.gz
# Create newsyslog entry # Create newsyslog entry

View File

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

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 7.0NG.750 %define version 7.0NG.750
%define release 201030 %define release 201124
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 7.0NG.750 %define version 7.0NG.750
%define release 201030 %define release 201124
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -10,7 +10,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.750" PI_VERSION="7.0NG.750"
PI_BUILD="201030" PI_BUILD="201124"
OS_NAME=`uname -s` OS_NAME=`uname -s`
FORCE=0 FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{201030} {201124}
ViewReadme ViewReadme
{Yes} {Yes}

View File

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

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST" VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.750(Build 201030))" VALUE "ProductVersion", "(7.0NG.750(Build 201124))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 7.0NG.750-201030 Version: 7.0NG.750-201124
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -468,6 +468,7 @@ function quickShellSettings()
100, 100,
true true
); );
$hidden->data[1][1] .= ui_print_reveal_password('gotty_pass', true);
html_print_table($t); html_print_table($t);

View File

@ -92,7 +92,11 @@ function output_xml_report($id)
$group = db_get_value('nombre', 'tgrupo', 'id_grupo', $report['id_group']); $group = db_get_value('nombre', 'tgrupo', 'id_grupo', $report['id_group']);
echo '<group><![CDATA['.io_safe_output($group)."]]></group>\n"; echo '<group><![CDATA['.io_safe_output($group)."]]></group>\n";
$items = db_get_all_rows_field_filter('treport_content', 'id_report', $report['id_report']); $items = db_get_all_rows_field_filter(
'treport_content',
'id_report',
$report['id_report']
);
foreach ($items as $item) { foreach ($items as $item) {
echo "<item>\n"; echo "<item>\n";
echo '<type>'.io_safe_output($item['type'])."</type>\n"; echo '<type>'.io_safe_output($item['type'])."</type>\n";

View File

@ -37,8 +37,16 @@ function insert_item_report($report_id, $values)
ui_print_result_message( ui_print_result_message(
$result, $result,
sprintf(__("Success add '%s' item in report '%s'."), $values['type'], $name), sprintf(
sprintf(__("Error create '%s' item in report '%s'."), $values['type'], $name) __("Success add '%s' item in report '%s'."),
$values['type'],
$name
),
sprintf(
__("Error create '%s' item in report '%s'."),
$values['type'],
$name
)
); );
} }
} }
@ -55,9 +63,12 @@ function process_upload_xml_report($xml, $group_filter=0)
$posible_name = $values['name']; $posible_name = $values['name'];
$exist = true; $exist = true;
$loops = 30; $loops = 30;
// Loops to exit or tries // Loops to exit or tries.
while ($exist && $loops > 0) { while ($exist && $loops > 0) {
$exist = (bool) db_get_row_filter('treport', ['name' => io_safe_input($posible_name)]); $exist = (bool) db_get_row_filter(
'treport',
['name' => io_safe_input($posible_name)]
);
if ($exist) { if ($exist) {
$loops--; $loops--;
@ -74,7 +85,7 @@ function process_upload_xml_report($xml, $group_filter=0)
); );
break; break;
} else if ($loops != 30) { } else if ($loops != 30) {
ui_print_error_message( ui_print_warning_message(
sprintf( sprintf(
__("Warning create '%s' report, the name exist, the report have a name %s."), __("Warning create '%s' report, the name exist, the report have a name %s."),
$reportElement->name, $reportElement->name,
@ -89,13 +100,22 @@ function process_upload_xml_report($xml, $group_filter=0)
break; break;
} }
$id_group = db_get_value('id_grupo', 'tgrupo', 'nombre', $reportElement->group); if (isset($reportElement->group) === true
if ($id_group === false) { && empty($reportElement->group) === false
ui_print_error_message(__("Error the report haven't group.")); ) {
break; $id_group = db_get_value(
'id_grupo',
'tgrupo',
'nombre',
$reportElement->group
);
if ($id_group === false) {
ui_print_error_message(__("Error the report haven't group."));
break;
}
} }
if (isset($reportElement->description)) { if (isset($reportElement->description) === true) {
$values['description'] = $reportElement->description; $values['description'] = $reportElement->description;
} }
@ -108,9 +128,19 @@ function process_upload_xml_report($xml, $group_filter=0)
); );
if ($id_report) { if ($id_report) {
db_pandora_audit('Report management', 'Create report '.$id_report, false, false); db_pandora_audit(
'Report management',
'Create report '.$id_report,
false,
false
);
} else { } else {
db_pandora_audit('Report management', 'Fail to create report', false, false); db_pandora_audit(
'Report management',
'Fail to create report',
false,
false
);
break; break;
} }
@ -119,45 +149,52 @@ function process_upload_xml_report($xml, $group_filter=0)
$values = []; $values = [];
$values['id_report'] = $id_report; $values['id_report'] = $id_report;
if (isset($item['description'])) { if (isset($item['description']) === true) {
$values['description'] = io_safe_input($item['description']); $values['description'] = io_safe_input($item['description']);
} }
if (isset($item['period'])) { if (isset($item['period']) === true) {
$values['period'] = io_safe_input($item['period']); $values['period'] = io_safe_input($item['period']);
} }
if (isset($item['type'])) { if (isset($item['type']) === true) {
$values['type'] = io_safe_input($item['type']); $values['type'] = io_safe_input($item['type']);
} }
$agents_item = []; $agents_item = [];
if (isset($item['agent'])) { if (isset($item['agent']) === true) {
$agents = agents_get_agents( $agents = agents_get_agents(
['id_grupo' => $group_filter], ['id_grupo' => $group_filter],
[ [
'id_agente', 'id_agente',
'nombre', 'alias',
] ]
); );
$agent_clean = str_replace(['[', ']'], '', $item['agent']); $agent_clean = str_replace(
[
'[',
']',
],
'',
io_safe_output($item['agent'])
);
$regular_expresion = ($agent_clean != $item['agent']); $regular_expresion = ($agent_clean != $item['agent']);
foreach ($agents as $agent) { foreach ($agents as $agent) {
if ($regular_expresion) { if ($regular_expresion) {
if ((bool) preg_match('/'.$agent_clean.'/', io_safe_output($agent['nombre']))) { if ((bool) preg_match('/'.$agent_clean.'/', io_safe_output($agent['alias']))) {
$agents_item[$agent['id_agente']]['name'] = $agent['nombre']; $agents_item[$agent['id_agente']]['name'] = $agent['alias'];
} }
} else { } else {
if ($agent_clean == io_safe_output($agent['nombre'])) { if ($agent_clean == io_safe_output($agent['alias'])) {
$agents_item[$agent['id_agente']]['name'] = $agent['nombre']; $agents_item[$agent['id_agente']]['name'] = $agent['alias'];
} }
} }
} }
} }
if (isset($item['module'])) { if (isset($item['module']) === true) {
$module_clean = str_replace(['[', ']'], '', $item['module']); $module_clean = str_replace(['[', ']'], '', $item['module']);
$regular_expresion = ($module_clean != $item['module']); $regular_expresion = ($module_clean != $item['module']);

View File

@ -114,6 +114,13 @@ foreach ($custom_fields as $field) {
} }
} }
// Connection lost alert.
ui_require_css_file('register', 'include/styles/', true);
ui_require_javascript_file('connection_check');
$conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');
// Get the custom icons. // Get the custom icons.
$docs_logo = ui_get_docs_logo(); $docs_logo = ui_get_docs_logo();
$support_logo = ui_get_support_logo(); $support_logo = ui_get_support_logo();
@ -450,7 +457,12 @@ if ($login_screen == 'logout') {
echo '<div class="content_message_alert">'; echo '<div class="content_message_alert">';
echo '<div class="text_message_alert">'; echo '<div class="text_message_alert">';
echo '<h1>'.__('Logged out').'</h1>'; echo '<h1>'.__('Logged out').'</h1>';
echo '<p>'.__('Your session has ended. Please close your browser window to close this %s session.', get_product_name()).'</p>'; if (empty($config['logout_msg']) === true) {
echo '<p>'.__('Your session has ended. Please close your browser window to close this %s session.', get_product_name()).'</p>';
} else {
echo '<p>'.__($config['logout_msg']).'</p>';
}
echo '</div>'; echo '</div>';
echo '<div class="button_message_alert">'; echo '<div class="button_message_alert">';
html_print_submit_button('Ok', 'hide-login-logout', false); html_print_submit_button('Ok', 'hide-login-logout', false);

View File

@ -148,7 +148,8 @@ if ($initial && users_is_admin()) {
config_wiz_modal( config_wiz_modal(
false, false,
true, true,
(($registration === true) ? 'show_registration_wizard()' : null) (($registration === true) ? 'show_registration_wizard()' : null),
true
); );
} }
@ -159,7 +160,8 @@ if (!$config['disabled_newsletter']) {
false, false,
// Launch only if not being launch from 'initial'. // Launch only if not being launch from 'initial'.
!$initial, !$initial,
(($show_newsletter === true) ? 'force_run_newsletter()' : null) (($show_newsletter === false) ? 'force_run_newsletter()' : null),
true
); );
} else { } else {
if ($show_newsletter) { if ($show_newsletter) {
@ -167,7 +169,8 @@ if (!$config['disabled_newsletter']) {
newsletter_wiz_modal( newsletter_wiz_modal(
false, false,
// Launch only if not being call from 'registration'. // Launch only if not being call from 'registration'.
!$registration && !$initial !$registration && !$initial,
true
); );
} }
} }

View File

@ -535,20 +535,30 @@ $table_advanced->data[0][1] = html_print_input_text(
); );
$table_advanced->data[0][3] = __('Unit'); $table_advanced->data[0][3] = __('Unit');
// $table_advanced->data[1][4] = html_print_input_text ('unit', $unit, '', 20, 65, true, $table_advanced->data[0][4] = html_print_input_text (
// $disabledBecauseInPolicy, false, '', $classdisabledBecauseInPolicy);
// $table_advanced->colspan[1][4] = 3;
$table_advanced->data[0][4] = html_print_extended_select_for_unit(
'unit', 'unit',
$unit, $unit,
'', '',
'', 20,
'0', 65,
false,
true, true,
$disabledBecauseInPolicy,
false, false,
false '',
$classdisabledBecauseInPolicy
); );
// $table_advanced->colspan[1][4] = 3;
//$table_advanced->data[0][4] = html_print_extended_select_for_unit(
// 'unit',
// $unit,
// '',
// '',
// '0',
// false,
// true,
// false,
// false
//);
$table_advanced->colspan[0][4] = 3; $table_advanced->colspan[0][4] = 3;
$module_id_policy_module = 0; $module_id_policy_module = 0;
@ -1340,115 +1350,117 @@ $(document).ready (function () {
var type_name_selected = type_names[type_selected]; var type_name_selected = type_names[type_selected];
var element = document.getElementById("module_type_help"); var element = document.getElementById("module_type_help");
var language = "<?php echo $config['language']; ?>" ; var language = "<?php echo $config['language']; ?>" ;
element.onclick = function (event) { if (typeof element !== 'undefined' && element !== null) {
if(type_name_selected == 'async_data' || element.onclick = function (event) {
type_name_selected == 'async_proc' || if(type_name_selected == 'async_data' ||
type_name_selected == 'async_string' || type_name_selected == 'async_proc' ||
type_name_selected == 'generic_proc'|| type_name_selected == 'async_string' ||
type_name_selected == 'generic_data' || type_name_selected == 'generic_proc'||
type_name_selected == 'generic_data_inc' || type_name_selected == 'generic_data' ||
type_name_selected == 'generic_data_inc_abs'|| type_name_selected == 'generic_data_inc' ||
type_name_selected == 'generic_data_string' || type_name_selected == 'generic_data_inc_abs'||
type_name_selected == 'keep_alive' type_name_selected == 'generic_data_string' ||
){ type_name_selected == 'keep_alive'
if (language == 'es'){ ){
window.open( if (language == 'es'){
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Operacion&printable=yes#Tipos_de_m.C3.B3dulos', window.open(
'_blank', 'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Operacion&printable=yes#Tipos_de_m.C3.B3dulos',
'width=800,height=600' '_blank',
); 'width=800,height=600'
} );
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Operations&printable=yes#Types_of_Modules',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_icmp' ||
type_name_selected == 'remote_icmp_proc'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_ICMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#ICMP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_snmp_string' ||
type_name_selected == 'remote_snmp_proc' ||
type_name_selected == 'remote_snmp_inc' ||
type_name_selected == 'remote_snmp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizando_con_m.C3.B3dulos_de_red_tipo_SNMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#Monitoring_by_Network_Modules_with_SNMP',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_tcp_string' ||
type_name_selected == 'remote_tcp_proc' ||
type_name_selected == 'remote_tcp_inc' ||
type_name_selected == 'remote_tcp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_TCP',
'_blank',
'width=800,height=600'
);
} }
else{ else{
window.open( window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#TCP_Monitoring', 'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Operations&printable=yes#Types_of_Modules',
'_blank', '_blank',
'width=800,height=600' 'width=800,height=600'
); );
}
}
if(type_name_selected == 'web_data' ||
type_name_selected == 'web_proc' ||
type_name_selected == 'web_content_data' ||
type_name_selected == 'web_content_string'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_web&printable=yes#Creaci.C3.B3n_de_m.C3.B3dulos_web',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Web_Monitoring&printable=yes#Creating_Web_Modules',
'_blank',
'width=800,height=600'
);
} }
}
if(type_name_selected == 'remote_icmp' ||
type_name_selected == 'remote_icmp_proc'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_ICMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#ICMP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_snmp_string' ||
type_name_selected == 'remote_snmp_proc' ||
type_name_selected == 'remote_snmp_inc' ||
type_name_selected == 'remote_snmp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizando_con_m.C3.B3dulos_de_red_tipo_SNMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#Monitoring_by_Network_Modules_with_SNMP',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_tcp_string' ||
type_name_selected == 'remote_tcp_proc' ||
type_name_selected == 'remote_tcp_inc' ||
type_name_selected == 'remote_tcp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_TCP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#TCP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'web_data' ||
type_name_selected == 'web_proc' ||
type_name_selected == 'web_content_data' ||
type_name_selected == 'web_content_string'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_web&printable=yes#Creaci.C3.B3n_de_m.C3.B3dulos_web',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Web_Monitoring&printable=yes#Creating_Web_Modules',
'_blank',
'width=800,height=600'
);
}
}
} }
} }

View File

@ -130,6 +130,16 @@ if ($update || $create) {
$id_agent = (int) get_parameter('id_agent'); $id_agent = (int) get_parameter('id_agent');
$text_module = get_parameter('text_module', ''); $text_module = get_parameter('text_module', '');
$id_agent_module = (int) get_parameter('module_search_hidden'); $id_agent_module = (int) get_parameter('module_search_hidden');
if ($text_module === '') {
$text_module = io_safe_output(
db_get_value_filter(
'nombre',
'tagente_modulo',
['id_agente_modulo' => $id_agent_module]
)
);
}
$pagination = get_parameter('pagination', ''); $pagination = get_parameter('pagination', '');
$event_view_hr = get_parameter('event_view_hr', ''); $event_view_hr = get_parameter('event_view_hr', '');
$id_user_ack = get_parameter('id_user_ack', ''); $id_user_ack = get_parameter('id_user_ack', '');

View File

@ -419,45 +419,52 @@ if ($update_group) {
$aviable_name = false; $aviable_name = false;
} }
// Check if group name is unique.
$check = db_get_value_filter(
'nombre',
'tgrupo',
[
'nombre' => $name,
'id_grupo' => $id_group,
],
'AND NOT'
);
// Check if name field is empty. // Check if name field is empty.
if ($name != '' && $aviable_name === true) { if ($name != '') {
$sql = sprintf( if (!$check) {
'UPDATE tgrupo if ($aviable_name === true) {
SET nombre = "%s", $values = [
icon = "%s", 'nombre' => $name,
disabled = %d, 'icon' => empty($icon) ? '' : substr($icon, 0, -4),
parent = %d, 'parent' => $id_parent,
custom_id = "%s", 'disabled' => !$alerts_enabled,
propagate = %d, 'custom_id' => $custom_id,
id_skin = %d, 'id_skin' => $skin,
description = "%s", 'description' => $description,
contact = "%s", 'contact' => $contact,
other = "%s", 'propagate' => $propagate,
password = "%s" 'other' => $other,
WHERE id_grupo = %d', 'password' => io_safe_input($group_pass),
$name, ];
empty($icon) ? '' : substr($icon, 0, -4),
!$alerts_enabled,
$id_parent,
$custom_id,
$propagate,
$skin,
$description,
$contact,
$other,
$group_pass,
$id_group
);
$result = db_process_sql($sql); $result = db_process_sql_update(
} else { 'tgrupo',
$result = false; $values,
} ['id_grupo' => $id_group]
);
}
if ($result !== false) { if ($result) {
ui_print_success_message(__('Group successfully updated')); ui_print_success_message(__('Group successfully updated'));
} else {
ui_print_error_message(__('There was a problem modifying group'));
}
} else {
ui_print_error_message(__('Each group must have a different name'));
}
} else { } else {
ui_print_error_message(__('There was a problem modifying group')); ui_print_error_message(__('Group must have a name'));
} }
} }

View File

@ -67,10 +67,30 @@ if ($add) {
$modules = get_parameter('module'); $modules = get_parameter('module');
$modules_id = []; $modules_id = [];
if (!empty($modules)) { if (!empty($modules)) {
$modules_id = [];
foreach ($modules as $module) { foreach ($modules as $module) {
foreach ($id_agents as $id_agent) { foreach ($id_agents as $id_agent) {
$module_id = modules_get_agentmodule_id($module, $id_agent); if ($module == '0') {
$modules_id[] = $module_id['id_agente_modulo']; // Get all modules of agent.
$agent_modules = db_get_all_rows_filter(
'tagente_modulo',
['id_agente' => $id_agent],
'id_agente_modulo'
);
$agent_modules_id = array_map(
function ($field) {
return $field['id_agente_modulo'];
},
$agent_modules
);
$modules_id = array_merge($modules_id, $agent_modules_id);
} else {
$module_id = modules_get_agentmodule_id($module, $id_agent);
$modules_id[] = $module_id['id_agente_modulo'];
}
} }
} }

View File

@ -106,15 +106,31 @@ function process_manage_add($id_alert_template, $id_agents, $module_names)
return false; return false;
} }
$modules_id = [];
foreach ($module_names as $module) { foreach ($module_names as $module) {
foreach ($id_agents as $id_agent) { foreach ($id_agents as $id_agent) {
$module_id = modules_get_agentmodule_id($module, $id_agent); if ($module == '0') {
$modules_id[] = $module_id['id_agente_modulo']; // Get all modules of agent.
} $agent_modules = db_get_all_rows_filter(
} 'tagente_modulo',
['id_agente' => $id_agent],
'id_agente_modulo'
);
if (count($module_names) == 1 && $module_names[0] == '0') { $agent_modules_id = array_map(
$modules_id = agents_common_modules($id_agents, false, true); function ($field) {
return $field['id_agente_modulo'];
},
$agent_modules
);
$modules_id = array_merge($modules_id, $agent_modules_id);
} else {
$module_id = modules_get_agentmodule_id($module, $id_agent);
$modules_id[] = $module_id['id_agente_modulo'];
}
}
} }
$conttotal = 0; $conttotal = 0;

View File

@ -66,10 +66,29 @@ if ($delete) {
$modules = (array) get_parameter('module'); $modules = (array) get_parameter('module');
$modules_id = []; $modules_id = [];
if (!empty($modules)) { if (!empty($modules)) {
$modules_id = [];
foreach ($modules as $module) { foreach ($modules as $module) {
foreach ($id_agents as $id_agent) { foreach ($id_agents as $id_agent) {
$module_id = modules_get_agentmodule_id($module, $id_agent); if ($module == '0') {
$modules_id[] = $module_id['id_agente_modulo']; // Get all modules of agent.
$agent_modules = db_get_all_rows_filter(
'tagente_modulo',
['id_agente' => $id_agent],
'id_agente_modulo'
);
$agent_modules_id = array_map(
function ($field) {
return $field['id_agente_modulo'];
},
$agent_modules
);
$modules_id = array_merge($modules_id, $agent_modules_id);
} else {
$module_id = modules_get_agentmodule_id($module, $id_agent);
$modules_id[] = $module_id['id_agente_modulo'];
}
} }
} }

View File

@ -450,7 +450,7 @@ $table->data['form_modules_2'][1] = html_print_select(
'', '',
false, false,
'width:100%' 'width:100%'
); ).' '.__('Select all modules').' '.html_print_checkbox('select_all_modules', 1, false, true, false, '', false, "class='static'");
$table->data['form_modules_2'][2] = __('When select modules'); $table->data['form_modules_2'][2] = __('When select modules');
$table->data['form_modules_2'][2] .= '<br>'; $table->data['form_modules_2'][2] .= '<br>';
@ -522,7 +522,8 @@ $table->data['form_agents_3'][1] = html_print_select(
'', '',
false, false,
'width:100%' 'width:100%'
); ).' '.__('Select all agents').' '.html_print_checkbox('select_all_agents', 1, false, true, false, '', false, "class='static'");
$table->data['form_agents_3'][2] = __('When select agents'); $table->data['form_agents_3'][2] = __('When select agents');
$table->data['form_agents_3'][2] .= '<br>'; $table->data['form_agents_3'][2] .= '<br>';
$table->data['form_agents_3'][2] .= html_print_select( $table->data['form_agents_3'][2] .= html_print_select(
@ -588,6 +589,44 @@ if ($selection_mode == 'modules') {
var limit_parameters_massive = <?php echo $config['limit_parameters_massive']; ?>; var limit_parameters_massive = <?php echo $config['limit_parameters_massive']; ?>;
$(document).ready (function () { $(document).ready (function () {
$("#checkbox-select_all_modules").change(function() {
if( $('#checkbox-select_all_modules').prop('checked')) {
$("#module_name option").prop('selected', 'selected');
$("#module_name").trigger('change');
} else {
$("#module_name option").prop('selected', false);
$("#module_name").trigger('change');
}
});
$("#module_name").change(function() {
var options_length = $("#module_name option").length;
var options_selected_length = $("#module_name option:selected").length;
if (options_selected_length < options_length) {
$('#checkbox-select_all_modules').prop("checked", false);
}
});
$("#checkbox-select_all_agents").change(function() {
if( $('#checkbox-select_all_agents').prop('checked')) {
$("#id_agents option").prop('selected', 'selected');
$("#id_agents").trigger('change');
} else {
$("#id_agents option").prop('selected', false);
$("#id_agents").trigger('change');
}
});
$("#id_agents").change(function() {
var options_length = $("#id_agents option").length;
var options_selected_length = $("#id_agents option:selected").length;
if (options_selected_length < options_length) {
$('#checkbox-select_all_agents').prop("checked", false);
}
});
$("#id_agents").change(agent_changed_by_multiple_agents); $("#id_agents").change(agent_changed_by_multiple_agents);
$("#module_name").change(module_changed_by_multiple_modules); $("#module_name").change(module_changed_by_multiple_modules);
@ -680,7 +719,7 @@ $(document).ready (function () {
$('#groups_select').val(-1); $('#groups_select').val(-1);
} }
$('input[type=checkbox]').change ( $('input[type=checkbox]').not(".static").change (
function () { function () {
if (this.id == "checkbox-force_type") { if (this.id == "checkbox-force_type") {
if (this.checked) { if (this.checked) {

View File

@ -406,7 +406,8 @@ $table->data['form_modules_2'][1] = html_print_select(
true, true,
true, true,
true true
); ).' '.__('Select all modules').' '.html_print_checkbox('select_all_modules', 1, false, true, false, '', false, "class='static'");
$table->data['form_modules_2'][2] = __('When select modules'); $table->data['form_modules_2'][2] = __('When select modules');
$table->data['form_modules_2'][2] .= '<br>'; $table->data['form_modules_2'][2] .= '<br>';
$table->data['form_modules_2'][2] .= html_print_select( $table->data['form_modules_2'][2] .= html_print_select(
@ -491,7 +492,7 @@ $table->data['form_agents_3'][1] = html_print_select(
true, true,
true, true,
false false
); ).' '.__('Select all agents').' '.html_print_checkbox('select_all_agents', 1, false, true, false, '', false, "class='static'");
$table->data['form_agents_3'][2] = __('When select agents'); $table->data['form_agents_3'][2] = __('When select agents');
$table->data['form_agents_3'][2] .= '<br>'; $table->data['form_agents_3'][2] .= '<br>';
@ -1212,7 +1213,45 @@ $(document).ready (function () {
return false; return false;
} }
}); });
$("#checkbox-select_all_modules").change(function() {
if( $('#checkbox-select_all_modules').prop('checked')) {
$("#module_name option").prop('selected', 'selected');
$("#module_name").trigger('change');
} else {
$("#module_name option").prop('selected', false);
$("#module_name").trigger('change');
}
});
$("#module_name").change(function() {
var options_length = $("#module_name option").length;
var options_selected_length = $("#module_name option:selected").length;
if (options_selected_length < options_length) {
$('#checkbox-select_all_modules').prop("checked", false);
}
});
$("#checkbox-select_all_agents").change(function() {
if( $('#checkbox-select_all_agents').prop('checked')) {
$("#id_agents option").prop('selected', 'selected');
$("#id_agents").trigger('change');
} else {
$("#id_agents option").prop('selected', false);
$("#id_agents").trigger('change');
}
});
$("#id_agents").change(function() {
var options_length = $("#id_agents option").length;
var options_selected_length = $("#id_agents option:selected").length;
if (options_selected_length < options_length) {
$('#checkbox-select_all_agents').prop("checked", false);
}
});
$("#text-custom_ip_target").hide(); $("#text-custom_ip_target").hide();
$("#id_agents").change(agent_changed_by_multiple_agents); $("#id_agents").change(agent_changed_by_multiple_agents);
@ -1463,7 +1502,7 @@ $(document).ready (function () {
$('#groups_select').val(-1); $('#groups_select').val(-1);
} }
$('input[type=checkbox]').change ( $('input[type=checkbox]').not(".static").change (
function () { function () {
if (this.id == "checkbox-force_type") { if (this.id == "checkbox-force_type") {
if (this.checked) { if (this.checked) {

View File

@ -386,121 +386,124 @@ $next_row++;
console.log(type_name_selected); console.log(type_name_selected);
var element = document.getElementById("module_type_help"); var element = document.getElementById("module_type_help");
var language = "<?php echo $config['language']; ?>" ; var language = "<?php echo $config['language']; ?>" ;
element.onclick = function (event) {
if(type_name_selected == 'async_data' || if (typeof element !== 'undefined' && element !== null) {
type_name_selected == 'async_proc' || element.onclick = function (event) {
type_name_selected == 'async_string' || if(type_name_selected == 'async_data' ||
type_name_selected == 'generic_proc'|| type_name_selected == 'async_proc' ||
type_name_selected == 'generic_data' || type_name_selected == 'async_string' ||
type_name_selected == 'generic_data_inc' || type_name_selected == 'generic_proc'||
type_name_selected == 'generic_data_inc_abs'|| type_name_selected == 'generic_data' ||
type_name_selected == 'generic_data_string' || type_name_selected == 'generic_data_inc' ||
type_name_selected == 'keep_alive' type_name_selected == 'generic_data_inc_abs'||
){ type_name_selected == 'generic_data_string' ||
if (language == 'es'){ type_name_selected == 'keep_alive'
window.open( ){
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Operacion&printable=yes#Tipos_de_m.C3.B3dulos', if (language == 'es'){
'_blank', window.open(
'width=800,height=600' 'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Operacion&printable=yes#Tipos_de_m.C3.B3dulos',
); '_blank',
} 'width=800,height=600'
else{ );
window.open( }
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Operations&printable=yes#Types_of_Modules', else{
'_blank', window.open(
'width=800,height=600' 'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Operations&printable=yes#Types_of_Modules',
); '_blank',
} 'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_icmp' ||
type_name_selected == 'remote_icmp_proc'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_ICMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#ICMP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_snmp_string' ||
type_name_selected == 'remote_snmp_proc' ||
type_name_selected == 'remote_snmp_inc' ||
type_name_selected == 'remote_snmp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizando_con_m.C3.B3dulos_de_red_tipo_SNMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#Monitoring_by_Network_Modules_with_SNMP',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_tcp_string' ||
type_name_selected == 'remote_tcp_proc' ||
type_name_selected == 'remote_tcp_inc' ||
type_name_selected == 'remote_tcp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_TCP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#TCP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'web_data' ||
type_name_selected == 'web_proc' ||
type_name_selected == 'web_content_data' ||
type_name_selected == 'web_content_string'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_web&printable=yes#Creaci.C3.B3n_de_m.C3.B3dulos_web',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Web_Monitoring&printable=yes#Creating_Web_Modules',
'_blank',
'width=800,height=600'
);
}
}
}
} }
if(type_name_selected == 'remote_icmp' ||
type_name_selected == 'remote_icmp_proc'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_ICMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#ICMP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_snmp_string' ||
type_name_selected == 'remote_snmp_proc' ||
type_name_selected == 'remote_snmp_inc' ||
type_name_selected == 'remote_snmp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizando_con_m.C3.B3dulos_de_red_tipo_SNMP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#Monitoring_by_Network_Modules_with_SNMP',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'remote_tcp_string' ||
type_name_selected == 'remote_tcp_proc' ||
type_name_selected == 'remote_tcp_inc' ||
type_name_selected == 'remote_tcp'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_remota&printable=yes#Monitorizaci.C3.B3n_TCP',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Remote_Monitoring&printable=yes#TCP_Monitoring',
'_blank',
'width=800,height=600'
);
}
}
if(type_name_selected == 'web_data' ||
type_name_selected == 'web_proc' ||
type_name_selected == 'web_content_data' ||
type_name_selected == 'web_content_string'
){
if(language == 'es'){
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Monitorizacion_web&printable=yes#Creaci.C3.B3n_de_m.C3.B3dulos_web',
'_blank',
'width=800,height=600'
);
}
else{
window.open(
'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Web_Monitoring&printable=yes#Creating_Web_Modules',
'_blank',
'width=800,height=600'
);
}
}
}
if (type_name_selected.match(/_string$/) == null) { if (type_name_selected.match(/_string$/) == null) {
// Numeric types // Numeric types

View File

@ -1813,11 +1813,9 @@ switch ($action) {
); );
$values['id_group'] = get_parameter('combo_group'); $values['id_group'] = get_parameter('combo_group');
if ($values['server_name'] == '') { $values['server_name'] = get_parameter(
$values['server_name'] = get_parameter( 'combo_server'
'combo_server' );
);
}
if ((($values['type'] == 'custom_graph') if ((($values['type'] == 'custom_graph')
|| ($values['type'] == 'automatic_custom_graph')) || ($values['type'] == 'automatic_custom_graph'))

View File

@ -91,8 +91,20 @@ foreach ($servers as $server) {
// Status // Status
$data[1] = ui_print_status_image(STATUS_SERVER_OK, '', true); $data[1] = ui_print_status_image(STATUS_SERVER_OK, '', true);
if (($server['status'] == 0) || (($date - time_w_fixed_tz($server['keepalive'])) > ($server['server_keepalive']) * 2)) { if ($server['status'] == -1) {
$data[1] = ui_print_status_image(STATUS_SERVER_DOWN, '', true); $data[1] = ui_print_status_image(
STATUS_SERVER_CRASH,
__('Server has crashed.'),
true
);
} else if (($server['status'] == 0)
|| (($date - time_w_fixed_tz($server['keepalive'])) > ($server['server_keepalive']) * 2)
) {
$data[1] = ui_print_status_image(
STATUS_SERVER_DOWN,
__('Server is stopped.'),
true
);
} }
// Type // Type

View File

@ -189,6 +189,10 @@ if (is_ajax()) {
100, 100,
true true
); );
$row['control'] .= ui_print_reveal_password(
'ldap_admin_pass',
true
);
$table->data['ldap_admin_pass'] = $row; $table->data['ldap_admin_pass'] = $row;
break; break;

View File

@ -82,6 +82,7 @@ $table_remote->data['ehorus_user'] = $row;
$row = []; $row = [];
$row['name'] = __('Password'); $row['name'] = __('Password');
$row['control'] = html_print_input_password('ehorus_pass', io_output_password($config['ehorus_pass']), '', 30, 100, true); $row['control'] = html_print_input_password('ehorus_pass', io_output_password($config['ehorus_pass']), '', 30, 100, true);
$row['control'] .= ui_print_reveal_password('ehorus_pass', true);
$table_remote->data['ehorus_pass'] = $row; $table_remote->data['ehorus_pass'] = $row;
// Directory hostname. // Directory hostname.

View File

@ -116,7 +116,8 @@ $table->data[$i][0] = __('Phantomjs bin directory');
$table->data[$i++][1] = html_print_input_text('phantomjs_bin', io_safe_output($config['phantomjs_bin']), '', 30, 100, true); $table->data[$i++][1] = html_print_input_text('phantomjs_bin', io_safe_output($config['phantomjs_bin']), '', 30, 100, true);
$table->data[$i][0] = __('Auto login (hash) password'); $table->data[$i][0] = __('Auto login (hash) password');
$table->data[$i++][1] = html_print_input_password('loginhash_pwd', io_output_password($config['loginhash_pwd']), '', 15, 15, true); $table->data[$i][1] = html_print_input_password('loginhash_pwd', io_output_password($config['loginhash_pwd']), '', 15, 15, true);
$table->data[$i++][1] .= ui_print_reveal_password('loginhash_pwd', true);
$table->data[$i][0] = __('Time source'); $table->data[$i][0] = __('Time source');
$sources['system'] = __('System'); $sources['system'] = __('System');
@ -154,7 +155,8 @@ if (isset($_POST['list_ACL_IPs_for_API'])) {
$table->data[$i++][1] = html_print_textarea('list_ACL_IPs_for_API', 2, 25, $list_ACL_IPs_for_API, 'style="height: 50px; width: 300px"', true); $table->data[$i++][1] = html_print_textarea('list_ACL_IPs_for_API', 2, 25, $list_ACL_IPs_for_API, 'style="height: 50px; width: 300px"', true);
$table->data[$i][0] = __('API password'); $table->data[$i][0] = __('API password');
$table->data[$i++][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true); $table->data[$i][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true);
$table->data[$i++][1] .= ui_print_reveal_password('api_password', true);
$table->data[$i][0] = __('Enable GIS features'); $table->data[$i][0] = __('Enable GIS features');
$table->data[$i++][1] = html_print_checkbox_switch('activate_gis', 1, $config['activate_gis'], true); $table->data[$i++][1] = html_print_checkbox_switch('activate_gis', 1, $config['activate_gis'], true);
@ -379,6 +381,7 @@ $table_mail_conf->data[5][1] = html_print_input_text('email_username', $config['
$table_mail_conf->data[6][0] = __('Email password'); $table_mail_conf->data[6][0] = __('Email password');
$table_mail_conf->data[6][1] = html_print_input_password('email_password', io_output_password($config['email_password']), '', 30, 100, true); $table_mail_conf->data[6][1] = html_print_input_password('email_password', io_output_password($config['email_password']), '', 30, 100, true);
$table_mail_conf->data[6][1] .= ui_print_reveal_password('email_password', true);
$uniqid = uniqid(); $uniqid = uniqid();

View File

@ -221,6 +221,7 @@ $table_remote->data['integria_user'] = $row;
$row = []; $row = [];
$row['name'] = __('Password'); $row['name'] = __('Password');
$row['control'] = html_print_input_password('integria_pass', io_output_password($config['integria_pass']), '', 30, 100, true); $row['control'] = html_print_input_password('integria_pass', io_output_password($config['integria_pass']), '', 30, 100, true);
$row['control'] .= ui_print_reveal_password('integria_pass', true);
$table_remote->data['integria_pass'] = $row; $table_remote->data['integria_pass'] = $row;
// Integria hostname. // Integria hostname.
@ -233,6 +234,7 @@ $table_remote->data['integria_hostname'] = $row;
$row = []; $row = [];
$row['name'] = __('API Password'); $row['name'] = __('API Password');
$row['control'] = html_print_input_password('integria_api_pass', io_output_password($config['integria_api_pass']), '', 30, 100, true); $row['control'] = html_print_input_password('integria_api_pass', io_output_password($config['integria_api_pass']), '', 30, 100, true);
$row['control'] .= ui_print_reveal_password('integria_api_pass', true);
$table_remote->data['integria_api_pass'] = $row; $table_remote->data['integria_api_pass'] = $row;
// Request timeout. // Request timeout.

View File

@ -44,6 +44,16 @@ if (! check_acl($config['id_user'], 0, 'PM')
return; return;
} }
require_once $config['homedir'].'/include/functions_update_manager.php';
if (update_manager_verify_license_expired()) {
ui_print_error_message(
__('The license has expired. Please contact Artica at info@artica.es')
);
return;
}
$baseurl = ui_get_full_url(false, false, false, false); $baseurl = ui_get_full_url(false, false, false, false);
$current_package = db_get_value( $current_package = db_get_value(

View File

@ -94,6 +94,13 @@ if ($upload_max_filesize < $PHPupload_max_filesize_min) {
$php_settings_fine++; $php_settings_fine++;
} }
if (update_manager_verify_license_expired()) {
ui_print_error_message(
__('The license has expired. Please contact Artica at info@artica.es')
);
return;
}
// Verify registry. // Verify registry.
if (update_manager_verify_registration() === false) { if (update_manager_verify_registration() === false) {
ui_require_css_file('register'); ui_require_css_file('register');

View File

@ -1387,14 +1387,32 @@ $(document).ready (function () {
}); });
}); });
$('#submit-crtbutton').click(function (e) { function checkProfiles(e) {
e.preventDefault(); e.preventDefault();
var rows = $("#table_profiles tr").length; if ($('input[name="is_admin"]:checked').val() == 1) {
if ((is_metaconsole === '1' && rows <= 3) || (is_metaconsole === '' && rows <= 2)) { // Admin does not require profiles.
alert('<?php echo __('please add a profile'); ?>'); $('#user_profile_form').submit();
} else { } else {
this.form.submit(); if ($('#table_profiles tbody').children().length == 1) {
confirmDialog({
title: "<?php echo __('Warning'); ?>",
message: "<?php echo __('User will be created without profiles assigned and won\'t be able to log in, are you sure?'); ?>",
onAccept: function() {
$('#user_profile_form').submit();
}
});
} else {
$('#user_profile_form').submit();
}
} }
}
$('#submit-crtbutton').click(function (e) {
checkProfiles(e);
});
$('#submit-uptbutton').click(function (e) {
checkProfiles(e);
}); });
}); });

View File

@ -176,7 +176,7 @@ class DiscoveryTaskList extends HTML
'type' => 'button', 'type' => 'button',
'attributes' => 'class="sub upd"', 'attributes' => 'class="sub upd"',
'return' => true, 'return' => true,
'script' => 'location.reload();', 'script' => 'location.href = \''.$this->url.'\';',
], ],
], ],
], ],
@ -402,8 +402,10 @@ class DiscoveryTaskList extends HTML
$table->headstyle[$i] = 'text-align: left;'; $table->headstyle[$i] = 'text-align: left;';
} }
// Task name.
$table->headstyle[1] .= 'min-width: 150px; width: 300px;';
// Name. // Name.
$table->headstyle[4] .= 'min-width: 100px; width: 600px;'; $table->headstyle[4] .= 'min-width: 100px; width: 400px;';
// Status. // Status.
$table->headstyle[5] .= 'min-width: 50px; width: 100px;'; $table->headstyle[5] .= 'min-width: 50px; width: 100px;';
// Task type. // Task type.

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -333,17 +333,52 @@ if ($get_filter_values) {
if ($event_filter === false) { if ($event_filter === false) {
$event_filter = [ $event_filter = [
'status' => EVENT_NO_VALIDATED, 'status' => EVENT_NO_VALIDATED,
'event_view_hr' => $config['event_view_hr'], 'event_view_hr' => $config['event_view_hr'],
'group_rep' => 1, 'group_rep' => 1,
'tag_with' => [], 'tag_with' => [],
'tag_without' => [], 'tag_without' => [],
'history' => false, 'history' => false,
'module_search' => '',
'filter_only_alert' => '-1',
'user_comment' => '',
'id_extra' => '',
'id_user_ack' => '',
'date_from' => '',
'date_to' => '',
'severity' => '',
'event_type' => '',
'group_rep' => 0,
'id_group' => 0,
'id_group_filter' => 0,
'group_name' => 'All',
'text_agent' => '',
'id_agent' => 0,
'id_name' => 'None',
'filter_id' => 0,
]; ];
} else {
$event_filter['module_search'] = io_safe_output(db_get_value_filter('nombre', 'tagente_modulo', ['id_agente_modulo' => $event_filter['id_agent_module']]));
$a = array_keys(users_get_groups(false));
$event_filter['group_name'] = '';
foreach ($a as $key => $value) {
if ($value == $event_filter['id_group']) {
$event_filter['group_name'] = db_get_value('nombre', 'tgrupo', 'id_grupo', $event_filter['id_group_filter']);
if ($event_filter['group_name'] === false) {
$event_filter['group_name'] = __('All');
}
}
}
$event_filter['module_search'] = io_safe_output(db_get_value_filter('nombre', 'tagente_modulo', ['id_agente_modulo' => $event_filter['id_agent_module']]));
} }
$event_filter['search'] = io_safe_output($event_filter['search']); $event_filter['search'] = io_safe_output($event_filter['search']);
$event_filter['id_name'] = io_safe_output($event_filter['id_name']); $event_filter['id_name'] = io_safe_output($event_filter['id_name']);
$event_filter['text_agent'] = io_safe_output($event_filter['text_agent']);
$event_filter['source'] = io_safe_output($event_filter['source']);
$event_filter['tag_with'] = base64_encode( $event_filter['tag_with'] = base64_encode(
io_safe_output($event_filter['tag_with']) io_safe_output($event_filter['tag_with'])
); );
@ -355,7 +390,7 @@ if ($get_filter_values) {
} }
if ($load_filter_modal) { if ($load_filter_modal) {
$current = get_parameter('current_filter', ''); $current = db_get_value_filter('default_event_filter', 'tusuario', ['id_user' => $config['id_user']]);
$filters = events_get_event_filter_select(); $filters = events_get_event_filter_select();
$user_groups_array = users_get_groups_for_select( $user_groups_array = users_get_groups_for_select(
$config['id_user'], $config['id_user'],
@ -435,10 +470,12 @@ function load_form_filter() {
}, },
function (data) { function (data) {
jQuery.each (data, function (i, val) { jQuery.each (data, function (i, val) {
console.log(val);
if (i == 'id_name') if (i == 'id_name')
$("#hidden-id_name").val(val); $("#hidden-id_name").val(val);
if (i == 'id_group') if (i == 'id_group'){
$("#id_group").val(val); $('#id_group').val(val);
}
if (i == 'event_type') if (i == 'event_type')
$("#event_type").val(val); $("#event_type").val(val);
if (i == 'severity') { if (i == 'severity') {
@ -448,9 +485,9 @@ function load_form_filter() {
if (i == 'status') if (i == 'status')
$("#status").val(val); $("#status").val(val);
if (i == 'search') if (i == 'search')
$("#text-search").val(val); $('#text-search').val(val);
if (i == 'text_agent') if (i == 'text_agent')
$("#text_id_agent").val(val); $('input[name=text_agent]').val(val);
if (i == 'id_agent') if (i == 'id_agent')
$('input:hidden[name=id_agent]').val(val); $('input:hidden[name=id_agent]').val(val);
if (i == 'id_agent_module') if (i == 'id_agent_module')
@ -479,6 +516,15 @@ function load_form_filter() {
$("#text-user_comment").val(val); $("#text-user_comment").val(val);
if (i == 'id_source_event') if (i == 'id_source_event')
$("#text-id_source_event").val(val); $("#text-id_source_event").val(val);
if(i == 'date_from')
$("#text-date_from").val(val);
if(i == 'date_to')
$("#text-date_to").val(val);
if(i == 'module_search')
$('input[name=module_search]').val(val);
if(i == 'group_name')
$("#select2-id_group_filter-container").text(val);
}); });
reorder_tags_inputs(); reorder_tags_inputs();
// Update the info with the loaded filter // Update the info with the loaded filter
@ -1147,12 +1193,37 @@ if ($change_status) {
$event_ids = get_parameter('event_ids'); $event_ids = get_parameter('event_ids');
$new_status = get_parameter('new_status'); $new_status = get_parameter('new_status');
$return = events_change_status(explode(',', $event_ids), $new_status, $meta, $history); $return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
if ($return) { if ($return !== false) {
echo 'status_ok'; echo json_encode(
[
'status' => 'status_ok',
'user' => db_get_value(
'fullname',
'tusuario',
'id_user',
$config['id_user']
),
]
);
} else { } else {
echo 'status_error'; echo json_encode(
[
'status' => 'status_error',
'user' => db_get_value(
'fullname',
'tusuario',
'id_user',
$config['id_user']
),
]
);
} }
return; return;

View File

@ -239,8 +239,7 @@ function process_user_login_remote($login, $pass, $api=false)
// Unknown authentication method // Unknown authentication method
default: default:
$config['auth_error'] = 'User not found in database $config['auth_error'] = 'User not found in database or incorrect password';
or incorrect password';
return false; return false;
break; break;
} }

View File

@ -273,7 +273,7 @@ class AgentWizard extends HTML
// Check access. // Check access.
check_login(); check_login();
if (! check_acl($config['id_user'], 0, 'AR')) { if (!check_acl($config['id_user'], 0, 'AR')) {
db_pandora_audit( db_pandora_audit(
'ACL Violation', 'ACL Violation',
'Trying to access event viewer' 'Trying to access event viewer'
@ -293,6 +293,29 @@ class AgentWizard extends HTML
$this->idAgent = get_parameter('id_agente', ''); $this->idAgent = get_parameter('id_agente', '');
$this->idPolicy = get_parameter('id', ''); $this->idPolicy = get_parameter('id', '');
$this->targetIp = get_parameter('targetIp', ''); $this->targetIp = get_parameter('targetIp', '');
if (!empty($this->idAgent)) {
$array_aux = db_get_all_rows_sql(
sprintf(
'SELECT ip FROM taddress ta
INNER JOIN taddress_agent taa ON taa.id_a = ta.id_a
WHERE taa.id_agent = %d',
$this->idAgent
)
);
if (!empty($array_aux)) {
$this->datalist = [];
foreach ($array_aux as $key => $value) {
$this->datalist[] = $value['ip'];
}
}
if (count($this->datalist) === 1 && $this->targetIp === '') {
$this->targetIp = $this->datalist[0];
}
}
$this->server = (int) get_parameter('server', '1'); $this->server = (int) get_parameter('server', '1');
if ($this->server !== 0) { if ($this->server !== 0) {
$this->serverType = (int) db_get_value( $this->serverType = (int) db_get_value(
@ -563,6 +586,18 @@ class AgentWizard extends HTML
], ],
]; ];
if (!empty($this->datalist)) {
$inputs[] = [
'id' => 'li_address_list',
'arguments' => [
'name' => 'address_list',
'type' => 'datalist',
'value' => $this->datalist,
'return' => true,
],
];
}
$inputs[] = [ $inputs[] = [
'label' => __('Target IP'), 'label' => __('Target IP'),
'id' => 'txt-targetIp', 'id' => 'txt-targetIp',
@ -573,6 +608,7 @@ class AgentWizard extends HTML
'class' => '', 'class' => '',
'value' => $this->targetIp, 'value' => $this->targetIp,
'return' => true, 'return' => true,
'list' => 'address_list',
], ],
]; ];
@ -865,7 +901,6 @@ class AgentWizard extends HTML
], ],
true true
); );
} }
@ -992,10 +1027,51 @@ class AgentWizard extends HTML
} }
if ($this->wizardSection === 'snmp_interfaces_explorer') { if ($this->wizardSection === 'snmp_interfaces_explorer') {
// First, try x64 interfaces. // Check if thereis x64 counters.
$this->interfacesx64 = true; $snmp_tmp = '.1.3.6.1.2.1.31.1.1.1.6';
$check_x64 = get_snmpwalk(
$this->targetIp,
$this->version,
$this->community,
$this->authUserV3,
$this->securityLevelV3,
$this->authMethodV3,
$this->authPassV3,
$this->privacyMethodV3,
$this->privacyPassV3,
0,
$snmp_tmp,
$this->targetPort,
$this->server,
$this->extraArguments
);
if ($check_x64) {
$this->interfacesx64 = true;
$oidExplore = '.1.3.6.1.2.1.31.1.1.1.1';
} else {
$this->interfacesx64 = false;
$oidExplore = '1.3.6.1.2.1.2.2.1.2';
}
// Explore interface names. // Explore interface names.
$oidExplore = '.1.3.6.1.2.1.31.1.1.1.1'; $oidExplore = '.1.3.6.1.2.1.31.1.1.1.1';
$receivedOid = get_snmpwalk(
$this->targetIp,
$this->version,
$this->community,
$this->authUserV3,
$this->securityLevelV3,
$this->authMethodV3,
$this->authPassV3,
$this->privacyMethodV3,
$this->privacyPassV3,
0,
$oidExplore,
$this->targetPort,
$this->server,
$this->extraArguments
);
} else { } else {
// Get the device PEN. // Get the device PEN.
$oidExplore = '.1.3.6.1.2.1.1.2.0'; $oidExplore = '.1.3.6.1.2.1.1.2.0';
@ -1310,7 +1386,7 @@ class AgentWizard extends HTML
* *
* @return array * @return array
*/ */
public function candidateModuleToCreate(array $data):array public function candidateModuleToCreate(array $data): array
{ {
$modulesActivated = []; $modulesActivated = [];
$generalInterface = false; $generalInterface = false;
@ -1391,10 +1467,16 @@ class AgentWizard extends HTML
$result[$value]['name'] = $data['module-default_name-'.$key]; $result[$value]['name'] = $data['module-default_name-'.$key];
} else if (empty(preg_match('/module-description-set/', $k)) === false) { } else if (empty(preg_match('/module-description-set/', $k)) === false) {
$result[$value]['description'] = $data['module-default_description-'.$key]; $result[$value]['description'] = $data['module-default_description-'.$key];
} else if (empty(preg_match('/module-value/', $k)) === false) {
$result[$value]['value'] = $data['module-value-'.$key];
} }
preg_match('/^(.*)-.*?_(\d-\d)$/', $k, $matches); preg_match('/^(.*)-.*?_(\d+-\d+)$/', $k, $matches);
$k = $matches[1].'-0_'.$matches[2]; $k = $matches[1].'-0_'.$matches[2];
} else {
if (empty(preg_match('/module-value/', $k)) === false) {
$result[$value]['value'] = $data[$k];
}
} }
} }
@ -1418,7 +1500,7 @@ class AgentWizard extends HTML
$result[$value]['scan_type'] = (int) $data[$k]; $result[$value]['scan_type'] = (int) $data[$k];
} else if (empty(preg_match('/module-execution_type/', $k)) === false) { } else if (empty(preg_match('/module-execution_type/', $k)) === false) {
$result[$value]['execution_type'] = (int) $data[$k]; $result[$value]['execution_type'] = (int) $data[$k];
} else if (empty(preg_match('/module-value/', $k)) === false) { } else if (($data['wizard_section'] !== 'snmp_interfaces_explorer') && (empty(preg_match('/module-value/', $k)) === false)) {
$result[$value]['value'] = $data[$k]; $result[$value]['value'] = $data[$k];
} else if (empty(preg_match('/module-macros/', $k)) === false) { } else if (empty(preg_match('/module-macros/', $k)) === false) {
$result[$value]['macros'] = $data[$k]; $result[$value]['macros'] = $data[$k];
@ -1560,8 +1642,8 @@ class AgentWizard extends HTML
if ($this->securityLevelV3 === 'authNoPriv' if ($this->securityLevelV3 === 'authNoPriv'
|| $this->securityLevelV3 === 'authPriv' || $this->securityLevelV3 === 'authPriv'
) { ) {
$values['plugin_parameter'] = $this->authMethodV3; $values['plugin_parameter'] = $this->authMethodV3;
$values['plugin_pass'] = $this->authPassV3; $values['plugin_pass'] = $this->authPassV3;
if ($this->securityLevelV3 === 'authPriv') { if ($this->securityLevelV3 === 'authPriv') {
$values['custom_string_1'] = $this->privacyMethodV3; $values['custom_string_1'] = $this->privacyMethodV3;
$values['custom_string_2'] = $this->privacyPassV3; $values['custom_string_2'] = $this->privacyPassV3;
@ -2261,7 +2343,7 @@ class AgentWizard extends HTML
private function replacementMacrosPlugin( private function replacementMacrosPlugin(
string $text, string $text,
array $macros array $macros
):string { ): string {
// Only agents. // Only agents.
if (empty($this->idPolicy) === true) { if (empty($this->idPolicy) === true) {
// Common. // Common.
@ -2308,7 +2390,7 @@ class AgentWizard extends HTML
?string $value, ?string $value,
?string $unit='', ?string $unit='',
?int $moduleType=0 ?int $moduleType=0
):string { ): string {
if ($moduleType !== MODULE_TYPE_REMOTE_SNMP_INC if ($moduleType !== MODULE_TYPE_REMOTE_SNMP_INC
&& $moduleType !== MODULE_TYPE_GENERIC_DATA_INC && $moduleType !== MODULE_TYPE_GENERIC_DATA_INC
&& $moduleType !== MODULE_TYPE_REMOTE_TCP_INC && $moduleType !== MODULE_TYPE_REMOTE_TCP_INC
@ -2562,7 +2644,7 @@ class AgentWizard extends HTML
// Unpack the extra fields // Unpack the extra fields
// and include with key field in a field set. // and include with key field in a field set.
$macros = json_decode($module['macros'], true); $macros = json_decode($module['macros'], true);
$fieldSet = [ '0' => $module['query_key_field'] ]; $fieldSet = ['0' => $module['query_key_field']];
foreach ($macros as $fieldKey => $fieldMacro) { foreach ($macros as $fieldKey => $fieldMacro) {
if (preg_match('/extra_field_/', $fieldKey) !== 0) { if (preg_match('/extra_field_/', $fieldKey) !== 0) {
$tmpKey = explode('_', $fieldKey); $tmpKey = explode('_', $fieldKey);
@ -3100,7 +3182,6 @@ class AgentWizard extends HTML
// Add Create Modules form. // Add Create Modules form.
$this->createModulesForm(); $this->createModulesForm();
} }
} }
@ -3209,7 +3290,6 @@ class AgentWizard extends HTML
} }
return false; return false;
} }
@ -3306,7 +3386,7 @@ class AgentWizard extends HTML
* *
* @return array Inputs for common data. * @return array Inputs for common data.
*/ */
private function getCommonDataInputs():array private function getCommonDataInputs(): array
{ {
$inputs[] = [ $inputs[] = [
'id' => 'create-modules-action', 'id' => 'create-modules-action',
@ -4116,13 +4196,13 @@ class AgentWizard extends HTML
} }
/** /**
* This function return the definition of modules for SNMP Interfaces * This function return the definition of modules for SNMP Interfaces
* *
* @param array $data Data. * @param array $data Data.
* *
* @return array Return modules for defect. * @return array Return modules for defect.
*/ */
private function getInterfacesModules(array $data=[]) private function getInterfacesModules(array $data=[])
{ {
$moduleDescription = ''; $moduleDescription = '';
@ -4207,6 +4287,34 @@ class AgentWizard extends HTML
], ],
]; ];
// Get x86 or x64 modules.
if ($this->interfacesx64 === true) {
$definition_temp = $this->getInterfacesModulesx64($data);
} else {
$definition_temp = $this->getInterfacesModulesx86($data);
}
// General monitoring names.
$general_module_names = [
'ifInOctets / ifHCInOctets',
'ifOutOctets / ifHCOutOctets',
'ifInUcastPkts / ifHCInUcastPkts',
'ifOutUcastPkts / ifHCOutUcastPkts',
'ifInNUcastPkts / ifHCInNUcastPkts',
'ifOutNUcastPkts / ifHCOutNUcastPkts',
];
if ($name == '') {
foreach ($definition_temp as $module => $module_def) {
$definition_temp[$module]['module_name'] = array_shift($general_module_names);
}
}
if (empty($definition_temp) === false) {
$definition = array_merge($definition, $definition_temp);
}
// Continue with common x86 and x84 modules.
// IfAdminStatus. // IfAdminStatus.
$moduleName = $name.'ifAdminStatus'; $moduleName = $name.'ifAdminStatus';
$definition['ifAdminStatus'] = [ $definition['ifAdminStatus'] = [
@ -4333,19 +4441,6 @@ class AgentWizard extends HTML
], ],
]; ];
// Get x86 or x64 modules.
if ($this->interfacesx64 === true) {
$definitionx64 = $this->getInterfacesModulesx64($data);
if (empty($definitionx64) === false) {
$definition = array_merge($definition, $definitionx64);
}
} else {
$definitionx86 = $this->getInterfacesModulesx86($data);
if (empty($definitionx86) === false) {
$definition = array_merge($definition, $definitionx86);
}
}
return $definition; return $definition;
} }
@ -4815,7 +4910,7 @@ class AgentWizard extends HTML
try { try {
exec($execution, $output); exec($execution, $output);
} catch (Exception $ex) { } catch (Exception $ex) {
$output = [ '0' => 'ERROR: Failed execution: '.(string) $ex]; $output = ['0' => 'ERROR: Failed execution: '.(string) $ex];
} }
return $output; return $output;
@ -4913,7 +5008,7 @@ class AgentWizard extends HTML
// Meta. // Meta.
var meta = "<?php echo is_metaconsole(); ?>"; var meta = "<?php echo is_metaconsole(); ?>";
var hack_meta = ''; var hack_meta = '';
if(meta){ if (meta) {
hack_meta = '../../'; hack_meta = '../../';
} }
@ -4921,15 +5016,15 @@ class AgentWizard extends HTML
showV3Form(); showV3Form();
// Filter search interfaces snmp. // Filter search interfaces snmp.
$('#text-filter-search').keyup(function () { $('#text-filter-search').keyup(function() {
var string = $('#text-filter-search').val(); var string = $('#text-filter-search').val();
var regex = new RegExp(string); var regex = new RegExp(string);
var interfaces = $('.interfaces_search'); var interfaces = $('.interfaces_search');
interfaces.each(function(){ interfaces.each(function() {
if(string == ''){ if (string == '') {
$(this).removeClass('hidden'); $(this).removeClass('hidden');
} else { } else {
if(this.id.match(regex)) { if (this.id.match(regex)) {
$(this).removeClass('hidden'); $(this).removeClass('hidden');
} else { } else {
$(this).addClass('hidden'); $(this).addClass('hidden');
@ -4939,12 +5034,12 @@ class AgentWizard extends HTML
}); });
// Loading. // Loading.
$('#submit-sub-protocol').click(function () { $('#submit-sub-protocol').click(function() {
$('.wizard-result').remove(); $('.wizard-result').remove();
$('#form-create-modules').remove(); $('#form-create-modules').remove();
$('.textodialogo').remove(); $('.textodialogo').remove();
$('.loading-wizard') $('.loading-wizard')
.html('<center><span style="font-size:25px;">Loading...</span><img style="width:25px;heigth:25px;" src="'+hack_meta+'images/spinner.gif"></center>'); .html('<center><span style="font-size:25px;">Loading...</span><img style="width:25px;heigth:25px;" src="' + hack_meta + 'images/spinner.gif"></center>');
}); });
}); });
@ -4962,17 +5057,17 @@ class AgentWizard extends HTML
function showSecurityLevelForm() { function showSecurityLevelForm() {
var selector = $('#securityLevelV3').val(); var selector = $('#securityLevelV3').val();
if(selector === 'authNoPriv' || selector === 'authPriv'){ if (selector === 'authNoPriv' || selector === 'authPriv') {
$('#txt-authMethodV3').removeClass('invisible'); $('#txt-authMethodV3').removeClass('invisible');
$('#txt-authPassV3').removeClass('invisible'); $('#txt-authPassV3').removeClass('invisible');
if(selector === 'authPriv'){ if (selector === 'authPriv') {
$('#txt-privacyMethodV3').removeClass('invisible'); $('#txt-privacyMethodV3').removeClass('invisible');
$('#txt-privacyPassV3').removeClass('invisible'); $('#txt-privacyPassV3').removeClass('invisible');
} else { } else {
$('#txt-privacyMethodV3').addClass('invisible'); $('#txt-privacyMethodV3').addClass('invisible');
$('#txt-privacyPassV3').addClass('invisible'); $('#txt-privacyPassV3').addClass('invisible');
} }
} else { } else {
$('#txt-authMethodV3').addClass('invisible'); $('#txt-authMethodV3').addClass('invisible');
$('#txt-authPassV3').addClass('invisible'); $('#txt-authPassV3').addClass('invisible');
$('#txt-privacyMethodV3').addClass('invisible'); $('#txt-privacyMethodV3').addClass('invisible');
@ -4986,45 +5081,42 @@ class AgentWizard extends HTML
var text = ""; var text = "";
var failed = 0; var failed = 0;
try { try {
data = JSON.parse(data); data = JSON.parse(data);
text = data["result"]; text = data["result"];
} catch (err) { } catch (err) {
title = "<?php echo __('Failed'); ?>"; title = "<?php echo __('Failed'); ?>";
text = err.message; text = err.message;
failed = 1; failed = 1;
} }
if (!failed && data["error"] != undefined) { if (!failed && data["error"] != undefined) {
title = "<?php echo __('Failed'); ?>"; title = "<?php echo __('Failed'); ?>";
text = data["error"]; text = data["error"];
failed = 1; failed = 1;
} }
if (data["report"] != undefined) { if (data["report"] != undefined) {
data["report"].forEach(function(item) { data["report"].forEach(function(item) {
text += "<br>" + item; text += "<br>" + item;
}); });
} }
$("#msg").empty(); $("#msg").empty();
$("#msg").html(text); $("#msg").html(text);
$("#msg").dialog({ $("#msg").dialog({
width: 450, width: 450,
position: { position: {
my: "center", my: "center",
at: "center", at: "center",
of: window, of: window,
collision: "fit" collision: "fit"
}, },
title: title, title: title,
buttons: [ buttons: [{
{ class: "ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
class:
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
text: "OK", text: "OK",
click: function(e) { click: function(e) {
$("#msg").close(); $("#msg").close();
} }
} }]
]
}); });
} }
@ -5044,8 +5136,8 @@ class AgentWizard extends HTML
var markedCount = 0; var markedCount = 0;
if (type == 'block') { if (type == 'block') {
selectedBlock selectedBlock
.parent() .parent()
.removeClass("alpha50"); .removeClass("alpha50");
if (selectedBlock.prop("checked")) { if (selectedBlock.prop("checked")) {
// Set to active the values of fields. // Set to active the values of fields.
$("[id*=hidden-module-active-"+blockNumber+"]") $("[id*=hidden-module-active-"+blockNumber+"]")
@ -5054,9 +5146,9 @@ class AgentWizard extends HTML
}); });
// Set checked. // Set checked.
$("[id*=checkbox-sel_module_" + blockNumber + "]") $("[id*=checkbox-sel_module_" + blockNumber + "]")
.each(function(){ .each(function() {
$(this).prop("checked", true); $(this).prop("checked", true);
}); });
imageInfoModules.removeClass('hidden'); imageInfoModules.removeClass('hidden');
} else { } else {
// Set to inactive the values of fields. // Set to inactive the values of fields.
@ -5066,15 +5158,15 @@ class AgentWizard extends HTML
}); });
// Set unchecked. // Set unchecked.
$("[id*=checkbox-sel_module_" + blockNumber + "]") $("[id*=checkbox-sel_module_" + blockNumber + "]")
.each(function(){ .each(function() {
$(this).prop("checked", false); $(this).prop("checked", false);
}); });
imageInfoModules.addClass('hidden'); imageInfoModules.addClass('hidden');
} }
} else if (type == 'module') { } else if (type == 'module') {
// Getting the element. // Getting the element.
var thisModuleHidden = document.getElementById("hidden-module-active-"+switchName[2]+"_"+moduleNumber); var thisModuleHidden = document.getElementById("hidden-module-active-" + switchName[2] + "_" + moduleNumber);
var thisModule = $("#checkbox-sel_module_"+blockNumber+"_"+moduleNumber); var thisModule = $("#checkbox-sel_module_" + blockNumber + "_" + moduleNumber);
// Setting the individual field // Setting the individual field
if (thisModule.prop('checked')) { if (thisModule.prop('checked')) {
thisModuleHidden.value = '1'; thisModuleHidden.value = '1';
@ -5084,12 +5176,12 @@ class AgentWizard extends HTML
// Get the list of selected modules. // Get the list of selected modules.
$("[id*=checkbox-sel_module_" + blockNumber + "]") $("[id*=checkbox-sel_module_" + blockNumber + "]")
.each(function() { .each(function() {
if ($(this).prop("checked")) { if ($(this).prop("checked")) {
markedCount++; markedCount++;
} }
totalCount++; totalCount++;
}); });
if (totalCount == markedCount) { if (totalCount == markedCount) {
selectedBlock.prop("checked", true); selectedBlock.prop("checked", true);
@ -5118,7 +5210,7 @@ class AgentWizard extends HTML
*/ */
function switchBlockControlInterfaces(e) { function switchBlockControlInterfaces(e) {
var string = $('#text-filter-search').val(); var string = $('#text-filter-search').val();
if(string == ''){ if (string == '') {
if (e.checked) { if (e.checked) {
$(".interfaz_select").prop("checked", true); $(".interfaz_select").prop("checked", true);
} else { } else {
@ -5127,15 +5219,15 @@ class AgentWizard extends HTML
} else { } else {
var regex = new RegExp(string); var regex = new RegExp(string);
var interfaces = $('.interfaces_search'); var interfaces = $('.interfaces_search');
interfaces.each(function(){ interfaces.each(function() {
if(this.id.match(regex)) { if (this.id.match(regex)) {
$(this).removeClass('hidden'); $(this).removeClass('hidden');
if (e.checked) { if (e.checked) {
$("input[name='interfaz_select_"+this.id+"']") $("input[name='interfaz_select_" + this.id + "']")
.prop("checked", true); .prop("checked", true);
} else { } else {
$("input[name='interfaz_select_"+this.id+"']") $("input[name='interfaz_select_" + this.id + "']")
.prop("checked", false); .prop("checked", false);
} }
} }
}); });
@ -5143,13 +5235,13 @@ class AgentWizard extends HTML
} }
/** /**
* Show the modal with modules for create. * Show the modal with modules for create.
*/ */
function processListModules() { function processListModules() {
confirmDialog({ confirmDialog({
title: "<?php echo __('Modules about to be created'); ?>", title: "<?php echo __('Modules about to be created'); ?>",
message: function() { message: function() {
var id = "div-"+uniqId(); var id = "div-" + uniqId();
var loading = "<?php echo __('Loading'); ?>" + "..."; var loading = "<?php echo __('Loading'); ?>" + "...";
$.ajax({ $.ajax({
method: "post", method: "post",
@ -5165,22 +5257,22 @@ class AgentWizard extends HTML
}, },
datatype: "html", datatype: "html",
success: function(data) { success: function(data) {
$('#'+id).empty().append(data); $('#' + id).empty().append(data);
}, },
error: function(e) { error: function(e) {
showMsg(e); showMsg(e);
} }
}); });
return "<div id ='"+id+"'>"+loading+"</div>"; return "<div id ='" + id + "'>" + loading + "</div>";
}, },
ok: "<?php echo __('OK'); ?>", ok: "<?php echo __('OK'); ?>",
cancel: "<?php echo __('Cancel'); ?>", cancel: "<?php echo __('Cancel'); ?>",
onAccept: function() { onAccept: function() {
$('#reviewed-modules').submit(); $('#reviewed-modules').submit();
}, },
size:750, size: 750,
maxHeight:500 maxHeight: 500
}); });
} }

View File

@ -153,58 +153,58 @@ class ConsoleSupervisor
/* /*
* PHP configuration warnings: * PHP configuration warnings:
* NOTIF.PHP.SAFE_MODE * NOTIF.PHP.SAFE_MODE
* NOTIF.PHP.INPUT_TIME * NOTIF.PHP.INPUT_TIME
* NOTIF.PHP.EXECUTION_TIME * NOTIF.PHP.EXECUTION_TIME
* NOTIF.PHP.UPLOAD_MAX_FILESIZE * NOTIF.PHP.UPLOAD_MAX_FILESIZE
* NOTIF.PHP.MEMORY_LIMIT * NOTIF.PHP.MEMORY_LIMIT
* NOTIF.PHP.DISABLE_FUNCTIONS * NOTIF.PHP.DISABLE_FUNCTIONS
* NOTIF.PHP.PHANTOMJS * NOTIF.PHP.PHANTOMJS
* NOTIF.PHP.VERSION * NOTIF.PHP.VERSION
*/ */
$this->checkPHPSettings(); $this->checkPHPSettings();
/* /*
* Check license. * Check license.
* NOTIF.LICENSE.EXPIRATION * NOTIF.LICENSE.EXPIRATION
*/ */
$this->checkLicense(); $this->checkLicense();
/* /*
* Check component statuses (servers down - frozen). * Check component statuses (servers down - frozen).
* NOTIF.SERVER.STATUS.ID_SERVER * NOTIF.SERVER.STATUS.ID_SERVER
*/ */
$this->checkPandoraServers(); $this->checkPandoraServers();
/* /*
* Check at least 1 server running in master mode. * Check at least 1 server running in master mode.
* NOTIF.SERVER.MASTER * NOTIF.SERVER.MASTER
*/ */
$this->checkPandoraServerMasterAvailable(); $this->checkPandoraServerMasterAvailable();
/* /*
* Check if CRON is running. * Check if CRON is running.
* NOTIF.CRON.CONFIGURED * NOTIF.CRON.CONFIGURED
*/ */
if (enterprise_installed()) { if ((bool) enterprise_installed() === true) {
$this->checkCronRunning(); $this->checkCronRunning();
} }
/* /*
* Check if instance is registered. * Check if instance is registered.
* NOTIF.UPDATEMANAGER.REGISTRATION * NOTIF.UPDATEMANAGER.REGISTRATION
*/ */
$this->checkUpdateManagerRegistration(); $this->checkUpdateManagerRegistration();
/* /*
* Check if there're new messages in UM. * Check if there're new messages in UM.
* NOTIF.UPDATEMANAGER.MESSAGES * NOTIF.UPDATEMANAGER.MESSAGES
*/ */
$this->getUMMessages(); $this->getUMMessages();
@ -212,31 +212,32 @@ class ConsoleSupervisor
/* /*
* Check if the Server and Console has * Check if the Server and Console has
* the same versions. * the same versions.
* NOTIF.SERVER.MISALIGNED
*/ */
$this->checkConsoleServerVersions(); $this->checkConsoleServerVersions();
/* /*
* Check if AllowOverride is None or All. * Check if AllowOverride is None or All.
* NOTIF.ALLOWOVERIDE.MESSAGE * NOTIF.ALLOWOVERIDE.MESSAGE
*/ */
$this->checkAllowOverrideEnabled();
/* $this->checkAllowOverrideEnabled();
* Check if AllowOverride is None or All.
* NOTIF.HAMASTER.MESSAGE
*/
$this->checkHaStatus();
/* /*
* Check if the Pandora Console log * Check if the Pandora Console log
* file remains in old location. * file remains in old location.
* NOTIF.PANDORACONSOLE.LOG.OLD
*/ */
$this->checkPandoraConsoleLogOldLocation(); $this->checkPandoraConsoleLogOldLocation();
/* /*
* Check if the audit log file * Check if the audit log file
* remains in old location. * remains in old location.
* NOTIF.AUDIT.LOG.OLD
*/ */
$this->checkAuditLogOldLocation(); $this->checkAuditLogOldLocation();
} }
@ -280,65 +281,65 @@ class ConsoleSupervisor
/* /*
* Check license. * Check license.
* NOTIF.LICENSE.EXPIRATION * NOTIF.LICENSE.EXPIRATION
* NOTIF.LICENSE.LIMITED * NOTIF.LICENSE.LIMITED
*/ */
$this->checkLicense(); $this->checkLicense();
/* /*
* Check number of files in attachment: * Check number of files in attachment:
* NOTIF.FILES.ATTACHMENT * NOTIF.FILES.ATTACHMENT
*/ */
$this->checkAttachment(); $this->checkAttachment();
/* /*
* Files in data_in: * Files in data_in:
* NOTIF.FILES.DATAIN (>1000) * NOTIF.FILES.DATAIN (>1000)
* NOTIF.FILES.DATAIN.BADXML (>150) * NOTIF.FILES.DATAIN.BADXML (>150)
*/ */
$this->checkDataIn(); $this->checkDataIn();
/* /*
* Check module queues not growing: * Check module queues not growing:
* NOTIF.SERVER.QUEUE.ID_SERVER * NOTIF.SERVER.QUEUE.ID_SERVER
*/ */
$this->checkServers(); $this->checkServers();
/* /*
* Check component statuses (servers down - frozen). * Check component statuses (servers down - frozen).
* NOTIF.SERVER.STATUS.ID_SERVER * NOTIF.SERVER.STATUS.ID_SERVER
*/ */
$this->checkPandoraServers(); $this->checkPandoraServers();
/* /*
* Check at least 1 server running in master mode. * Check at least 1 server running in master mode.
* NOTIF.SERVER.MASTER * NOTIF.SERVER.MASTER
*/ */
$this->checkPandoraServerMasterAvailable(); $this->checkPandoraServerMasterAvailable();
/* /*
* PHP configuration warnings: * PHP configuration warnings:
* NOTIF.PHP.SAFE_MODE * NOTIF.PHP.SAFE_MODE
* NOTIF.PHP.INPUT_TIME * NOTIF.PHP.INPUT_TIME
* NOTIF.PHP.EXECUTION_TIME * NOTIF.PHP.EXECUTION_TIME
* NOTIF.PHP.UPLOAD_MAX_FILESIZE * NOTIF.PHP.UPLOAD_MAX_FILESIZE
* NOTIF.PHP.MEMORY_LIMIT * NOTIF.PHP.MEMORY_LIMIT
* NOTIF.PHP.DISABLE_FUNCTIONS * NOTIF.PHP.DISABLE_FUNCTIONS
* NOTIF.PHP.PHANTOMJS * NOTIF.PHP.PHANTOMJS
* NOTIF.PHP.VERSION * NOTIF.PHP.VERSION
*/ */
$this->checkPHPSettings(); $this->checkPHPSettings();
/* /*
* Check connection with historical DB (if enabled). * Check connection with historical DB (if enabled).
* NOTIF.HISTORYDB * NOTIF.HISTORYDB
*/ */
$this->checkPandoraHistoryDB(); $this->checkPandoraHistoryDB();
@ -346,23 +347,23 @@ class ConsoleSupervisor
/* /*
* Check pandoradb running in main DB. * Check pandoradb running in main DB.
* Check pandoradb running in historical DB. * Check pandoradb running in historical DB.
* NOTIF.PANDORADB * NOTIF.PANDORADB
* NOTIF.PANDORADB.HISTORICAL * NOTIF.PANDORADB.HISTORICAL
*/ */
$this->checkPandoraDBMaintenance(); $this->checkPandoraDBMaintenance();
/* /*
* Check historical DB MR version. * Check historical DB MR version.
* NOTIF.HISTORYDB.MR * NOTIF.HISTORYDB.MR
*/ */
$this->checkPandoraHistoryDBMR(); $this->checkPandoraHistoryDBMR();
/* /*
* Check external components. * Check external components.
* NOTIF.EXT.ELASTICSEARCH * NOTIF.EXT.ELASTICSEARCH
* NOTIF.EXT.LOGSTASH * NOTIF.EXT.LOGSTASH
* *
*/ */
@ -370,76 +371,76 @@ class ConsoleSupervisor
/* /*
* Check Metaconsole synchronization issues. * Check Metaconsole synchronization issues.
* NOTIF.METACONSOLE.DB_CONNECTION * NOTIF.METACONSOLE.DB_CONNECTION
*/ */
$this->checkMetaconsole(); $this->checkMetaconsole();
/* /*
* Check incoming scheduled downtimes (< 15d). * Check incoming scheduled downtimes (< 15d).
* NOTIF.DOWNTIME * NOTIF.DOWNTIME
*/ */
$this->checkDowntimes(); $this->checkDowntimes();
/* /*
* Check if instance is registered. * Check if instance is registered.
* NOTIF.UPDATEMANAGER.REGISTRATION * NOTIF.UPDATEMANAGER.REGISTRATION
*/ */
$this->checkUpdateManagerRegistration(); $this->checkUpdateManagerRegistration();
/* /*
* Check if event storm protection is activated. * Check if event storm protection is activated.
* NOTIF.MISC.EVENTSTORMPROTECTION * NOTIF.MISC.EVENTSTORMPROTECTION
*/ */
$this->checkEventStormProtection(); $this->checkEventStormProtection();
/* /*
* Check if develop_bypass is enabled. * Check if develop_bypass is enabled.
* NOTIF.MISC.DEVELOPBYPASS * NOTIF.MISC.DEVELOPBYPASS
*/ */
$this->checkDevelopBypass(); $this->checkDevelopBypass();
/* /*
* Check if fontpath exists. * Check if fontpath exists.
* NOTIF.MISC.FONTPATH * NOTIF.MISC.FONTPATH
*/ */
$this->checkFont(); $this->checkFont();
/* /*
* Check if default user and password exists. * Check if default user and password exists.
* NOTIF.SECURITY.DEFAULT_PASSWORD * NOTIF.SECURITY.DEFAULT_PASSWORD
*/ */
$this->checkDefaultPassword(); $this->checkDefaultPassword();
/* /*
* Check if there're new updates. * Check if there're new updates.
* NOTIF.UPDATEMANAGER.OPENSETUP * NOTIF.UPDATEMANAGER.OPENSETUP
* NOTIF.UPDATEMANAGER.UPDATE * NOTIF.UPDATEMANAGER.UPDATE
*/ */
$this->checkUpdates(); $this->checkUpdates();
/* /*
* Check if there're new minor updates available. * Check if there're new minor updates available.
* NOTIF.UPDATEMANAGER.MINOR * NOTIF.UPDATEMANAGER.MINOR
*/ */
$this->checkMinorRelease(); $this->checkMinorRelease();
if (enterprise_installed()) { if ((bool) enterprise_installed() === true) {
// Release the lock. // Release the lock.
enterprise_hook('cron_supervisor_release_lock'); enterprise_hook('cron_supervisor_release_lock');
} }
/* /*
* Check if CRON is running. * Check if CRON is running.
* NOTIF.CRON.CONFIGURED * NOTIF.CRON.CONFIGURED
*/ */
if (enterprise_installed()) { if (enterprise_installed()) {
@ -448,14 +449,14 @@ class ConsoleSupervisor
/* /*
* Check if instance is registered. * Check if instance is registered.
* NOTIF.UPDATEMANAGER.REGISTRATION * NOTIF.UPDATEMANAGER.REGISTRATION
*/ */
$this->checkUpdateManagerRegistration(); $this->checkUpdateManagerRegistration();
/* /*
* Check if there're new messages in UM. * Check if there're new messages in UM.
* NOTIF.UPDATEMANAGER.MESSAGES * NOTIF.UPDATEMANAGER.MESSAGES
*/ */
$this->getUMMessages(); $this->getUMMessages();
@ -463,18 +464,23 @@ class ConsoleSupervisor
/* /*
* Check if the Server and Console has * Check if the Server and Console has
* the same versions. * the same versions.
* NOTIF.SERVER.MISALIGNED
*/ */
$this->checkConsoleServerVersions(); $this->checkConsoleServerVersions();
/* /*
* Check if AllowOverride is None or All. * Check if AllowOverride is None or All.
* NOTIF.ALLOWOVERRIDE.MESSAGE
*/ */
$this->checkAllowOverrideEnabled(); $this->checkAllowOverrideEnabled();
/* /*
* Check if HA status. * Check if HA status.
*/ */
if (enterprise_installed()) {
if ((bool) enterprise_installed() === true) {
$this->checkHaStatus(); $this->checkHaStatus();
} }
@ -482,13 +488,8 @@ class ConsoleSupervisor
* Check if the audit log file * Check if the audit log file
* remains in old location. * remains in old location.
*/ */
$this->checkAuditLogOldLocation(); $this->checkAuditLogOldLocation();
/*
Check if AllowOverride is None or All.
*/
$this->checkAllowOverrideEnabled();
} }
@ -960,11 +961,11 @@ class ConsoleSupervisor
{ {
global $config; global $config;
$remote_config_dir = io_safe_output($config['remote_config']); $remote_config_dir = (string) io_safe_output($config['remote_config']);
if (enterprise_installed() if ((bool) enterprise_installed() === true
&& isset($config['license_nms']) && isset($config['license_nms']) === true
&& $config['license_nms'] != 1 && (int) $config['license_nms'] !== 1
) { ) {
if (is_readable($remote_config_dir) !== true) { if (is_readable($remote_config_dir) !== true) {
$this->notify( $this->notify(
@ -1200,6 +1201,8 @@ class ConsoleSupervisor
*/ */
public function checkPandoraServers() public function checkPandoraServers()
{ {
global $config;
$servers = db_get_all_rows_sql( $servers = db_get_all_rows_sql(
'SELECT 'SELECT
id_server, id_server,
@ -1297,6 +1300,8 @@ class ConsoleSupervisor
*/ */
public function checkPandoraServerMasterAvailable() public function checkPandoraServerMasterAvailable()
{ {
global $config;
$n_masters = db_get_value_sql( $n_masters = db_get_value_sql(
'SELECT 'SELECT
count(*) as n count(*) as n
@ -2541,7 +2546,7 @@ class ConsoleSupervisor
} }
/* /**
* Check if Pandora console log file remains in old location. * Check if Pandora console log file remains in old location.
* *
* @return void * @return void

View File

@ -547,6 +547,7 @@ class HTML
} else { } else {
if ($input['arguments']['type'] != 'hidden' if ($input['arguments']['type'] != 'hidden'
&& $input['arguments']['type'] != 'hidden_extended' && $input['arguments']['type'] != 'hidden_extended'
&& $input['arguments']['type'] != 'datalist'
) { ) {
if (!$direct) { if (!$direct) {
$output .= '<li id="'.$input['id'].'" class="'.$class.'">'; $output .= '<li id="'.$input['id'].'" class="'.$class.'">';

View File

@ -20,7 +20,7 @@
/** /**
* Pandora build version and version * Pandora build version and version
*/ */
$build_version = 'PC201030'; $build_version = 'PC201124';
$pandora_version = 'v7.0NG.750'; $pandora_version = 'v7.0NG.750';
// Do not overwrite default timezone set if defined. // Do not overwrite default timezone set if defined.

View File

@ -309,7 +309,7 @@ define('STATUS_ALERT_DISABLED', 'alert_disabled.png');
// For servers. // For servers.
define('STATUS_SERVER_OK', 'server_ok.png'); define('STATUS_SERVER_OK', 'server_ok.png');
define('STATUS_SERVER_DOWN', 'server_down.png'); define('STATUS_SERVER_DOWN', 'server_down.png');
define('STATUS_SERVER_CRASH', 'server_crash.png');
// Status images (ball). // Status images (ball).
@ -335,6 +335,7 @@ define('STATUS_ALERT_DISABLED_BALL', 'alert_disabled_ball.png');
// For servers. // For servers.
define('STATUS_SERVER_OK_BALL', 'server_ok_ball.png'); define('STATUS_SERVER_OK_BALL', 'server_ok_ball.png');
define('STATUS_SERVER_DOWN_BALL', 'server_down_ball.png'); define('STATUS_SERVER_DOWN_BALL', 'server_down_ball.png');
define('STATUS_SERVER_CRASH_BALL', 'server_crash_ball.png');

View File

@ -2289,13 +2289,19 @@ function check_login($output=true)
* @param integer $id_group Agents group id to check from * @param integer $id_group Agents group id to check from
* @param string $access Access privilege * @param string $access Access privilege
* @param boolean $onlyOneGroup Flag to check acl for specified group only (not to roots up, or check acl for 'All' group when $id_group is 0). * @param boolean $onlyOneGroup Flag to check acl for specified group only (not to roots up, or check acl for 'All' group when $id_group is 0).
* @param boolean $cache Use cache.
* *
* @return boolean 1 if the user has privileges, 0 if not. * @return boolean 1 if the user has privileges, 0 if not.
*/ */
function check_acl($id_user, $id_group, $access, $onlyOneGroup=false) function check_acl(
{ $id_user,
$id_group,
$access,
$onlyOneGroup=false,
$cache=true
) {
if (empty($id_user)) { if (empty($id_user)) {
// User ID needs to be specified // User ID needs to be specified.
trigger_error('Security error: check_acl got an empty string for user id', E_USER_WARNING); trigger_error('Security error: check_acl got an empty string for user id', E_USER_WARNING);
return 0; return 0;
} else if (is_user_admin($id_user)) { } else if (is_user_admin($id_user)) {
@ -2305,7 +2311,15 @@ function check_acl($id_user, $id_group, $access, $onlyOneGroup=false)
} }
if ($id_group != 0 || $onlyOneGroup === true) { if ($id_group != 0 || $onlyOneGroup === true) {
$groups_list_acl = users_get_groups($id_user, $access, false, true, null); $groups_list_acl = users_get_groups(
$id_user,
$access,
false,
true,
null,
'id_grupo',
$cache
);
} else { } else {
$groups_list_acl = get_users_acl($id_user); $groups_list_acl = get_users_acl($id_user);
} }
@ -2330,16 +2344,17 @@ function check_acl($id_user, $id_group, $access, $onlyOneGroup=false)
/** /**
* Check the ACL of a list of groups. * Check the ACL of a list of groups.
* *
* @param string $id_user to check the ACL * @param string $id_user to check the ACL
* @param array $groups. All groups to check * @param array $groups. All groups to check
* @param string $access. Profile to check * @param string $access. Profile to check
* @param boolean $cache Use cached group information.
* *
* @return boolean True if at least one of this groups check the ACL * @return boolean True if at least one of this groups check the ACL
*/ */
function check_acl_one_of_groups($id_user, $groups, $access) function check_acl_one_of_groups($id_user, $groups, $access, $cache=true)
{ {
foreach ($groups as $group) { foreach ($groups as $group) {
if (check_acl($id_user, $group, $access)) { if (check_acl($id_user, $group, $access, false, $cache)) {
return true; return true;
} }
} }

View File

@ -2872,7 +2872,7 @@ function alerts_get_agent_modules(
$agent_modules = db_get_all_rows_sql($sql); $agent_modules = db_get_all_rows_sql($sql);
} else { } else {
$groups = groups_get_children_ids($id_grupo, true); $groups = groups_get_children_ids($id_grupo, true);
if (count($groups) > 1) { if (empty($groups) === false) {
$sql = sprintf( $sql = sprintf(
'SELECT distinct(atm.id_agent_module) 'SELECT distinct(atm.id_agent_module)
FROM talert_template_modules atm FROM talert_template_modules atm

View File

@ -1552,26 +1552,18 @@ function events_get_event($id, $fields=false, $meta=false, $history=false)
/** /**
* Retrieve all events ungrouped. * Retrieve all events ungrouped.
* *
* @param string $sql_post Sql_post. * @param string $sql_post Sql_post.
* @param integer $offset Offset. * @param boolean $meta Meta.
* @param integer $pagination Pagination. * @param boolean $history History.
* @param boolean $meta Meta. * @param boolean $returnSql Only Query.
* @param boolean $history History.
* @param boolean $total Total.
* @param boolean $history_db History_db.
* @param string $order Order.
* *
* @return mixed Array of events or false. * @return mixed Array of events or false.
*/ */
function events_get_events_no_grouped( function events_get_events_no_grouped(
$sql_post, $sql_post,
$offset=0,
$pagination=1,
$meta=false, $meta=false,
$history=false, $history=false,
$total=false, $returnSql=false
$history_db=false,
$order='ASC'
) { ) {
global $config; global $config;
@ -1581,7 +1573,11 @@ function events_get_events_no_grouped(
$sql .= events_get_secondary_groups_left_join($table); $sql .= events_get_secondary_groups_left_join($table);
$sql .= $sql_post; $sql .= $sql_post;
$events = db_get_all_rows_sql($sql, $history_db); if ($returnSql === true) {
return $sql;
}
$events = db_get_all_rows_sql($sql, $history);
return $events; return $events;
} }
@ -1634,29 +1630,59 @@ function events_get_events_grouped(
$event_lj = events_get_secondary_groups_left_join($table); $event_lj = events_get_secondary_groups_left_join($table);
if ($total) { if ($total) {
$sql = "SELECT COUNT(*) FROM (SELECT id_evento $sql = "SELECT COUNT(*) FROM (SELECT id_evento
FROM $table te $event_lj FROM $table te $event_lj ".$sql_post.'
WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra.') AS t'; GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra.') AS t';
} else { } else {
$sql = "SELECT *, MAX(id_evento) AS id_evento, $sql = sprintf(
GROUP_CONCAT(DISTINCT user_comment SEPARATOR '<br>') AS user_comment, 'SELECT *,
GROUP_CONCAT(DISTINCT id_evento SEPARATOR ',') AS similar_ids, MAX(id_evento) AS id_evento,
COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep, GROUP_CONCAT(
MIN(utimestamp) AS timestamp_rep_min, DISTINCT user_comment SEPARATOR "<br>"
(SELECT owner_user FROM $table WHERE id_evento = MAX(te.id_evento)) owner_user, ) AS user_comment,
(SELECT id_usuario FROM $table WHERE id_evento = MAX(te.id_evento)) id_usuario, GROUP_CONCAT(
(SELECT id_agente FROM $table WHERE id_evento = MAX(te.id_evento)) id_agente, DISTINCT id_evento SEPARATOR ","
(SELECT criticity FROM $table WHERE id_evento = MAX(te.id_evento)) AS criticity, ) AS similar_ids,
(SELECT ack_utimestamp FROM $table WHERE id_evento = MAX(te.id_evento)) AS ack_utimestamp, COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep,
(SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = te.id_agentmodule) AS module_name MIN(utimestamp) AS timestamp_rep_min,
FROM $table te $event_lj (SELECT owner_user
WHERE 1=1 ".$sql_post.' FROM %s
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra; WHERE id_evento = MAX(te.id_evento)) AS owner_user,
$sql .= ' '.events_get_sql_order($sort_field, $order, 2); (SELECT id_usuario
$sql .= ' LIMIT '.$offset.','.$pagination; FROM %s
WHERE id_evento = MAX(te.id_evento)) AS id_usuario,
(SELECT id_agente
FROM %s
WHERE id_evento = MAX(te.id_evento)) AS id_agente,
(SELECT criticity
FROM %s
WHERE id_evento = MAX(te.id_evento)) AS criticity,
(SELECT ack_utimestamp
FROM %s
WHERE id_evento = MAX(te.id_evento)) AS ack_utimestamp,
(SELECT nombre
FROM tagente_modulo
WHERE id_agente_modulo = te.id_agentmodule) AS module_name
FROM %s te %s
%s
GROUP BY estado, evento, id_agente, id_agentmodule %s
%s
LIMIT %d, %d',
$table,
$table,
$table,
$table,
$table,
$table,
$event_lj,
$sql_post,
$groupby_extra,
events_get_sql_order($sort_field, $order, 2),
$offset,
$pagination
);
} }
// Extract the events by filter (or not) from db // Extract the events by filter (or not) from db.
$events = db_get_all_rows_sql($sql, $history_db); $events = db_get_all_rows_sql($sql, $history_db);
if ($total) { if ($total) {
@ -2971,7 +2997,8 @@ function events_get_agent(
$type = []; $type = [];
foreach ($filter_event_type as $event_type) { foreach ($filter_event_type as $event_type) {
if ($event_type != '') { if ($event_type != '') {
// If normal, warning, could be several (going_up_warning, going_down_warning... too complex. // If normal, warning, could be several
// (going_up_warning, going_down_warning... too complex.
// Shown to user only "warning, critical and normal". // Shown to user only "warning, critical and normal".
if ($event_type == 'warning' || $event_type == 'critical' || $event_type == 'normal') { if ($event_type == 'warning' || $event_type == 'critical' || $event_type == 'normal') {
$type[] = " event_type LIKE '%".$event_type."%' "; $type[] = " event_type LIKE '%".$event_type."%' ";
@ -2991,10 +3018,10 @@ function events_get_agent(
} }
if ($events_group) { if ($events_group) {
$sql_where .= sprintf( $secondary_groups = sprintf(
' INNER JOIN tgrupo tg ' INNER JOIN tgrupo tg
ON (te.id_grupo = tg.id_grupo AND tg.id_grupo = %s) ON (te.id_grupo = tg.id_grupo AND tg.id_grupo IN (%s))
OR (tg.id_grupo = tasg.id_group AND tasg.id_group = %s) OR (tg.id_grupo = tasg.id_group AND tasg.id_group IN (%s))
WHERE utimestamp > %d WHERE utimestamp > %d
AND utimestamp <= %d ', AND utimestamp <= %d ',
join(',', $id_group), join(',', $id_group),
@ -3002,22 +3029,27 @@ function events_get_agent(
$datelimit, $datelimit,
$date $date
); );
} else if ($events_module) { $sql_where = $secondary_groups.' '.$sql_where;
$sql_where .= sprintf(
' AND id_agentmodule = %d AND utimestamp > %d
AND utimestamp <= %d ',
$id_agent_module,
$datelimit,
$date
);
} else { } else {
$sql_where .= sprintf( $sql_where = ' WHERE 1=1 '.$sql_where;
' AND id_agente = %d AND utimestamp > %d
AND utimestamp <= %d ', if ($events_module) {
$id_agent, $sql_where .= sprintf(
$datelimit, ' AND id_agentmodule = %d AND utimestamp > %d
$date AND utimestamp <= %d ',
); $id_agent_module,
$datelimit,
$date
);
} else {
$sql_where .= sprintf(
' AND id_agente = %d AND utimestamp > %d
AND utimestamp <= %d ',
$id_agent,
$datelimit,
$date
);
}
} }
if (is_metaconsole() && $id_server) { if (is_metaconsole() && $id_server) {
@ -3037,11 +3069,7 @@ function events_get_agent(
} else { } else {
return events_get_events_no_grouped( return events_get_events_no_grouped(
$sql_where, $sql_where,
0,
1000,
(is_metaconsole() && $id_server) ? true : false, (is_metaconsole() && $id_server) ? true : false,
false,
false,
$history $history
); );
} }
@ -4673,16 +4701,24 @@ function events_page_general($event)
$table_general->data[] = $data; $table_general->data[] = $data;
// If event is validated, show who and when acknowleded it. // If event is validated, show who and when acknowleded it.
$table_general->cellclass[8][1] = 'general_acknowleded';
$data = []; $data = [];
$data[0] = __('Acknowledged by'); $data[0] = __('Acknowledged by');
if ($event['estado'] == 1) { if ($event['estado'] == 1) {
$user_ack = db_get_value('fullname', 'tusuario', 'id_user', $event['id_usuario']); $user_ack = db_get_value(
if (empty($user_ack)) { 'fullname',
'tusuario',
'id_user',
$event['id_usuario']
);
if (empty($user_ack) === true) {
$user_ack = $event['id_usuario']; $user_ack = $event['id_usuario'];
} }
$date_ack = date($config['date_format'], $event['ack_utimestamp']); $date_ack = io_safe_output($event['ack_utimestamp']);
$data[1] = $user_ack.' ('.$date_ack.')'; $data[1] = $user_ack.' ('.$date_ack.')';
} else { } else {
$data[1] = '<i>'.__('N/A').'</i>'; $data[1] = '<i>'.__('N/A').'</i>';

View File

@ -2541,13 +2541,9 @@ function graphic_agentaccess(
} else { } else {
$options['generals']['pdf']['width'] = 350; $options['generals']['pdf']['width'] = 350;
$options['generals']['pdf']['height'] = 125; $options['generals']['pdf']['height'] = 125;
if (!empty($data_array)) { $imgbase64 = '<img src="data:image/jpg;base64,';
$imgbase64 = '<img src="data:image/jpg;base64,'; $imgbase64 .= vbar_graph($data_array, $options, 2);
$imgbase64 .= vbar_graph($data_array, $options, 2); $imgbase64 .= '" />';
$imgbase64 .= '" />';
} else {
$imgbase64 .= vbar_graph($data_array, $options, 2);
}
return $imgbase64; return $imgbase64;
} }

View File

@ -104,7 +104,7 @@ function groups_check_used($idGroup)
if ($numRows > 0) { if ($numRows > 0) {
$return['return'] = true; $return['return'] = true;
$return['tables'][] = __('Recon task'); $return['tables'][] = __('Discovery task');
} }
switch ($config['dbtype']) { switch ($config['dbtype']) {

View File

@ -2032,6 +2032,7 @@ function html_print_input_text_extended(
'required', 'required',
'autocomplete', 'autocomplete',
'form', 'form',
'list',
]; ];
$output = '<input '.($password ? 'type="password" autocomplete="'.$autocomplete.'" ' : 'type="text" '); $output = '<input '.($password ? 'type="password" autocomplete="'.$autocomplete.'" ' : 'type="text" ');
@ -2257,7 +2258,8 @@ function html_print_input_text(
$onKeyDown='', $onKeyDown='',
$formTo='', $formTo='',
$onKeyUp='', $onKeyUp='',
$disabled=false $disabled=false,
$list=''
) { ) {
if ($maxlength == 0) { if ($maxlength == 0) {
$maxlength = 255; $maxlength = 255;
@ -2302,6 +2304,10 @@ function html_print_input_text(
$attr['form'] = $formTo; $attr['form'] = $formTo;
} }
if ($list != '') {
$attr['list'] = $list;
}
return html_print_input_text_extended( return html_print_input_text_extended(
$name, $name,
$value, $value,
@ -4234,7 +4240,9 @@ function html_print_input($data, $wrapper='div', $input_only=false)
((isset($data['autofocus']) === true) ? $data['autofocus'] : false), ((isset($data['autofocus']) === true) ? $data['autofocus'] : false),
((isset($data['onKeyDown']) === true) ? $data['onKeyDown'] : ''), ((isset($data['onKeyDown']) === true) ? $data['onKeyDown'] : ''),
((isset($data['form']) === true) ? $data['form'] : ''), ((isset($data['form']) === true) ? $data['form'] : ''),
((isset($data['onKeyUp']) === true) ? $data['onKeyUp'] : '') ((isset($data['onKeyUp']) === true) ? $data['onKeyUp'] : ''),
((isset($data['disabled']) === true) ? $data['disabled'] : false),
((isset($data['list']) === true) ? $data['list'] : '')
); );
break; break;
@ -4731,6 +4739,14 @@ function html_print_input($data, $wrapper='div', $input_only=false)
$output .= html_print_select_multiple_modules_filtered($data); $output .= html_print_select_multiple_modules_filtered($data);
break; break;
case 'datalist':
$output .= html_print_datalist(
$data['name'],
$data['value'],
((isset($data['return']) === true) ? $data['return'] : true)
);
break;
default: default:
// Ignore. // Ignore.
break; break;
@ -4911,3 +4927,32 @@ function html_print_tabs(array $tabs)
return $result; return $result;
} }
/**
* Create a datalist.
*
* @param string $id Use custom id.
* @param string $values Input values.
* @param string $returnparam Whether to return an output string or echo now (optional, echo by default).
*
* @return string HTML code if return parameter is true.
*/
function html_print_datalist(
$id,
$values,
$return=false
) {
$result = '<datalist id="'.$id.'">';
foreach ($values as $key => $value) {
$result .= '<option value="'.$value.'">';
}
$result .= '</datalist>';
if ($return) {
return $result;
} else {
echo $result;
}
}

View File

@ -116,6 +116,13 @@ function io_safe_input($value)
// TICKET: 1223 // TICKET: 1223
$valueHtmlEncode = str_replace('&deg;', '&#176;', $valueHtmlEncode); $valueHtmlEncode = str_replace('&deg;', '&#176;', $valueHtmlEncode);
// Fixed the ¿ charater.
$valueHtmlEncode = str_replace('&iquest;', '¿', $valueHtmlEncode);
// Fixed the ¡ charater.
$valueHtmlEncode = str_replace('&iexcl;', '¡', $valueHtmlEncode);
// Fixed the € charater.
$valueHtmlEncode = str_replace('&euro;', '€', $valueHtmlEncode);
// Replace some characteres for html entities // Replace some characteres for html entities
for ($i = 0; $i < 33; $i++) { for ($i = 0; $i < 33; $i++) {
$valueHtmlEncode = str_ireplace( $valueHtmlEncode = str_ireplace(

View File

@ -2494,6 +2494,8 @@ function modules_get_color_status($status, $force_module=false)
case STATUS_AGENT_CRITICAL: case STATUS_AGENT_CRITICAL:
case STATUS_MODULE_CRITICAL_BALL: case STATUS_MODULE_CRITICAL_BALL:
case STATUS_AGENT_CRITICAL_BALL: case STATUS_AGENT_CRITICAL_BALL:
case STATUS_SERVER_CRASH:
case STATUS_SERVER_CRASH_BALL:
return COL_CRITICAL; return COL_CRITICAL;
case AGENT_MODULE_STATUS_WARNING: case AGENT_MODULE_STATUS_WARNING:

View File

@ -2957,7 +2957,7 @@ function reporting_group_report($report, $content)
if (empty($id_group)) { if (empty($id_group)) {
$events = []; $events = [];
} else { } else {
$sql_where = sprintf(' AND id_grupo IN (%s) AND estado<>1 ', implode(',', $id_group)); $sql_where = sprintf(' WHERE id_grupo IN (%s) AND estado<>1 ', implode(',', $id_group));
$events = events_get_events_grouped( $events = events_get_events_grouped(
$sql_where, $sql_where,
0, 0,

View File

@ -1492,7 +1492,7 @@ function reporting_html_inventory_changes($table, $item, $pdf=0)
function reporting_html_inventory($table, $item, $pdf=0) function reporting_html_inventory($table, $item, $pdf=0)
{ {
$return_pdf = ''; $return_pdf = '';
if (!empty($item['failed'])) { if (empty($item['failed']) === false) {
if ($pdf === 0) { if ($pdf === 0) {
$table->colspan['failed']['cell'] = 3; $table->colspan['failed']['cell'] = 3;
$table->cellstyle['failed']['cell'] = 'text-align: center;'; $table->cellstyle['failed']['cell'] = 'text-align: center;';
@ -1501,59 +1501,76 @@ function reporting_html_inventory($table, $item, $pdf=0)
$return_pdf .= $item['failed']; $return_pdf .= $item['failed'];
} }
} else { } else {
foreach ($item['data'] as $module_item) { // Grouped type inventory.
$table1 = new stdClass(); $type_modules = array_reduce(
$table1->width = '99%'; $item['data'],
function ($carry, $it) {
$carry[$it['name']][] = $it;
return $carry;
},
[]
);
$first = reset($module_item['data']); if (isset($type_modules) === true
$count_columns = count($first); && is_array($type_modules) === true
) {
foreach ($type_modules as $key_type_module => $type_module) {
$table1 = new stdClass();
$table1->width = '99%';
$table1->data = [];
$table1->head = [];
$table1->cellstyle = [];
$table1->headstyle = [];
if (isset($type_module) === true
&& is_array($type_module) === true
) {
foreach ($type_module as $key_type => $module) {
if (isset($module['data']) === true
&& is_array($module['data']) === true
) {
array_pop($module['data']);
foreach ($module['data'] as $k_module => $v_module) {
$str_key = $key_type_module.'-'.$key_type.'-'.$k_module;
$table1->head[0] = __('Agent');
$table1->head[1] = __('Module');
$table1->head[2] = __('Date');
$table1->headstyle[0] = 'text-align: left';
$table1->headstyle[1] = 'text-align: left';
$table1->headstyle[2] = 'text-align: left';
$table1->cellstyle[$str_key][0] = 'text-align: left;';
$table1->cellstyle[$str_key][1] = 'text-align: left;';
$table1->cellstyle[$str_key][2] = 'text-align: left;';
$table1->data[$str_key][0] = $module['agent_name'];
$table1->data[$str_key][1] = $key_type_module;
$dateModule = explode(' ', $module['timestamp']);
$table1->data[$str_key][2] = $dateModule[0];
if (isset($v_module) === true
&& is_array($v_module) === true
) {
foreach ($v_module as $k => $v) {
$table1->head[$k] = $k;
$table1->headstyle[$k] = 'text-align: left';
$table1->cellstyle[$str_key][$k] = 'text-align: left;';
$table1->data[$str_key][$k] = $v;
}
}
}
}
}
}
$table1->cellstyle[0][0] = 'background: #373737; color: #FFF;'; if ($pdf === 0) {
$table1->data[0][0] = $module_item['agent_name']; $table->colspan[$key_type_module]['cell'] = 3;
if ($count_columns == 1) { $table->data[$key_type_module]['cell'] = html_print_table(
$table1->colspan[0][0] = ($count_columns + 1); $table1,
} else { true
$table1->colspan[0][0] = $count_columns; );
} } else {
$return_pdf .= html_print_table(
$table1->cellstyle[1][0] = 'background: #373737; color: #FFF;'; $table1,
$table1->cellstyle[1][1] = 'background: #373737; color: #FFF;'; true
$table1->data[1][0] = $module_item['name']; );
if (($count_columns - 1) > 0) { }
$table1->colspan[1][0] = ($count_columns - 1);
}
$table1->data[1][1] = $module_item['timestamp'];
$table1->cellstyle[2] = array_pad(
[],
$count_columns,
'background: #373737; color: #FFF;'
);
$table1->data[2] = array_keys($first);
if (($count_columns - 1) == 0) {
$table1->colspan[2][0] = ($count_columns + 1);
}
$table1->data = array_merge(
$table1->data,
$module_item['data']
);
if ($pdf === 0) {
$table->colspan[$module_item['name'].'_'.$module_item['id_agente']]['cell'] = 3;
$table->data[$module_item['name'].'_'.$module_item['id_agente']]['cell'] = html_print_table(
$table1,
true
);
} else {
$table1->title = $item['title'];
$table1->titleclass = 'title_table_pdf';
$table1->titlestyle = 'text-align:left;';
$return_pdf .= html_print_table(
$table1,
true
);
} }
} }
} }

View File

@ -537,15 +537,30 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
// Check all groups // Check all groups
$groups = agents_get_all_groups_agent($id_agente, $agent['id_grupo']); $groups = agents_get_all_groups_agent($id_agente, $agent['id_grupo']);
if (! check_acl_one_of_groups($config['id_user'], $groups, 'AR') && ! check_acl_one_of_groups($config['id_user'], $groups, 'AW') && !$is_extra) {
if (is_metaconsole()) {
if (! check_acl_one_of_groups($config['id_user'], $groups, 'AR', false)
&& ! check_acl_one_of_groups($config['id_user'], $groups, 'AW', false)
) {
$grants_on_node = false;
} else {
$grants_on_node = true;
}
}
if (is_metaconsole()) {
metaconsole_restore_db();
}
if (! check_acl_one_of_groups($config['id_user'], $groups, 'AR', false)
&& ! check_acl_one_of_groups($config['id_user'], $groups, 'AW', false)
&& !$is_extra
) {
db_pandora_audit( db_pandora_audit(
'ACL Violation', 'ACL Violation',
'Trying to access Agent General Information' 'Trying to access Agent General Information'
); );
include_once 'general/noaccess.php'; include_once 'general/noaccess.php';
if (!empty($server_data) && is_metaconsole()) {
metaconsole_restore_db();
}
return; return;
} }
@ -586,7 +601,11 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
$hashdata = md5($hashdata); $hashdata = md5($hashdata);
$url = $server_data['server_url'].'/index.php?'.'sec=estado&'.'sec2=operation/agentes/ver_agente&'.'id_agente='.$agent['id_agente'].'&'.'loginhash=auto&'."loginhash_data=$hashdata&".'loginhash_user='.str_rot13($user); $url = $server_data['server_url'].'/index.php?'.'sec=estado&'.'sec2=operation/agentes/ver_agente&'.'id_agente='.$agent['id_agente'].'&'.'loginhash=auto&'."loginhash_data=$hashdata&".'loginhash_user='.str_rot13($user);
$cellName .= '<a href="'.$url.'">'.'<b><span style="font-weight:bold;text-transform:uppercase;" title="'.$agent['nombre'].'">'.$agent['alias'].'</span></b></a>'; if ($grants_on_node) {
$cellName .= '<a href="'.$url.'">'.'<b><span style="font-weight:bold;text-transform:uppercase;" title="'.$agent['nombre'].'">'.$agent['alias'].'</span></b></a>';
} else {
$cellName .= '<b><span style="font-weight:bold;text-transform:uppercase;" title="'.$agent['nombre'].'">'.$agent['alias'].'</span></b>';
}
} else { } else {
$url = ui_get_full_url( $url = ui_get_full_url(
'index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente='.$agent['id_agente'] 'index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente='.$agent['id_agente']
@ -802,7 +821,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
$events_graph = '<div style="width: 100%; height: 90px; display: flex; flex-direction: row; justify-content: center;">'; $events_graph = '<div style="width: 100%; height: 90px; display: flex; flex-direction: row; justify-content: center;">';
$events_graph .= graph_graphic_agentevents( $events_graph .= graph_graphic_agentevents(
$id_agente, $id_agente,
'385px;', '340px;margin:0',
45, 45,
SECONDS_1DAY, SECONDS_1DAY,
'', '',

View File

@ -2041,6 +2041,10 @@ function ui_pagination(
'disable_user', 'disable_user',
'delete_user', 'delete_user',
]; ];
// Check if url has &#x20; blankspace and replace it.
preg_replace('/\&#x20;/', '%20', $url);
$url = explode('&', $url); $url = explode('&', $url);
$finalUrl = []; $finalUrl = [];
@ -2118,7 +2122,7 @@ function ui_pagination(
$output .= "<a class='pagination-arrows ".$other_class." offset_0' $output .= "<a class='pagination-arrows ".$other_class." offset_0'
href='javascript: ".$script_modified.";'>".html_print_image('images/go_first_g.png', true, ['class' => 'bot']).'</a>'; href='javascript: ".$script_modified.";'>".html_print_image('images/go_first_g.png', true, ['class' => 'bot']).'</a>';
} else { } else {
$output .= "<a class='pagination-arrows ".$other_class." offset_0' href='".$url.'&amp;'.$offset_name."=0'>".html_print_image('images/go_first_g.png', true, ['class' => 'bot']).'</a>'; $output .= "<a class='pagination-arrows ".$other_class." offset_0' href='".io_safe_output($url).'&amp;'.$offset_name."=0'>".html_print_image('images/go_first_g.png', true, ['class' => 'bot']).'</a>';
} }
} }
@ -2762,6 +2766,7 @@ function get_shape_status_set($type)
// Small squares. // Small squares.
case STATUS_SERVER_OK: case STATUS_SERVER_OK:
case STATUS_SERVER_DOWN: case STATUS_SERVER_DOWN:
case STATUS_SERVER_CRASH:
$return = ['class' => 'status_small_squares']; $return = ['class' => 'status_small_squares'];
break; break;
@ -2773,6 +2778,9 @@ function get_shape_status_set($type)
case STATUS_AGENT_OK_BALL: case STATUS_AGENT_OK_BALL:
case STATUS_AGENT_NO_DATA_BALL: case STATUS_AGENT_NO_DATA_BALL:
case STATUS_AGENT_NO_MONITORS_BALL: case STATUS_AGENT_NO_MONITORS_BALL:
case STATUS_SERVER_OK_BALL:
case STATUS_SERVER_DOWN_BALL:
case STATUS_SERVER_CRASH_BALL:
$return = ['class' => 'status_balls']; $return = ['class' => 'status_balls'];
break; break;
@ -4005,7 +4013,7 @@ function ui_get_url_refresh($params=false, $relative=true, $add_post=true)
$url .= $key.'['.$k.']='.$v.'&'; $url .= $key.'['.$k.']='.$v.'&';
} }
} else { } else {
$url .= $key.'='.io_safe_input($value).'&'; $url .= $key.'='.io_safe_input(rawurlencode($value)).'&';
} }
} }
@ -6124,3 +6132,29 @@ function ui_print_message_dialog($title, $text, $id='', $img='', $text_button=''
echo '</div>'; echo '</div>';
echo '</div>'; echo '</div>';
} }
/**
* Generate a button for reveal the content of the password field.
*
* @param string $name Name of the field.
* @param boolean $return If true, return the string with the formed element.
*
* @return string
*/
function ui_print_reveal_password(string $name, bool $return=false)
{
if (is_metaconsole()) {
$imagePath = '../../images/';
} else {
$imagePath = 'images/';
}
$output = '&nbsp;<img class="clickable forced_title" id="reveal_password_'.$name.'" src="'.$imagePath.'eye_show.png" onclick="reveal_password(\''.$name.'\')" data-use_title_for_force_title="1" data-title="'.__('Show password').'">';
if ($return === true) {
return $output;
}
echo $output;
}

View File

@ -73,6 +73,24 @@ function update_manager_verify_trial()
} }
/**
* Check if the trial license is not expired.
*
* @return boolean true if the trial license is expired, false otherwise.
*/
function update_manager_verify_license_expired()
{
global $config;
$current_date = date('Ymd');
if (isset($config['license_expiry_date']) && $current_date >= $config['license_expiry_date']) {
return true;
}
return false;
}
/** /**
* Parses responses from configuration wizard. * Parses responses from configuration wizard.
* *
@ -454,13 +472,20 @@ function registration_wiz_process()
function registration_wiz_modal( function registration_wiz_modal(
$return=false, $return=false,
$launch=true, $launch=true,
$callback=false $callback=false,
$return_message=false
) { ) {
global $config; global $config;
$output = ''; $output = '';
// Do not show the wizard for trial licenses. // Do not show the wizard for trial licenses.
if (update_manager_verify_trial()) { if (update_manager_verify_trial()) {
ui_print_info_message('Your license is trial. Please contact Artica at info@artica.es for a valid license', '', $return_message);
return '';
}
if (update_manager_verify_license_expired()) {
ui_print_error_message('The license has expired. Please contact Artica at info@artica.es', '', $return_message);
return ''; return '';
} }

View File

@ -230,21 +230,6 @@ function pandoraFlotPieCustom(
); );
} }
var legends = $("#" + graph_id + " .legendLabel"); var legends = $("#" + graph_id + " .legendLabel");
var j = 0;
legends.each(function() {
//$(this).css("width", $(this).width());
$(this).css("font-size", font_size + "pt");
$(this).removeClass("legendLabel");
$(this).addClass(font);
$(this).text(legend[j]);
j++;
});
if ($('input[name="custom_graph"]').val()) {
$(".legend>div").css("right", $(".legend>div").height() * -1);
$(".legend>table").css("right", $(".legend>div").height() * -1);
}
//$('.legend>table').css('border',"1px solid #E2E2E2");
if (background_color == "transparent") { if (background_color == "transparent") {
$(".legend>table").css("background-color", ""); $(".legend>table").css("background-color", "");

View File

@ -346,13 +346,7 @@ function menu_graph(
$threshold = true; $threshold = true;
} }
$return .= "<div id='general_menu_$graph_id' class='menu_graph' style=' $return .= "<div id='general_menu_$graph_id' class='menu_graph'>";
width: 20px;
height: 150px;
left:100%;
position: absolute;
top: 0px;
background-color: tranparent;'>";
$return .= "<div id='menu_$graph_id' "."style='display: none; ".'text-align: center;'.'position: relative;'."border-bottom: 0px;'> $return .= "<div id='menu_$graph_id' "."style='display: none; ".'text-align: center;'.'position: relative;'."border-bottom: 0px;'>
<a href='javascript:'><img id='menu_cancelzoom_$graph_id' src='".$params['homeurl']."images/zoom_cross_grey.disabled.png' alt='".__('Cancel zoom')."' title='".__('Cancel zoom')."'></a>"; <a href='javascript:'><img id='menu_cancelzoom_$graph_id' src='".$params['homeurl']."images/zoom_cross_grey.disabled.png' alt='".__('Cancel zoom')."' title='".__('Cancel zoom')."'></a>";
if ($threshold) { if ($threshold) {
@ -745,13 +739,12 @@ function flot_slicesbar_graph(
// Set some containers to legend, graph, timestamp tooltip, etc. // Set some containers to legend, graph, timestamp tooltip, etc.
$height = ((int) $height + 15); $height = ((int) $height + 15);
if ($stat_win) {
$return = "<div id='$graph_id' class='noresizevc graph $adapt_key' style='width: ".$width.'%; height: '.$height."px; display: inline-block;'></div>";
} else {
$return = "<div id='$graph_id' class='noresizevc graph $adapt_key' style='width: ".$width.'%; height: '.$height."px;'></div>";
}
$return .= "<div id='value_$graph_id' style='display:none; position:absolute; background:#fff; border: solid 1px #aaa; padding: 2px'></div>"; $style = 'width:'.$width.'%;';
$style .= 'height:'.$height.'px;';
$return = "<div id='".$graph_id."' class='noresizevc graph ".$adapt_key."' style='".$style."'></div>";
$return .= "<div id='value_".$graph_id."' style='display:none; position:absolute; background:#fff; border: solid 1px #aaa; padding: 2px'></div>";
// Set a weird separator to serialize and unserialize // Set a weird separator to serialize and unserialize
// passing data from php to javascript. // passing data from php to javascript.

View File

@ -0,0 +1,170 @@
/**
* -------------------------------------
* Connection Check
* --------------------------------------
*/
checkConnection(1);
/**
* Performs connection tests every minutes and add connection listeners
* @param {integer} time in minutes
*/
function checkConnection(minutes) {
var cicle = minutes * 60 * 1000;
var checkConnection = setInterval(handleConnection, cicle);
// Connection listeters.
window.addEventListener("online", handleConnection);
window.addEventListener("offline", handleConnection);
}
/**
* Handle connection status test.
*
* Test conectivity with server and shows modal message.
*/
function handleConnection() {
var connected;
var msg = "online";
if (navigator.onLine) {
isReachable(getServerUrl())
.then(function(online) {
if (online) {
// handle online status
connected = true;
showConnectionMessage(connected, msg);
} else {
connected = false;
msg = "No connectivity with server";
showConnectionMessage(connected, msg);
}
})
.catch(function(err) {
connected = false;
msg = err;
showConnectionMessage(connected, msg);
});
} else {
// handle offline status
connected = false;
msg = "Connection offline";
showConnectionMessage(connected, msg);
}
}
/**
* Test server reachibilty and get response.
*
* @param {String} url
*
* Return {promise}
*/
function isReachable(url) {
/**
* Note: fetch() still "succeeds" for 404s on subdirectories,
* which is ok when only testing for domain reachability.
*
* Example:
* https://google.com/noexist does not throw
* https://noexist.com/noexist does throw
*/
return fetch(url, { method: "HEAD", mode: "no-cors" })
.then(function(resp) {
return resp && (resp.ok || resp.type === "opaque");
})
.catch(function(error) {
console.warn("[conn test failure]:", error);
});
}
/**
* Gets server origin url
*/
function getServerUrl() {
var server_url;
server_url = window.location.origin;
return server_url;
}
/**
* Shows or hide connection infoMessage.
*
* @param {bool} conn
* @param {string} msg
*/
function showConnectionMessage(conn = true, msg = "") {
var data = {};
if (conn) {
$("div#message_dialog_connection")
.closest(".ui-dialog-content")
.dialog("close");
} else {
data.title = "Connection with server has been lost";
data.text = "Connection status: " + msg;
infoMessage(data, "message_dialog_connection");
}
}
function infoMessage(data, idMsg) {
var title = data.title;
var err_messge = data.text;
if (idMsg == null) {
idMsg = uniqId();
}
if ($("#" + idMsg).length === 0) {
$("body").append('<div title="' + title + '" id="' + idMsg + '"></div>');
$("#" + idMsg).empty();
}
$("#err_msg").empty();
$("#err_msg").html("\n\n" + err_messge);
$("#" + idMsg)
.dialog({
height: 250,
width: 528,
opacity: 1,
modal: true,
position: {
my: "center",
at: "center",
of: window,
collision: "fit"
},
title: data.title,
buttons: [
{
class:
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
text: "Retry",
click: function(e) {
handleConnection();
}
},
{
class:
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-cancel",
text: "Close",
click: function() {
$(this).dialog("close");
}
}
],
open: function(event, ui) {
$(".ui-widget-overlay").addClass("error-modal-opened");
},
close: function(event, ui) {
$(".ui-widget-overlay").removeClass("error-modal-opened");
}
})
.show();
}

View File

@ -1930,120 +1930,3 @@ function ajaxRequest(id, settings) {
} }
}); });
} }
/**
* -------------------------------------
* Connection Check
* --------------------------------------
*/
checkConnection(1);
/**
* Performs connection tests every minutes and add connection listeners
* @param {integer} time in minutes
*/
function checkConnection(minutes) {
var cicle = minutes * 60 * 1000;
var checkConnection = setInterval(handleConnection, cicle);
// Connection listeters.
window.addEventListener("online", handleConnection);
window.addEventListener("offline", handleConnection);
}
/**
* Handle connection status test.
*
* Test conectivity with server and shows modal message.
*/
function handleConnection() {
var connected;
var msg = "online";
if (navigator.onLine) {
isReachable(getServerUrl())
.then(function(online) {
if (online) {
// handle online status
connected = true;
showConnectionMessage(connected, msg);
} else {
connected = false;
msg = "No connectivity with server";
showConnectionMessage(connected, msg);
}
})
.catch(function(err) {
connected = false;
msg = err;
showConnectionMessage(connected, msg);
});
} else {
// handle offline status
connected = false;
msg = "Connection offline";
showConnectionMessage(connected, msg);
}
}
/**
* Test server reachibilty and get response.
*
* @param {String} url
*
* Return {promise}
*/
function isReachable(url) {
/**
* Note: fetch() still "succeeds" for 404s on subdirectories,
* which is ok when only testing for domain reachability.
*
* Example:
* https://google.com/noexist does not throw
* https://noexist.com/noexist does throw
*/
return fetch(url, { method: "HEAD", mode: "no-cors" })
.then(function(resp) {
return resp && (resp.ok || resp.type === "opaque");
})
.catch(function(error) {
console.warn("[conn test failure]:", error);
});
}
/**
* Gets server origin url
*/
function getServerUrl() {
var server_url;
try {
server_url = get_php_value("homeurl");
} catch (SyntaxError) {
console.warn("Pandora homeurl cannot be found.");
server_url = $("#hidden-homeurl").val();
}
return server_url;
}
/**
* Shows or hide connection infoMessage.
*
* @param {bool} conn
* @param {string} msg
*/
function showConnectionMessage(conn = true, msg = "") {
var data = {};
if (conn) {
$("div#message_dialog_connection")
.closest(".ui-dialog-content")
.dialog("close");
} else {
data.title = "Connection with server has been lost";
data.text = "Connection status: " + msg;
infoMessage(data, "message_dialog_connection");
}
}

View File

@ -453,7 +453,6 @@ function perform_response_massive(response, response_id, out_iterator) {
// Change the status of an event to new, in process or validated. // Change the status of an event to new, in process or validated.
function event_change_status(event_ids) { function event_change_status(event_ids) {
var new_status = $("#estado").val(); var new_status = $("#estado").val();
var event_id = $("#hidden-id_event").val();
var meta = $("#hidden-meta").val(); var meta = $("#hidden-meta").val();
var history = $("#hidden-history").val(); var history = $("#hidden-history").val();
@ -472,7 +471,7 @@ function event_change_status(event_ids) {
type: "POST", type: "POST",
url: $("#hidden-ajax_file").val(), url: $("#hidden-ajax_file").val(),
async: true, async: true,
dataType: "html", dataType: "json",
success: function(data) { success: function(data) {
$("#button-status_button").removeAttr("disabled"); $("#button-status_button").removeAttr("disabled");
$("#response_loading").hide(); $("#response_loading").hide();
@ -485,11 +484,20 @@ function event_change_status(event_ids) {
$("#notification_status_error").hide(); $("#notification_status_error").hide();
} }
if (data == "status_ok") { if (data.status == "status_ok") {
if (typeof dt_events !== "undefined") { if (typeof dt_events !== "undefined") {
dt_events.draw(false); dt_events.draw(false);
} }
$("#notification_status_success").show(); $("#notification_status_success").show();
if (new_status == 1) {
$("#extended_event_general_page table td.general_acknowleded").text(
data.user
);
} else {
$("#extended_event_general_page table td.general_acknowleded").text(
"N/A"
);
}
} else { } else {
$("#notification_status_error").show(); $("#notification_status_error").show();
} }
@ -942,7 +950,6 @@ function execute_event_response(event_list_btn) {
}); });
break; break;
case "delete_selected": case "delete_selected":
console.log($(this));
$(".chk_val:checked").each(function() { $(".chk_val:checked").each(function() {
execute_delete_event_reponse( execute_delete_event_reponse(
dt_events, dt_events,

View File

@ -552,3 +552,23 @@ function infoMessage(data, idMsg) {
}) })
.show(); .show();
} }
function reveal_password(name) {
var passwordElement = $("#password-" + name);
var revealElement = $("#reveal_password_" + name);
var imagesPath = "";
if ($("#hidden-metaconsole_activated").val() == 1) {
imagesPath = "../../images/";
} else {
imagesPath = "images/";
}
if (passwordElement.attr("type") == "password") {
passwordElement.attr("type", "text");
revealElement.attr("src", imagesPath + "eye_hide.png");
} else {
passwordElement.attr("type", "password");
revealElement.attr("src", imagesPath + "eye_show.png");
}
}

View File

@ -12,6 +12,8 @@
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
/*global $, _*/
var TreeController = { var TreeController = {
controllers: [], controllers: [],
getController: function() { getController: function() {
@ -38,12 +40,35 @@ var TreeController = {
return; return;
} }
function _recursiveGroupsCount(elements, childGroupsLength) {
if (typeof childGroupsLength === "undefined") {
childGroupsLength = 0;
}
_.each(elements, function(element) {
if (typeof element.children !== "undefined") {
childGroupsLength = _recursiveGroupsCount(
element.children,
childGroupsLength
);
childGroupsLength += element.children.length;
}
});
return childGroupsLength;
}
// Load branch // Load branch
function _processGroup(container, elements, rootGroup) { function _processGroup(container, elements, rootGroup) {
var $group = $("<ul></ul>"); var $group = $("<ul></ul>");
var childGroupsLength = _recursiveGroupsCount(elements);
// First group // First group.
if (typeof rootGroup != "undefined" && rootGroup == true) { if (typeof rootGroup != "undefined" && rootGroup == true) {
var messageLength = controller.tree.length;
if (childGroupsLength > 0) {
messageLength = childGroupsLength + controller.tree.length;
}
$group $group
.addClass("tree-root") .addClass("tree-root")
.hide() .hide()
@ -54,13 +79,12 @@ var TreeController = {
'images/pandora.png" />' + 'images/pandora.png" />' +
"<span class='margin-left-1'>" + "<span class='margin-left-1'>" +
(controller.tree.length > 0 (controller.tree.length > 0
? controller.foundMessage + ": " + controller.tree.length ? controller.foundMessage + ": " + messageLength
: "") + : "") +
"</div>" "</div>"
); );
} } else {
// Normal group // Normal group.
else {
$group.addClass("tree-group").hide(); $group.addClass("tree-group").hide();
} }

View File

@ -64,14 +64,23 @@ function pandora_session_close()
function pandora_session_read($session_id) function pandora_session_read($session_id)
{ {
$session_id = addslashes($session_id); $session_id = addslashes($session_id);
$session_data = db_get_value(
'data', // Do not use SQL cache here.
'tsessions_php', $session_data = db_get_all_rows_sql(
'id_session', sprintf(
$session_id 'SELECT data
FROM `tsessions_php` WHERE id_session="%s"',
$session_id
),
false,
false
); );
if (!empty($session_data)) { if (is_array($session_data) === true) {
$session_data = $session_data[0]['data'];
}
if (empty($session_data) === false) {
return $session_data; return $session_data;
} else { } else {
return ''; return '';
@ -90,7 +99,6 @@ function pandora_session_read($session_id)
function pandora_session_write($session_id, $data) function pandora_session_write($session_id, $data)
{ {
$session_id = addslashes($session_id); $session_id = addslashes($session_id);
if (is_ajax()) { if (is_ajax()) {
// Avoid session upadte while processing ajax responses - notifications. // Avoid session upadte while processing ajax responses - notifications.
if (get_parameter('check_new_notifications', false)) { if (get_parameter('check_new_notifications', false)) {
@ -101,18 +109,22 @@ function pandora_session_write($session_id, $data)
$values = []; $values = [];
$values['last_active'] = time(); $values['last_active'] = time();
if (!empty($data)) { if (empty($data) === false) {
$values['data'] = addslashes($data); $values['data'] = addslashes($data);
} }
$session_exists = (bool) db_get_value( // Do not use SQL cache here.
'COUNT(id_session)', $session_exists = db_get_all_rows_sql(
'tsessions_php', sprintf(
'id_session', 'SELECT id_session
$session_id FROM `tsessions_php` WHERE id_session="%s"',
$session_id
),
false,
false
); );
if (!$session_exists) { if ($session_exists === false) {
$values['id_session'] = $session_id; $values['id_session'] = $session_id;
$retval_write = db_process_sql_insert('tsessions_php', $values); $retval_write = db_process_sql_insert('tsessions_php', $values);
} else { } else {
@ -198,11 +210,69 @@ function pandora_session_gc($max_lifetime=300)
} }
$result_handler = session_set_save_handler( /**
'pandora_session_open', * Enables custom session handlers.
'pandora_session_close', *
'pandora_session_read', * @return boolean Context changed or not.
'pandora_session_write', */
'pandora_session_destroy', function enable_session_handlers()
'pandora_session_gc' {
); global $config;
if ($config['_using_pandora_sessionhandlers'] !== true) {
if (session_status() !== PHP_SESSION_NONE) {
// Close previous version.
session_write_close();
}
$sesion_handler = session_set_save_handler(
'pandora_session_open',
'pandora_session_close',
'pandora_session_read',
'pandora_session_write',
'pandora_session_destroy',
'pandora_session_gc'
);
session_start();
// Restore previous session.
$config['_using_pandora_sessionhandlers'] = true;
return $sesion_handler;
}
return false;
}
/**
* Disables custom session handlers.
*
* @param string|null $id_session Force swap to target session.
*
* @return void
*/
function disable_session_handlers($id_session=null)
{
global $config;
if (session_status() !== PHP_SESSION_NONE) {
// Close previous version.
session_write_close();
}
$ss = new SessionHandler();
session_set_save_handler($ss, true);
if ($id_session !== null) {
session_id($id_session);
}
session_start();
$config['_using_pandora_sessionhandlers'] = false;
}
// Always enable session handler.
$result_handler = enable_session_handlers();

View File

@ -462,6 +462,10 @@ select:-internal-list-box {
width: 120px; width: 120px;
max-width: 120px; max-width: 120px;
} }
.w200px {
width: 200px;
max-width: 200px;
}
.w240px { .w240px {
width: 240px; width: 240px;
max-width: 240px; max-width: 240px;
@ -3074,6 +3078,12 @@ div#stat-win-module-graph div.nodata_container {
} }
.menu_graph { .menu_graph {
width: 30px;
height: 150px;
left: 100%;
position: absolute;
top: 0px;
background-color: transparent;
-moz-border-top-right-radius: 6px; -moz-border-top-right-radius: 6px;
-webkit-border-top-right-radius: 6px; -webkit-border-top-right-radius: 6px;
border-top-right-radius: 6px; border-top-right-radius: 6px;
@ -5866,7 +5876,7 @@ table.table_modal_alternate tr td:first-child {
} }
.flot-text { .flot-text {
width: 101%; width: 100%;
} }
/*Font header feedback*/ /*Font header feedback*/

View File

@ -222,7 +222,7 @@ echo '<head>'."\n";
ob_start('ui_process_page_head'); ob_start('ui_process_page_head');
// Enterprise main. // Enterprise main.
enterprise_include('index.php'); enterprise_include_once('index.php');
echo '<script type="text/javascript">'; echo '<script type="text/javascript">';
echo 'var dispositivo = navigator.userAgent.toLowerCase();'; echo 'var dispositivo = navigator.userAgent.toLowerCase();';
@ -273,6 +273,7 @@ if (strlen($search) > 0) {
} }
// Login process. // Login process.
enterprise_include_once('include/auth/saml.php');
if (! isset($config['id_user'])) { if (! isset($config['id_user'])) {
// Clear error messages. // Clear error messages.
unset($_COOKIE['errormsg']); unset($_COOKIE['errormsg']);
@ -395,24 +396,33 @@ if (! isset($config['id_user'])) {
$nick_in_db = $_SESSION['prepared_login_da']['id_user']; $nick_in_db = $_SESSION['prepared_login_da']['id_user'];
$expired_pass = false; $expired_pass = false;
} else if (($config['auth'] == 'saml') && ($login_button_saml)) { } else if (($config['auth'] == 'saml') && ($login_button_saml)) {
$saml_configured = include_once $config['homedir'].'/'.ENTERPRISE_DIR.'/include/auth/saml.php'; $saml_user_id = enterprise_hook('saml_process_user_login');
if (!$saml_configured) {
include_once 'general/noaccesssaml.php';
}
$saml_user_id = saml_process_user_login();
if (!$saml_user_id) { if (!$saml_user_id) {
include_once 'general/noaccesssaml.php'; $login_failed = true;
} include_once 'general/login_page.php';
while (@ob_end_flush()) {
// Dumping...
continue;
}
exit('</html>');
}
$nick_in_db = $saml_user_id; $nick_in_db = $saml_user_id;
if (!$nick_in_db) { if (!$nick_in_db) {
include_once $config['saml_path'].'simplesamlphp/lib/_autoload.php'; if ($config['auth'] === 'saml') {
$as = new SimpleSAML_Auth_Simple($config['saml_source']); enterprise_hook('saml_logout');
$as->logout(); }
if (session_status() !== PHP_SESSION_NONE) {
$_SESSION = [];
session_destroy();
header_remove('Set-Cookie');
setcookie(session_name(), $_COOKIE[session_name()], (time() - 4800), '/');
}
// Process logout.
include 'general/logoff.php';
} }
} else { } else {
// process_user_login is a virtual function which should be defined in each auth file. // process_user_login is a virtual function which should be defined in each auth file.
@ -735,7 +745,7 @@ if (! isset($config['id_user'])) {
exit('</html>'); exit('</html>');
} }
} else { } else if (isset($_GET['bye']) === false) {
// There is no user connected. // There is no user connected.
if ($config['enterprise_installed']) { if ($config['enterprise_installed']) {
enterprise_include_once('include/functions_reset_pass.php'); enterprise_include_once('include/functions_reset_pass.php');
@ -750,7 +760,17 @@ if (! isset($config['id_user'])) {
$pass2 = get_parameter_post('pass2'); $pass2 = get_parameter_post('pass2');
$id_user = get_parameter_post('id_user'); $id_user = get_parameter_post('id_user');
if ($correct_pass_change && !empty($pass1) && !empty($pass2) && !empty($id_user)) { if ($reset_hash != '') {
$hash_data = explode(':::', $reset_hash);
$id_user = $hash_data[0];
$codified_hash = $hash_data[1];
$db_reset_pass_entry = db_get_value_filter('reset_time', 'treset_pass', ['id_user' => $id_user, 'cod_hash' => $id_user.':::'.$codified_hash]);
}
if ($correct_pass_change && !empty($pass1) && !empty($pass2) && !empty($id_user) && $db_reset_pass_entry) {
delete_reset_pass_entry($id_user);
$correct_reset_pass_process = ''; $correct_reset_pass_process = '';
$process_error_message = ''; $process_error_message = '';
@ -787,21 +807,14 @@ if (! isset($config['id_user'])) {
include_once 'general/login_page.php'; include_once 'general/login_page.php';
} else { } else {
if ($reset_hash != '') { if ($reset_hash != '') {
$hash_data = explode(':::', $reset_hash);
$id_user = $hash_data[0];
$codified_hash = $hash_data[1];
$db_reset_pass_entry = db_get_value_filter('reset_time', 'treset_pass', ['id_user' => $id_user, 'cod_hash' => $id_user.':::'.$codified_hash]);
$process_error_message = ''; $process_error_message = '';
if ($db_reset_pass_entry) { if ($db_reset_pass_entry) {
if (($db_reset_pass_entry + SECONDS_2HOUR) < time()) { if (($db_reset_pass_entry + SECONDS_2HOUR) < time()) {
register_pass_change_try($id_user, 0); register_pass_change_try($id_user, 0);
$process_error_message = __('Too much time since password change request'); $process_error_message = __('Too much time since password change request');
delete_reset_pass_entry($id_user);
include_once 'general/login_page.php'; include_once 'general/login_page.php';
} else { } else {
delete_reset_pass_entry($id_user);
include_once 'enterprise/include/process_reset_pass.php'; include_once 'enterprise/include/process_reset_pass.php';
} }
} else { } else {
@ -950,6 +963,10 @@ if (! isset($config['id_user'])) {
} }
exit('</html>'); exit('</html>');
} else {
if ($config['auth'] === 'saml') {
enterprise_hook('saml_login_status_verifier');
}
} }
} }
} }
@ -961,19 +978,19 @@ if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
// Log off. // Log off.
if (isset($_GET['bye'])) { if (isset($_GET['bye'])) {
include 'general/logoff.php';
$iduser = $_SESSION['id_usuario']; $iduser = $_SESSION['id_usuario'];
if ($config['auth'] === 'saml') {
enterprise_hook('saml_logout');
}
$_SESSION = []; $_SESSION = [];
session_destroy(); session_destroy();
header_remove('Set-Cookie'); header_remove('Set-Cookie');
setcookie(session_name(), $_COOKIE[session_name()], (time() - 4800), '/'); setcookie(session_name(), $_COOKIE[session_name()], (time() - 4800), '/');
if ($config['auth'] == 'saml') { // Process logout.
include_once $config['saml_path'].'simplesamlphp/lib/_autoload.php'; include 'general/logoff.php';
$as = new SimpleSAML_Auth_Simple('PandoraFMS');
$as->logout();
}
while (@ob_end_flush()) { while (@ob_end_flush()) {
// Dumping... // Dumping...
@ -1252,8 +1269,8 @@ echo '</div>';
echo '<div id="um_msg_receiver">'; echo '<div id="um_msg_receiver">';
echo '</div>'; echo '</div>';
// Connection lost alert. // Connection lost alert.
ui_require_javascript_file('connection_check');
$conn_title = __('Connection with server has been lost'); $conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.'); $conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png'); ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');

View File

@ -129,7 +129,7 @@
<div style='height: 10px'> <div style='height: 10px'>
<?php <?php
$version = '7.0NG.750'; $version = '7.0NG.750';
$build = '201030'; $build = '201124';
$banner = "v$version Build $build"; $banner = "v$version Build $build";
error_reporting(0); error_reporting(0);

View File

@ -731,7 +731,7 @@ class Events
$system = System::getInstance(); $system = System::getInstance();
// --------------Fill the SQL POST------------------------------- // --------------Fill the SQL POST-------------------------------
$sql_post = ''; $sql_post = ' WHERE 1=1 ';
switch ($this->status) { switch ($this->status) {
case 0: case 0:

View File

@ -313,7 +313,7 @@ if ($not_found) {
$table->data[6][1] = html_print_input_text('scale_z', $scale_z, '', 2, 10, true).ui_print_help_tip(__('Introduce zoom level. 1 = Highest resolution. Figures may include decimals'), true); $table->data[6][1] = html_print_input_text('scale_z', $scale_z, '', 2, 10, true).ui_print_help_tip(__('Introduce zoom level. 1 = Highest resolution. Figures may include decimals'), true);
$table->data['source'][0] = __('Source'); $table->data['source'][0] = __('Source');
$table->data['source'][1] = html_print_radio_button('source', 'group', __('Group'), $source, true, $disabled_source).html_print_radio_button('source', 'recon_task', __('Recon task'), $source, true, $disabled_source).html_print_radio_button('source', 'ip_mask', __('CIDR IP mask'), $source, true, $disabled_source); $table->data['source'][1] = html_print_radio_button('source', 'group', __('Group'), $source, true, $disabled_source).html_print_radio_button('source', 'recon_task', __('Discovery task'), $source, true, $disabled_source).html_print_radio_button('source', 'ip_mask', __('CIDR IP mask'), $source, true, $disabled_source);
$table->data['source_data_recon_task'][0] = __('Source from recon task'); $table->data['source_data_recon_task'][0] = __('Source from recon task');
$table->data['source_data_recon_task'][0] .= ui_print_help_tip( $table->data['source_data_recon_task'][0] .= ui_print_help_tip(

View File

@ -35,6 +35,7 @@ require_once $config['homedir'].'/include/functions_graph.php';
require_once $config['homedir'].'/include/functions_modules.php'; require_once $config['homedir'].'/include/functions_modules.php';
require_once $config['homedir'].'/include/functions_agents.php'; require_once $config['homedir'].'/include/functions_agents.php';
require_once $config['homedir'].'/include/functions_tags.php'; require_once $config['homedir'].'/include/functions_tags.php';
require_once $config['homedir'].'/include/php_to_js_values.php';
enterprise_include_once('include/functions_agents.php'); enterprise_include_once('include/functions_agents.php');
check_login(); check_login();
@ -85,6 +86,7 @@ ui_require_css_file('register', 'include/styles/', true);
// Connection lost alert. // Connection lost alert.
$conn_title = __('Connection with server has been lost'); $conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.'); $conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_require_javascript_file('connection_check');
ui_print_message_dialog( ui_print_message_dialog(
$conn_title, $conn_title,
$conn_text, $conn_text,

View File

@ -1,6 +1,5 @@
<?php <?php
// This file is an example on how things must NEVER be done.
// Pandora FMS - http://pandorafms.com // Pandora FMS - http://pandorafms.com
// ================================================== // ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas // Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
@ -41,7 +40,7 @@ if (! defined('METACONSOLE')) {
$buttons['fields'] = [ $buttons['fields'] = [
'active' => false, 'active' => false,
'text' => '<a href="index.php?sec=view&sec2=operation/agentes/status_monitor&amp;section=fields">'.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'</a>', 'text' => '<a href="index.php?sec=view&sec2=operation/agentes/status_monitor&section=fields">'.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'</a>',
'operation' => true, 'operation' => true,
]; ];
@ -79,22 +78,27 @@ if (! defined('METACONSOLE')) {
ui_meta_print_header(__('Monitor view')); ui_meta_print_header(__('Monitor view'));
} }
$ag_freestring = (string) get_parameter('ag_freestring'); $recursion = get_parameter_switch('recursion', false);
$moduletype = (string) get_parameter('moduletype'); if ($recursion === false) {
$datatype = (string) get_parameter('datatype'); $recursion = get_parameter('recursion', false);
$ag_modulename = (string) get_parameter('ag_modulename'); }
$refr = (int) get_parameter('refr', 0);
$offset = (int) get_parameter('offset', 0); $ag_freestring = (string) get_parameter('ag_freestring');
$status = (int) get_parameter('status', 4); $moduletype = (string) get_parameter('moduletype');
$modulegroup = (int) get_parameter('modulegroup', -1); $datatype = (string) get_parameter('datatype');
$tag_filter = (int) get_parameter('tag_filter', 0); $ag_modulename = (string) get_parameter('ag_modulename');
$min_hours_status = (string) get_parameter('min_hours_status', ''); $refr = (int) get_parameter('refr', 0);
// Sort functionality $offset = (int) get_parameter('offset', 0);
$sortField = get_parameter('sort_field'); $status = (int) get_parameter('status', 4);
$sort = get_parameter('sort', 'none'); $modulegroup = (int) get_parameter('modulegroup', -1);
// When the previous page was a visualmap and show only one module $tag_filter = (int) get_parameter('tag_filter', 0);
$id_module = (int) get_parameter('id_module', 0); $min_hours_status = (string) get_parameter('min_hours_status', '');
$ag_custom_fields = (array) get_parameter('ag_custom_fields', []); // Sort functionality.
$sortField = get_parameter('sort_field');
$sort = get_parameter('sort', 'none');
// When the previous page was a visualmap and show only one module.
$id_module = (int) get_parameter('id_module', 0);
$ag_custom_fields = (array) get_parameter('ag_custom_fields', []);
$module_option = (int) get_parameter('module_option', 1); $module_option = (int) get_parameter('module_option', 1);
$autosearch = false; $autosearch = false;
@ -161,11 +165,22 @@ if (is_numeric($ag_group)) {
// Agent group selector // Agent group selector
if (!is_metaconsole()) { if (!is_metaconsole()) {
if ($ag_group > 0 && check_acl($config['id_user'], $ag_group, 'AR')) { if ($ag_group > 0 && check_acl($config['id_user'], $ag_group, 'AR')) {
$sql_conditions_group = sprintf( if ($recursion) {
' AND (tagente.id_grupo = %d OR tasg.id_group = %d)', $all_groups = groups_get_children_ids($ag_group, true);
$ag_group,
$ag_group // User has explicit permission on group 1 ?
); $sql_conditions_group = sprintf(
' AND (tagente.id_grupo IN (%s) OR tasg.id_group IN (%s)) ',
implode(',', $all_groups),
implode(',', $all_groups)
);
} else {
$sql_conditions_group = sprintf(
' AND (tagente.id_grupo = %d OR tasg.id_group = %d)',
$ag_group,
$ag_group
);
}
} else if ($user_groups != '') { } else if ($user_groups != '') {
// User has explicit permission on group 1 ? // User has explicit permission on group 1 ?
$sql_conditions_group = ' AND ( $sql_conditions_group = ' AND (
@ -175,11 +190,22 @@ if (!is_metaconsole()) {
} }
} else { } else {
if (((int) $ag_group !== 0) && (check_acl($config['id_user'], $id_ag_group, 'AR'))) { if (((int) $ag_group !== 0) && (check_acl($config['id_user'], $id_ag_group, 'AR'))) {
$sql_conditions_group = sprintf( if ($recursion) {
' AND (tagente.id_grupo IN (%s) OR tasg.id_group IN (%s))', $all_groups = groups_get_children_ids($ag_group, true);
$ag_group,
$ag_group // User has explicit permission on group 1 ?
); $sql_conditions_group = sprintf(
' AND (tagente.id_grupo IN (%s) OR tasg.id_group IN (%s)) ',
implode(',', $all_groups),
implode(',', $all_groups)
);
} else {
$sql_conditions_group = sprintf(
' AND (tagente.id_grupo IN (%s) OR tasg.id_group IN (%s))',
$ag_group,
$ag_group
);
}
} else if ($user_groups != '') { } else if ($user_groups != '') {
// User has explicit permission on group 1 ? // User has explicit permission on group 1 ?
$sql_conditions_group = ' AND ( $sql_conditions_group = ' AND (
@ -355,7 +381,8 @@ $table->style[3] = 'font-weight: bold;';
$table->style[4] = 'font-weight: bold;'; $table->style[4] = 'font-weight: bold;';
$table->data[0][0] = __('Group'); $table->data[0][0] = __('Group');
$table->data[0][1] = html_print_select_groups( $table->data[0][1] = '<div class="flex flex-row-vcenter w290px"><div class="w200px">';
$table->data[0][1] .= html_print_select_groups(
$config['id_user'], $config['id_user'],
'AR', 'AR',
true, true,
@ -375,6 +402,18 @@ $table->data[0][1] = html_print_select_groups(
'id_grupo', 'id_grupo',
false false
); );
$table->data[0][1] .= '</div><div>';
$table->data[0][1] .= html_print_input(
[
'type' => 'checkbox',
'name' => 'recursion',
'return' => true,
'checked' => $recursion,
'value' => 1,
]
);
$table->data[0][1] .= __('Recursion');
$table->data[0][1] .= '</div></div>';
$fields = []; $fields = [];
$fields[AGENT_MODULE_STATUS_NORMAL] = __('Normal'); $fields[AGENT_MODULE_STATUS_NORMAL] = __('Normal');
@ -701,8 +740,7 @@ foreach ($custom_fields as $custom_field) {
$table_custom_fields->data[] = $row; $table_custom_fields->data[] = $row;
} }
$filters = '<form method="post" action="index.php?sec=view&sec2=operation/agentes/status_monitor&refr='.$refr.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&module_option='.$module_option.'&ag_modulename='.$ag_modulename.'&moduletype='.$moduletype.'&datatype='.$datatype.'&status='.$status.'&sort_field='.$sortField.'&sort='.$sort.'&pure='.$config['pure'].$ag_custom_fields_params.'">';
$filters = '<form method="post" action="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;refr='.$refr.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;module_option='.$module_option.'&amp;ag_modulename='.$ag_modulename.'&amp;moduletype='.$moduletype.'&amp;datatype='.$datatype.'&amp;status='.$status.'&amp;sort_field='.$sortField.'&amp;sort='.$sort.'&amp;pure='.$config['pure'].$ag_custom_fields_params.'">';
if (is_metaconsole()) { if (is_metaconsole()) {
$table->colspan[4][0] = 7; $table->colspan[4][0] = 7;
$table->cellstyle[4][0] = 'padding: 10px;'; $table->cellstyle[4][0] = 'padding: 10px;';
@ -970,7 +1008,7 @@ switch ($sortField) {
} }
$sql = 'SELECT $sql = 'SELECT
(SELECT GROUP_CONCAT(ttag.name SEPARATOR \',\') (SELECT GROUP_CONCAT(ttag.name SEPARATOR \',\')
FROM ttag FROM ttag
WHERE ttag.id_tag IN ( WHERE ttag.id_tag IN (
SELECT ttag_module.id_tag SELECT ttag_module.id_tag
@ -1014,6 +1052,7 @@ $sql = 'SELECT
ORDER BY '.$order['field'].' '.$order['order'].' ORDER BY '.$order['field'].' '.$order['order'].'
LIMIT '.$offset.','.$limit_sql; LIMIT '.$offset.','.$limit_sql;
// We do not show the modules until the user searches with the filter // We do not show the modules until the user searches with the filter
if ($autosearch) { if ($autosearch) {
if (! defined('METACONSOLE')) { if (! defined('METACONSOLE')) {
@ -1102,17 +1141,51 @@ if (($config['dbtype'] == 'oracle') && ($result !== false)) {
// Urls to sort the table. // Urls to sort the table.
$url_agent_name = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;refr='.$refr.'&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=agent_alias&amp;sort='; $url_agent_name = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_type = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=type&amp;sort='; $url_type = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_module_name = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=module_name&amp;sort='; $url_module_name = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_server_type = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=moduletype&amp;sort='; $url_server_type = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_interval = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=interval&amp;sort='; $url_interval = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_status = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=status&amp;sort='; $url_status = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_status = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=last_status_change&amp;sort='; $url_status = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_data = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=data&amp;sort='; $url_data = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_timestamp_up = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=timestamp&amp;sort=up'; $url_timestamp_up = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_timestamp_down = 'index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype.'&amp;moduletype='.$moduletype.'&amp;refr='.$refr.'&amp;modulegroup='.$modulegroup.'&amp;offset='.$offset.'&amp;ag_group='.$ag_group.'&amp;ag_freestring='.$ag_freestring.'&amp;ag_modulename='.$ag_modulename.'&amp;status='.$status.$ag_custom_fields_params.'&amp;sort_field=timestamp&amp;sort=down'; $url_timestamp_down = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_agent_name .= '&refr='.$refr.'&datatype='.$datatype.'&moduletype='.$moduletype.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_type .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_module_name .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_server_type .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_interval .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_status .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_status .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_data .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_timestamp_up .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
$url_timestamp_down .= '&datatype='.$datatype.'&moduletype='.$moduletype.'&refr='.$refr.'&modulegroup='.$modulegroup.'&offset='.$offset.'&ag_group='.$ag_group.'&ag_freestring='.$ag_freestring.'&ag_modulename='.$ag_modulename.'&status='.$status.$ag_custom_fields_params;
// Holy god...
$url_agent_name .= '&recursion='.$recursion;
$url_type .= '&recursion='.$recursion;
$url_module_name .= '&recursion='.$recursion;
$url_server_type .= '&recursion='.$recursion;
$url_interval .= '&recursion='.$recursion;
$url_status .= '&recursion='.$recursion;
$url_status .= '&recursion='.$recursion;
$url_data .= '&recursion='.$recursion;
$url_timestamp_up .= '&recursion='.$recursion;
$url_timestamp_down .= '&recursion='.$recursion;
$url_agent_name .= '&sort_field=agent_alias&sort=';
$url_type .= '&sort_field=type&sort=';
$url_module_name .= '&sort_field=module_name&sort=';
$url_server_type .= '&sort_field=moduletype&sort=';
$url_interval .= '&sort_field=interval&sort=';
$url_status .= '&sort_field=status&sort=';
$url_status .= '&sort_field=last_status_change&sort=';
$url_data .= '&sort_field=data&sort=';
$url_timestamp_up .= '&sort_field=timestamp&sort=up';
$url_timestamp_down .= '&sort_field=timestamp&sort=down';
// Start Build List Result // Start Build List Result
if (!empty($result)) { if (!empty($result)) {
@ -1276,9 +1349,9 @@ if (!empty($result)) {
} }
if (is_metaconsole()) { if (is_metaconsole()) {
$data[0] = '<a href="?sec=gmodules&amp;sec2=advanced/policymanager&amp;id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>'; $data[0] = '<a href="?sec=gmodules&sec2=advanced/policymanager&id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>';
} else { } else {
$data[0] = '<a href="?sec=gmodules&amp;sec2=enterprise/godmode/policies/policies&amp;id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>'; $data[0] = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>';
} }
} }
@ -1293,7 +1366,7 @@ if (!empty($result)) {
// TODO: Calculate hash access before to use it more simply like other sections. I.E. Events view // TODO: Calculate hash access before to use it more simply like other sections. I.E. Events view
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
$agent_link = '<a href="'.$row['server_url'].'index.php?'.'sec=estado&amp;'.'sec2=operation/agentes/ver_agente&amp;'.'id_agente='.$row['id_agent'].'&amp;'.'loginhash=auto&amp;'.'loginhash_data='.$row['hashdata'].'&amp;'.'loginhash_user='.str_rot13($row['user']).'">'; $agent_link = '<a href="'.$row['server_url'].'index.php?'.'sec=estado&'.'sec2=operation/agentes/ver_agente&'.'id_agente='.$row['id_agent'].'&'.'loginhash=auto&'.'loginhash_data='.$row['hashdata'].'&'.'loginhash_user='.str_rot13($row['user']).'">';
$agent_alias = ui_print_truncate_text( $agent_alias = ui_print_truncate_text(
$agent_alias, $agent_alias,
'agent_small', 'agent_small',
@ -1309,7 +1382,7 @@ if (!empty($result)) {
$data[1] = $agent_alias; $data[1] = $agent_alias;
} }
} else { } else {
$data[1] = '<strong><a href="index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente='.$row['id_agent'].'">'; $data[1] = '<strong><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$row['id_agent'].'">';
$data[1] .= ui_print_truncate_text($agent_alias, 'agent_medium', false, true, false, '[&hellip;]', 'font-size:7.5pt;'); $data[1] .= ui_print_truncate_text($agent_alias, 'agent_medium', false, true, false, '[&hellip;]', 'font-size:7.5pt;');
$data[1] .= '</a></strong>'; $data[1] .= '</a></strong>';
} }
@ -1325,9 +1398,9 @@ if (!empty($result)) {
$show_edit_icon = false; $show_edit_icon = false;
} }
$url_edit_module = $row['server_url'].'index.php?'.'sec=gagente&amp;'.'sec2=godmode/agentes/configurar_agente&amp;'.'id_agente='.$row['id_agent'].'&amp;'.'tab=module&amp;'.'id_agent_module='.$row['id_agente_modulo'].'&amp;'.'edit_module=1'.'&amp;loginhash=auto&amp;loginhash_data='.$row['hashdata'].'&amp;loginhash_user='.str_rot13($row['user']); $url_edit_module = $row['server_url'].'index.php?'.'sec=gagente&'.'sec2=godmode/agentes/configurar_agente&'.'id_agente='.$row['id_agent'].'&'.'tab=module&'.'id_agent_module='.$row['id_agente_modulo'].'&'.'edit_module=1'.'&loginhash=auto&loginhash_data='.$row['hashdata'].'&loginhash_user='.str_rot13($row['user']);
} else { } else {
$url_edit_module = 'index.php?'.'sec=gagente&amp;'.'sec2=godmode/agentes/configurar_agente&amp;'.'id_agente='.$row['id_agent'].'&amp;'.'tab=module&amp;'.'id_agent_module='.$row['id_agente_modulo'].'&amp;'.'edit_module=1'; $url_edit_module = 'index.php?'.'sec=gagente&'.'sec2=godmode/agentes/configurar_agente&'.'id_agente='.$row['id_agent'].'&'.'tab=module&'.'id_agent_module='.$row['id_agente_modulo'].'&'.'edit_module=1';
} }
if ($show_edit_icon) { if ($show_edit_icon) {
@ -1750,24 +1823,13 @@ if (!empty($result)) {
// End Build List Result. // End Build List Result.
echo "<div id='monitor_details_window'></div>"; echo "<div id='monitor_details_window'></div>";
// Strict user hidden.
echo '<div id="strict_hidden" style="display:none;">';
html_print_input_text('strict_user_hidden', $strict_user);
echo '</div>';
enterprise_hook('close_meta_frame'); enterprise_hook('close_meta_frame');
ui_require_javascript_file('pandora_modules'); ui_require_javascript_file('pandora_modules');
?> ?>
<script type='text/javascript'> <script type="text/javascript">
$(document).ready (function () {
if ($('#ag_group').val() != 0) {
$('#tag_filter').css('display', 'none');
$('#tag_td').css('display', 'none');
}
});
$('#moduletype').click(function() { $('#moduletype').click(function() {
jQuery.get ( jQuery.get (
@ -1789,17 +1851,6 @@ $('#moduletype').click(function() {
return false; return false;
}); });
$('#ag_group').change (function () {
strict_user = $('#text-strict_user_hidden').val();
if (($('#ag_group').val() != 0) && (strict_user != 0)) {
$('#tag_filter').css('display', 'none');
$('#tag_td').css('display', 'none');
} else {
$('#tag_filter').css('display', '');
$('#tag_td').css('display', '');
}
});
function toggle_full_value(id) { function toggle_full_value(id) {
text = $('#hidden_value_module_' + id).html(); text = $('#hidden_value_module_' + id).html();

View File

@ -444,7 +444,7 @@ $user_filter = db_get_row_sql(
) )
); );
// Do not load the user filter if we come from the 24h event graph // Do not load the user filter if we come from the 24h event graph.
$from_event_graph = get_parameter('filter[from_event_graph]', $filter['from_event_graph']); $from_event_graph = get_parameter('filter[from_event_graph]', $filter['from_event_graph']);
if ($user_filter !== false && $from_event_graph != 1) { if ($user_filter !== false && $from_event_graph != 1) {
$filter = events_get_event_filter($user_filter['id_filter']); $filter = events_get_event_filter($user_filter['id_filter']);
@ -457,6 +457,13 @@ if ($user_filter !== false && $from_event_graph != 1) {
$text_agent = $filter['text_agent']; $text_agent = $filter['text_agent'];
$id_agent = $filter['id_agent']; $id_agent = $filter['id_agent'];
$id_agent_module = $filter['id_agent_module']; $id_agent_module = $filter['id_agent_module'];
$text_module = io_safe_output(
db_get_value_filter(
'nombre',
'tagente_modulo',
['id_agente_modulo' => $filter['id_agent_module']]
)
);
$pagination = $filter['pagination']; $pagination = $filter['pagination'];
$event_view_hr = $filter['event_view_hr']; $event_view_hr = $filter['event_view_hr'];
$id_user_ack = $filter['id_user_ack']; $id_user_ack = $filter['id_user_ack'];
@ -893,13 +900,17 @@ if (is_metaconsole() !== true) {
*/ */
// Group. // Group.
if ($id_group_filter === null) {
$id_group_filter = 0;
}
$data = html_print_input( $data = html_print_input(
[ [
'name' => 'id_group_filter', 'name' => 'id_group_filter',
'returnAllGroup' => true, 'returnAllGroup' => true,
'privilege' => 'AR', 'privilege' => 'AR',
'type' => 'select_groups', 'type' => 'select_groups',
'selected' => (defined($id_group_filter) ? $id_group_filter : 0), 'selected' => $id_group_filter,
'nothing' => false, 'nothing' => false,
'return' => true, 'return' => true,
'size' => '80%', 'size' => '80%',
@ -2019,6 +2030,9 @@ function process_datatables_item(item) {
/* Group name */ /* Group name */
if (item.id_grupo == "0") { if (item.id_grupo == "0") {
var severity_value = "<?php echo $severity; ?>";
const multiple = severity_value.split(",");
$("#severity").val(multiple);
item.id_grupo = "<?php echo __('All'); ?>"; item.id_grupo = "<?php echo __('All'); ?>";
} else { } else {
item.id_grupo = item.group_name; item.id_grupo = item.group_name;
@ -2343,9 +2357,8 @@ $(document).ready( function() {
url: '<?php echo ui_get_full_url('ajax.php'); ?>', url: '<?php echo ui_get_full_url('ajax.php'); ?>',
data: { data: {
page: 'include/ajax/events', page: 'include/ajax/events',
load_filter_modal: 1, load_filter_modal: 1
current_filter: $('#latest_filter_id').val() },
},
success: function (data){ success: function (data){
$('#load-modal-filter') $('#load-modal-filter')
.empty() .empty()

View File

@ -311,7 +311,7 @@ if ($user_filter != 0 && empty($id_name) && !$update_from_filter_table) {
} }
// Build the condition of the events query. // Build the condition of the events query.
$sql_post = ''; $sql_post = ' WHERE 1=1 ';
$id_user = $config['id_user']; $id_user = $config['id_user'];
@ -1214,7 +1214,7 @@ if ($group_rep == 0) {
$sql = 'SELECT COUNT(DISTINCT id_evento) $sql = 'SELECT COUNT(DISTINCT id_evento)
FROM $event_table te FROM $event_table te
$event_lj $event_lj
WHERE 1=1 $sql_post'; $sql_post';
$total_events = (int) db_get_sql($sql); $total_events = (int) db_get_sql($sql);
} else if ($group_rep == 1) { } else if ($group_rep == 1) {
$total_events = events_get_events_grouped( $total_events = events_get_events_grouped(
@ -1477,7 +1477,8 @@ $(document).ready( function() {
$("#text-id_extra").val(val); $("#text-id_extra").val(val);
if (i == 'user_comment') if (i == 'user_comment')
$("#text-user_comment").val(val); $("#text-user_comment").val(val);
if (i == 'module_search')
$("#text-module_search").val(val);
if(i == 'id_source_event') if(i == 'id_source_event')
$("#text-id_source_event").val(val); $("#text-id_source_event").val(val);
} }

View File

@ -61,6 +61,13 @@ echo '</head>';
echo "<body style='background-color: #494949; max-width: 550px; max-height: 400px; margin-top:40px;'>"; echo "<body style='background-color: #494949; max-width: 550px; max-height: 400px; margin-top:40px;'>";
echo "<h1 class='modalheaderh1'>".__('Sound console').'</h1>'; echo "<h1 class='modalheaderh1'>".__('Sound console').'</h1>';
// Connection lost alert.
ui_require_css_file('register', 'include/styles/', true);
$conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_require_javascript_file('connection_check');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');
$table = new StdClass; $table = new StdClass;
$table->width = '100%'; $table->width = '100%';
$table->styleTable = 'padding-left:16px; padding-right:16px; padding-top:16px;'; $table->styleTable = 'padding-left:16px; padding-right:16px; padding-top:16px;';
@ -77,7 +84,7 @@ $table->data[0][2] = __('Type');
$table->data[0][3] = html_print_checkbox('alert_fired', 'alert_fired', true, true, false, 'changeType();').__('Alert fired').'<br />'.html_print_checkbox('critical', 'critical', true, true, false, 'changeType();').__('Monitor critical').'<br />'.html_print_checkbox('unknown', 'unknown', true, true, false, 'changeType();').__('Monitor unknown').'<br />'.html_print_checkbox('warning', 'warning', true, true, false, 'changeType();').__('Monitor warning').'<br />'; $table->data[0][3] = html_print_checkbox('alert_fired', 'alert_fired', true, true, false, 'changeType();').__('Alert fired').'<br />'.html_print_checkbox('critical', 'critical', true, true, false, 'changeType();').__('Monitor critical').'<br />'.html_print_checkbox('unknown', 'unknown', true, true, false, 'changeType();').__('Monitor unknown').'<br />'.html_print_checkbox('warning', 'warning', true, true, false, 'changeType();').__('Monitor warning').'<br />';
$table->data[1][0] = __('Agent'); $table->data[1][0] = __('Agent');
$table->data[1][1] = html_print_select($agents, 'id_agents[]', true, false, '', '', true, true, '', '', '', 'width:120px; height:100px', '', false, '', '', true); $table->data[1][1] = html_print_select($agents, 'id_agents[]', true, false, '', '', true, true, '', '', '', 'max-width:200px; height:100px', '', false, '', '', true);
$table->data[1][2] = __('Event'); $table->data[1][2] = __('Event');
$table->data[1][3] = html_print_textarea('events_fired', 200, 20, '', 'readonly="readonly" style="max-height:100px; background: #ddd; resize:none;"', true); $table->data[1][3] = html_print_textarea('events_fired', 200, 20, '', 'readonly="readonly" style="max-height:100px; background: #ddd; resize:none;"', true);
@ -152,10 +159,26 @@ function changeGroup() {
} }
function changeType() { function changeType() {
alert_fired = $("input[name=alert_fired]").attr('checked'); alert_fired = false;
critical = $("input[name=critical]").attr('checked'); critical = false;
warning = $("input[name=warning]").attr('checked'); warning = false;
unknown = $("input[name=unknown]").attr('checked'); unknown = false;
if($("input[name=alert_fired]").is(':checked') ) {
alert_fired = true;
}
if($("input[name=critical]").is(':checked') ) {
critical = true;
}
if($("input[name=warning]").is(':checked') ) {
warning = true;
}
if($("input[name=unknown]").is(':checked') ) {
unknown = true;
}
} }
function toggleButton() { function toggleButton() {
@ -256,9 +279,6 @@ $(document).ready (function () {
setInterval("check_event()", (10 * 1000)); //10 seconds between ajax request setInterval("check_event()", (10 * 1000)); //10 seconds between ajax request
$("#table1").css("background-color", "#fff"); $("#table1").css("background-color", "#fff");
$("#table2").css("background-color", "#fff"); $("#table2").css("background-color", "#fff");
group_width = $("#group").width();
$("#id_agents").width(group_width + 9);
}); });
</script> </script>

View File

@ -273,8 +273,10 @@ if ($layers != false) {
gis_activate_ajax_refresh($layers, $timestampLastOperation, 1, $idMap); gis_activate_ajax_refresh($layers, $timestampLastOperation, 1, $idMap);
// Connection lost alert. // Connection lost alert.
ui_require_css_file('register', 'include/styles/', true);
$conn_title = __('Connection with server has been lost'); $conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.'); $conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_require_javascript_file('connection_check');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png'); ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');
} }

View File

@ -291,10 +291,8 @@ enterprise_hook('close_meta_frame');
// Clear the tree // Clear the tree
if (typeof treeController.recipient != 'undefined' && treeController.recipient.length > 0) if (typeof treeController.recipient != 'undefined' && treeController.recipient.length > 0)
treeController.recipient.empty(); treeController.recipient.empty();
$(".loading_tree").show();
$(".loading_tree").show();
var parameters = {}; var parameters = {};
parameters['page'] = "include/ajax/tree.ajax"; parameters['page'] = "include/ajax/tree.ajax";
@ -308,21 +306,21 @@ enterprise_hook('close_meta_frame');
parameters['filter']['statusModule'] = $("select#status_module").val(); parameters['filter']['statusModule'] = $("select#status_module").val();
parameters['filter']['groupID'] = $("input#hidden-group-id").val(); parameters['filter']['groupID'] = $("input#hidden-group-id").val();
parameters['filter']['tagID'] = $("input#hidden-tag-id").val(); parameters['filter']['tagID'] = $("input#hidden-tag-id").val();
if($("#checkbox-serach_hirearchy").is(':checked')){ if($("#checkbox-serach_hirearchy").is(':checked')){
parameters['filter']['searchHirearchy'] = 1; parameters['filter']['searchHirearchy'] = 1;
} }
else{ else{
parameters['filter']['searchHirearchy'] = 0; parameters['filter']['searchHirearchy'] = 0;
} }
if($("#checkbox-show_not_init_agents").is(':checked')){ if($("#checkbox-show_not_init_agents").is(':checked')){
parameters['filter']['show_not_init_agents'] = 1; parameters['filter']['show_not_init_agents'] = 1;
} }
else{ else{
parameters['filter']['show_not_init_agents'] = 0; parameters['filter']['show_not_init_agents'] = 0;
} }
if($("#checkbox-show_not_init_modules").is(':checked')){ if($("#checkbox-show_not_init_modules").is(':checked')){
parameters['filter']['show_not_init_modules'] = 1; parameters['filter']['show_not_init_modules'] = 1;
$('#hidden-show_not_init_modules_hidden').val(1); $('#hidden-show_not_init_modules_hidden').val(1);
@ -339,13 +337,35 @@ enterprise_hook('close_meta_frame');
success: function(data) { success: function(data) {
if (data.success) { if (data.success) {
$(".loading_tree").hide(); $(".loading_tree").hide();
var foundMessage = '';
switch (parameters['type']) {
case 'policies':
foundMessage = "<?php echo __('Policies found'); ?>";
break;
case 'os':
foundMessage = "<?php echo __('Operating systems found'); ?>";
break;
case 'tag':
foundMessage = "<?php echo __('Tags found'); ?>";
break;
case 'module_group':
foundMessage = "<?php echo __('Module Groups found'); ?>";
break;
case 'module':
foundMessage = "<?php echo __('Modules found'); ?>";
break;
case 'group':
default:
foundMessage = "<?php echo __('Groups found'); ?>";
break;
}
treeController.init({ treeController.init({
recipient: $("div#tree-controller-recipient"), recipient: $("div#tree-controller-recipient"),
detailRecipient: $.fixedBottomBox({ width: 400, height: window.innerHeight * 0.9 }), detailRecipient: $.fixedBottomBox({ width: 400, height: window.innerHeight * 0.9 }),
page: parameters['page'], page: parameters['page'],
emptyMessage: "<?php echo __('No data found'); ?>", emptyMessage: "<?php echo __('No data found'); ?>",
foundMessage: "<?php echo __('Groups found'); ?>", foundMessage: foundMessage,
tree: data.tree, tree: data.tree,
baseURL: "<?php echo ui_get_full_url(false, false, false, is_metaconsole()); ?>", baseURL: "<?php echo ui_get_full_url(false, false, false, is_metaconsole()); ?>",
ajaxURL: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>", ajaxURL: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",

View File

@ -48,6 +48,7 @@ html_print_input_hidden('homeurl', $config['homeurl']);
$url_css_modal = ui_get_full_url('include/styles/register.css', false, false, false); $url_css_modal = ui_get_full_url('include/styles/register.css', false, false, false);
echo '<link rel="stylesheet" href="'.$url_css_modal.'" type="text/css" />'; echo '<link rel="stylesheet" href="'.$url_css_modal.'" type="text/css" />';
// Connection lost alert. // Connection lost alert.
ui_require_javascript_file('connection_check', 'include/javascript/', true);
$conn_title = __('Connection with server has been lost'); $conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.'); $conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png'); ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');
@ -157,10 +158,6 @@ echo '<div style="display: none;" id="qrcode_container" title="'.__('QR code of
echo '<div id="qrcode_container_image"></div>'; echo '<div id="qrcode_container_image"></div>';
echo '</div>'; echo '</div>';
// Connection lost alert.
$conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_print_message_alert($conn_title, $conn_text, 'connection', '/images/error_1.png');
ui_require_jquery_file('countdown', 'include/javascript/', true); ui_require_jquery_file('countdown', 'include/javascript/', true);
ui_require_javascript_file('wz_jsgraphics', 'include/javascript/', true); ui_require_javascript_file('wz_jsgraphics', 'include/javascript/', true);

View File

@ -29,11 +29,10 @@ if (file_exists(ENTERPRISE_DIR.'/include/functions_login.php')) {
require_once $config['homedir'].'/vendor/autoload.php'; require_once $config['homedir'].'/vendor/autoload.php';
ui_require_css_file('visual_maps'); ui_require_css_file('visual_maps');
ui_require_css_file('register'); ui_require_css_file('register', 'include/styles/', true);
html_print_input_hidden('homeurl', $config['homeurl']);
// Connection lost alert. // Connection lost alert.
ui_require_javascript_file('connection_check', 'include/javascript/', true);
$conn_title = __('Connection with server has been lost'); $conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.'); $conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png'); ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');
@ -140,10 +139,6 @@ echo '<div style="display: none;" id="qrcode_container" title="'.__('QR code of
echo '<div id="qrcode_container_image"></div>'; echo '<div id="qrcode_container_image"></div>';
echo '</div>'; echo '</div>';
// Connection lost alert.
$conn_title = __('Connection with server has been lost');
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
ui_print_message_dialog($conn_title, $conn_text, 'connection', '/images/error_1.png');
// Check groups can access user. // Check groups can access user.
$aclUserGroups = []; $aclUserGroups = [];

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.750 %define version 7.0NG.750
%define release 201030 %define release 201124
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.750 %define version 7.0NG.750
%define release 201030 %define release 201124
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

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

View File

@ -1,5 +1,5 @@
package: pandorafms-server package: pandorafms-server
Version: 7.0NG.750-201030 Version: 7.0NG.750-201124
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -771,7 +771,7 @@ sub main() {
die("Server thread crashed.") unless (check_server_threads() == 1); die("Server thread crashed.") unless (check_server_threads() == 1);
db_do ($DBH, db_do ($DBH,
"UPDATE tserver SET status = 0 "UPDATE tserver SET status = -1
WHERE UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(keepalive) > 2*server_keepalive" WHERE UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(keepalive) > 2*server_keepalive"
); );

View File

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

View File

@ -498,7 +498,7 @@ sub exec_network_module ($$$$) {
$module_data = pandora_ping_latency ($pa_config, $ip_target, $timeout, $retries); $module_data = pandora_ping_latency ($pa_config, $ip_target, $timeout, $retries);
if (defined($module_data)) { if (defined($module_data)) {
$module_result = 0; # Successful $module_result = 1; # Unsuccessful
} }
} }

View File

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

View File

@ -856,6 +856,24 @@ sub clean_blank {
return $input; return $input;
} }
################################################################################
# Erase blank spaces before and after the string
################################################################################
sub trim {
my $string = shift;
if (is_empty($string)){
return "";
}
$string =~ s/\r//g;
chomp($string);
$string =~ s/^\s+//g;
$string =~ s/\s+$//g;
return $string;
}
################################################################################ ################################################################################
# sub sqlWrap(texto) # sub sqlWrap(texto)
# Elimina comillas y caracteres problematicos y los sustituye por equivalentes # Elimina comillas y caracteres problematicos y los sustituye por equivalentes

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.750 %define version 7.0NG.750
%define release 201030 %define release 201124
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.750 %define version 7.0NG.750
%define release 201030 %define release 201124
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -9,7 +9,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.750" PI_VERSION="7.0NG.750"
PI_BUILD="201030" PI_BUILD="201124"
MODE=$1 MODE=$1
if [ $# -gt 1 ]; then if [ $# -gt 1 ]; then
@ -262,6 +262,7 @@ install () {
ln -s /usr/local/bin/pandora_server $DESTDIR$PREFIX/bin ln -s /usr/local/bin/pandora_server $DESTDIR$PREFIX/bin
ln -s /usr/local/bin/pandora_exec $DESTDIR$PREFIX/bin ln -s /usr/local/bin/pandora_exec $DESTDIR$PREFIX/bin
ln -s /usr/local/bin/tentacle_server $DESTDIR$PREFIX/bin ln -s /usr/local/bin/tentacle_server $DESTDIR$PREFIX/bin
ln -s /usr/local/bin/tentacle_client $DESTDIR$PREFIX/bin
fi fi
fi fi
fi fi
@ -495,7 +496,9 @@ uninstall () {
rm -f $DESTDIR$PANDORA_SERVER 2> /dev/null rm -f $DESTDIR$PANDORA_SERVER 2> /dev/null
rm -f $DESTDIR$PREFIX/bin/pandora_server 2> /dev/null rm -f $DESTDIR$PREFIX/bin/pandora_server 2> /dev/null
rm -f $DESTDIR$PREFIX/bin/pandora_exec 2> /dev/null rm -f $DESTDIR$PREFIX/bin/pandora_exec 2> /dev/null
rm -f $DESTDIR$PREFIX/bin/tentacle_server 2> /dev/null # Do not remove tentacle files if agent is still installed...
[ -e $DESTDIR$PREFIX/bin/pandora_agent ] || rm -f $DESTDIR$PREFIX/bin/tentacle_server 2> /dev/null
[ -e $DESTDIR$PREFIX/bin/pandora_agent ] || rm -f $DESTDIR$PREFIX/bin/tentacle_client 2> /dev/null
rm -Rf $DESTDIR$PANDORA_HOME rm -Rf $DESTDIR$PANDORA_HOME
rm -f $DESTDIR/etc/cron.hourly/pandora_db rm -f $DESTDIR/etc/cron.hourly/pandora_db
rm -f $DESTDIR/etc/logrotate.d/pandora_server rm -f $DESTDIR/etc/logrotate.d/pandora_server

View File

@ -35,7 +35,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB; use PandoraFMS::DB;
# version: define current version # version: define current version
my $version = "7.0NG.750 PS201030"; my $version = "7.0NG.750 PS201124";
# Pandora server configuration # Pandora server configuration
my %conf; my %conf;

View File

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

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