Merge remote-tracking branch 'origin/develop' into ent-6384-consola-visual-nuevo-elemento-interfaz-de-red

This commit is contained in:
fbsanchez 2020-11-03 16:35:25 +01:00
commit b585a4e372
50 changed files with 827 additions and 382 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{201029}
{201103}
ViewReadme
{Yes}

View File

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

View File

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

View File

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

View File

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

View File

@ -92,7 +92,11 @@ function output_xml_report($id)
$group = db_get_value('nombre', 'tgrupo', 'id_grupo', $report['id_group']);
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) {
echo "<item>\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(
$result,
sprintf(__("Success add '%s' item in report '%s'."), $values['type'], $name),
sprintf(__("Error create '%s' item in report '%s'."), $values['type'], $name)
sprintf(
__("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'];
$exist = true;
$loops = 30;
// Loops to exit or tries
// Loops to exit or tries.
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) {
$loops--;
@ -74,7 +85,7 @@ function process_upload_xml_report($xml, $group_filter=0)
);
break;
} else if ($loops != 30) {
ui_print_error_message(
ui_print_warning_message(
sprintf(
__("Warning create '%s' report, the name exist, the report have a name %s."),
$reportElement->name,
@ -89,13 +100,22 @@ function process_upload_xml_report($xml, $group_filter=0)
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->group) === true
&& empty($reportElement->group) === false
) {
$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;
}
@ -108,9 +128,19 @@ function process_upload_xml_report($xml, $group_filter=0)
);
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 {
db_pandora_audit('Report management', 'Fail to create report', false, false);
db_pandora_audit(
'Report management',
'Fail to create report',
false,
false
);
break;
}
@ -119,45 +149,52 @@ function process_upload_xml_report($xml, $group_filter=0)
$values = [];
$values['id_report'] = $id_report;
if (isset($item['description'])) {
if (isset($item['description']) === true) {
$values['description'] = io_safe_input($item['description']);
}
if (isset($item['period'])) {
if (isset($item['period']) === true) {
$values['period'] = io_safe_input($item['period']);
}
if (isset($item['type'])) {
if (isset($item['type']) === true) {
$values['type'] = io_safe_input($item['type']);
}
$agents_item = [];
if (isset($item['agent'])) {
if (isset($item['agent']) === true) {
$agents = agents_get_agents(
['id_grupo' => $group_filter],
[
'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']);
foreach ($agents as $agent) {
if ($regular_expresion) {
if ((bool) preg_match('/'.$agent_clean.'/', io_safe_output($agent['nombre']))) {
$agents_item[$agent['id_agente']]['name'] = $agent['nombre'];
if ((bool) preg_match('/'.$agent_clean.'/', io_safe_output($agent['alias']))) {
$agents_item[$agent['id_agente']]['name'] = $agent['alias'];
}
} else {
if ($agent_clean == io_safe_output($agent['nombre'])) {
$agents_item[$agent['id_agente']]['name'] = $agent['nombre'];
if ($agent_clean == io_safe_output($agent['alias'])) {
$agents_item[$agent['id_agente']]['name'] = $agent['alias'];
}
}
}
}
if (isset($item['module'])) {
if (isset($item['module']) === true) {
$module_clean = str_replace(['[', ']'], '', $item['module']);
$regular_expresion = ($module_clean != $item['module']);

View File

@ -130,6 +130,15 @@ if ($update || $create) {
$id_agent = (int) get_parameter('id_agent');
$text_module = get_parameter('text_module', '');
$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', '');
$event_view_hr = get_parameter('event_view_hr', '');
$id_user_ack = get_parameter('id_user_ack', '');

View File

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

View File

@ -1387,14 +1387,32 @@ $(document).ready (function () {
});
});
$('#submit-crtbutton').click(function (e) {
function checkProfiles(e) {
e.preventDefault();
var rows = $("#table_profiles tr").length;
if ((is_metaconsole === '1' && rows <= 3) || (is_metaconsole === '' && rows <= 2)) {
alert('<?php echo __('please add a profile'); ?>');
if ($('input[name="is_admin"]:checked').val() == 1) {
// Admin does not require profiles.
$('#user_profile_form').submit();
} 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

@ -114,7 +114,9 @@ if ($get_comments) {
sprintf(
' HAVING max_id_evento = %d',
$event['id_evento']
)
),
// True for show comments of validated events.
true
);
if ($events !== false) {
$event = $events[0];
@ -331,17 +333,52 @@ if ($get_filter_values) {
if ($event_filter === false) {
$event_filter = [
'status' => EVENT_NO_VALIDATED,
'event_view_hr' => $config['event_view_hr'],
'group_rep' => 1,
'tag_with' => [],
'tag_without' => [],
'history' => false,
'status' => EVENT_NO_VALIDATED,
'event_view_hr' => $config['event_view_hr'],
'group_rep' => 1,
'tag_with' => [],
'tag_without' => [],
'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['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(
io_safe_output($event_filter['tag_with'])
);
@ -353,7 +390,7 @@ if ($get_filter_values) {
}
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();
$user_groups_array = users_get_groups_for_select(
$config['id_user'],
@ -433,10 +470,12 @@ function load_form_filter() {
},
function (data) {
jQuery.each (data, function (i, val) {
console.log(val);
if (i == 'id_name')
$("#hidden-id_name").val(val);
if (i == 'id_group')
$("#id_group").val(val);
if (i == 'id_group'){
$('#id_group').val(val);
}
if (i == 'event_type')
$("#event_type").val(val);
if (i == 'severity') {
@ -446,9 +485,9 @@ function load_form_filter() {
if (i == 'status')
$("#status").val(val);
if (i == 'search')
$("#text-search").val(val);
$('#text-search').val(val);
if (i == 'text_agent')
$("#text_id_agent").val(val);
$('input[name=text_agent]').val(val);
if (i == 'id_agent')
$('input:hidden[name=id_agent]').val(val);
if (i == 'id_agent_module')
@ -477,6 +516,15 @@ function load_form_filter() {
$("#text-user_comment").val(val);
if (i == 'id_source_event')
$("#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();
// Update the info with the loaded filter
@ -1145,12 +1193,37 @@ if ($change_status) {
$event_ids = get_parameter('event_ids');
$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) {
echo 'status_ok';
if ($return !== false) {
echo json_encode(
[
'status' => 'status_ok',
'user' => db_get_value(
'fullname',
'tusuario',
'id_user',
$config['id_user']
),
]
);
} else {
echo 'status_error';
echo json_encode(
[
'status' => 'status_error',
'user' => db_get_value(
'fullname',
'tusuario',
'id_user',
$config['id_user']
),
]
);
}
return;

View File

@ -1,4 +1,5 @@
<?php
/**
* Agent Wizard for SNMP and WMI
*
@ -273,7 +274,7 @@ class AgentWizard extends HTML
// Check access.
check_login();
if (! check_acl($config['id_user'], 0, 'AR')) {
if (!check_acl($config['id_user'], 0, 'AR')) {
db_pandora_audit(
'ACL Violation',
'Trying to access event viewer'
@ -293,6 +294,29 @@ class AgentWizard extends HTML
$this->idAgent = get_parameter('id_agente', '');
$this->idPolicy = get_parameter('id', '');
$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');
if ($this->server !== 0) {
$this->serverType = (int) db_get_value(
@ -563,6 +587,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[] = [
'label' => __('Target IP'),
'id' => 'txt-targetIp',
@ -573,6 +609,7 @@ class AgentWizard extends HTML
'class' => '',
'value' => $this->targetIp,
'return' => true,
'list' => 'address_list',
],
];
@ -865,7 +902,6 @@ class AgentWizard extends HTML
],
true
);
}
@ -992,10 +1028,51 @@ class AgentWizard extends HTML
}
if ($this->wizardSection === 'snmp_interfaces_explorer') {
// First, try x64 interfaces.
$this->interfacesx64 = true;
// Check if thereis x64 counters.
$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.
$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 {
// Get the device PEN.
$oidExplore = '.1.3.6.1.2.1.1.2.0';
@ -1310,7 +1387,7 @@ class AgentWizard extends HTML
*
* @return array
*/
public function candidateModuleToCreate(array $data):array
public function candidateModuleToCreate(array $data): array
{
$modulesActivated = [];
$generalInterface = false;
@ -1560,8 +1637,8 @@ class AgentWizard extends HTML
if ($this->securityLevelV3 === 'authNoPriv'
|| $this->securityLevelV3 === 'authPriv'
) {
$values['plugin_parameter'] = $this->authMethodV3;
$values['plugin_pass'] = $this->authPassV3;
$values['plugin_parameter'] = $this->authMethodV3;
$values['plugin_pass'] = $this->authPassV3;
if ($this->securityLevelV3 === 'authPriv') {
$values['custom_string_1'] = $this->privacyMethodV3;
$values['custom_string_2'] = $this->privacyPassV3;
@ -2261,7 +2338,7 @@ class AgentWizard extends HTML
private function replacementMacrosPlugin(
string $text,
array $macros
):string {
): string {
// Only agents.
if (empty($this->idPolicy) === true) {
// Common.
@ -2308,7 +2385,7 @@ class AgentWizard extends HTML
?string $value,
?string $unit='',
?int $moduleType=0
):string {
): string {
if ($moduleType !== MODULE_TYPE_REMOTE_SNMP_INC
&& $moduleType !== MODULE_TYPE_GENERIC_DATA_INC
&& $moduleType !== MODULE_TYPE_REMOTE_TCP_INC
@ -2562,7 +2639,7 @@ class AgentWizard extends HTML
// Unpack the extra fields
// and include with key field in a field set.
$macros = json_decode($module['macros'], true);
$fieldSet = [ '0' => $module['query_key_field'] ];
$fieldSet = ['0' => $module['query_key_field']];
foreach ($macros as $fieldKey => $fieldMacro) {
if (preg_match('/extra_field_/', $fieldKey) !== 0) {
$tmpKey = explode('_', $fieldKey);
@ -3100,7 +3177,6 @@ class AgentWizard extends HTML
// Add Create Modules form.
$this->createModulesForm();
}
}
@ -3209,7 +3285,6 @@ class AgentWizard extends HTML
}
return false;
}
@ -3306,7 +3381,7 @@ class AgentWizard extends HTML
*
* @return array Inputs for common data.
*/
private function getCommonDataInputs():array
private function getCommonDataInputs(): array
{
$inputs[] = [
'id' => 'create-modules-action',
@ -4116,13 +4191,13 @@ class AgentWizard extends HTML
}
/**
* This function return the definition of modules for SNMP Interfaces
*
* @param array $data Data.
*
* @return array Return modules for defect.
*/
/**
* This function return the definition of modules for SNMP Interfaces
*
* @param array $data Data.
*
* @return array Return modules for defect.
*/
private function getInterfacesModules(array $data=[])
{
$moduleDescription = '';
@ -4207,6 +4282,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.
$moduleName = $name.'ifAdminStatus';
$definition['ifAdminStatus'] = [
@ -4333,19 +4436,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;
}
@ -4815,7 +4905,7 @@ class AgentWizard extends HTML
try {
exec($execution, $output);
} catch (Exception $ex) {
$output = [ '0' => 'ERROR: Failed execution: '.(string) $ex];
$output = ['0' => 'ERROR: Failed execution: '.(string) $ex];
}
return $output;
@ -4913,7 +5003,7 @@ class AgentWizard extends HTML
// Meta.
var meta = "<?php echo is_metaconsole(); ?>";
var hack_meta = '';
if(meta){
if (meta) {
hack_meta = '../../';
}
@ -4921,15 +5011,15 @@ class AgentWizard extends HTML
showV3Form();
// Filter search interfaces snmp.
$('#text-filter-search').keyup(function () {
$('#text-filter-search').keyup(function() {
var string = $('#text-filter-search').val();
var regex = new RegExp(string);
var interfaces = $('.interfaces_search');
interfaces.each(function(){
if(string == ''){
interfaces.each(function() {
if (string == '') {
$(this).removeClass('hidden');
} else {
if(this.id.match(regex)) {
if (this.id.match(regex)) {
$(this).removeClass('hidden');
} else {
$(this).addClass('hidden');
@ -4939,12 +5029,12 @@ class AgentWizard extends HTML
});
// Loading.
$('#submit-sub-protocol').click(function () {
$('#submit-sub-protocol').click(function() {
$('.wizard-result').remove();
$('#form-create-modules').remove();
$('.textodialogo').remove();
$('.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 +5052,17 @@ class AgentWizard extends HTML
function showSecurityLevelForm() {
var selector = $('#securityLevelV3').val();
if(selector === 'authNoPriv' || selector === 'authPriv'){
if (selector === 'authNoPriv' || selector === 'authPriv') {
$('#txt-authMethodV3').removeClass('invisible');
$('#txt-authPassV3').removeClass('invisible');
if(selector === 'authPriv'){
if (selector === 'authPriv') {
$('#txt-privacyMethodV3').removeClass('invisible');
$('#txt-privacyPassV3').removeClass('invisible');
} else {
$('#txt-privacyMethodV3').addClass('invisible');
$('#txt-privacyPassV3').addClass('invisible');
}
} else {
} else {
$('#txt-authMethodV3').addClass('invisible');
$('#txt-authPassV3').addClass('invisible');
$('#txt-privacyMethodV3').addClass('invisible');
@ -4986,45 +5076,42 @@ class AgentWizard extends HTML
var text = "";
var failed = 0;
try {
data = JSON.parse(data);
text = data["result"];
data = JSON.parse(data);
text = data["result"];
} catch (err) {
title = "<?php echo __('Failed'); ?>";
text = err.message;
failed = 1;
title = "<?php echo __('Failed'); ?>";
text = err.message;
failed = 1;
}
if (!failed && data["error"] != undefined) {
title = "<?php echo __('Failed'); ?>";
text = data["error"];
failed = 1;
title = "<?php echo __('Failed'); ?>";
text = data["error"];
failed = 1;
}
if (data["report"] != undefined) {
data["report"].forEach(function(item) {
text += "<br>" + item;
});
data["report"].forEach(function(item) {
text += "<br>" + item;
});
}
$("#msg").empty();
$("#msg").html(text);
$("#msg").dialog({
width: 450,
position: {
my: "center",
at: "center",
of: window,
collision: "fit"
},
title: title,
buttons: [
{
class:
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
width: 450,
position: {
my: "center",
at: "center",
of: window,
collision: "fit"
},
title: title,
buttons: [{
class: "ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
text: "OK",
click: function(e) {
$("#msg").close();
}
}
]
}]
});
}
@ -5044,8 +5131,8 @@ class AgentWizard extends HTML
var markedCount = 0;
if (type == 'block') {
selectedBlock
.parent()
.removeClass("alpha50");
.parent()
.removeClass("alpha50");
if (selectedBlock.prop("checked")) {
// Set to active the values of fields.
$("[id*=hidden-module-active-"+blockNumber+"]")
@ -5054,9 +5141,9 @@ class AgentWizard extends HTML
});
// Set checked.
$("[id*=checkbox-sel_module_" + blockNumber + "]")
.each(function(){
$(this).prop("checked", true);
});
.each(function() {
$(this).prop("checked", true);
});
imageInfoModules.removeClass('hidden');
} else {
// Set to inactive the values of fields.
@ -5066,15 +5153,15 @@ class AgentWizard extends HTML
});
// Set unchecked.
$("[id*=checkbox-sel_module_" + blockNumber + "]")
.each(function(){
$(this).prop("checked", false);
});
.each(function() {
$(this).prop("checked", false);
});
imageInfoModules.addClass('hidden');
}
} else if (type == 'module') {
// Getting the element.
var thisModuleHidden = document.getElementById("hidden-module-active-"+switchName[2]+"_"+moduleNumber);
var thisModule = $("#checkbox-sel_module_"+blockNumber+"_"+moduleNumber);
var thisModuleHidden = document.getElementById("hidden-module-active-" + switchName[2] + "_" + moduleNumber);
var thisModule = $("#checkbox-sel_module_" + blockNumber + "_" + moduleNumber);
// Setting the individual field
if (thisModule.prop('checked')) {
thisModuleHidden.value = '1';
@ -5084,12 +5171,12 @@ class AgentWizard extends HTML
// Get the list of selected modules.
$("[id*=checkbox-sel_module_" + blockNumber + "]")
.each(function() {
if ($(this).prop("checked")) {
markedCount++;
}
totalCount++;
});
.each(function() {
if ($(this).prop("checked")) {
markedCount++;
}
totalCount++;
});
if (totalCount == markedCount) {
selectedBlock.prop("checked", true);
@ -5118,7 +5205,7 @@ class AgentWizard extends HTML
*/
function switchBlockControlInterfaces(e) {
var string = $('#text-filter-search').val();
if(string == ''){
if (string == '') {
if (e.checked) {
$(".interfaz_select").prop("checked", true);
} else {
@ -5127,15 +5214,15 @@ class AgentWizard extends HTML
} else {
var regex = new RegExp(string);
var interfaces = $('.interfaces_search');
interfaces.each(function(){
if(this.id.match(regex)) {
interfaces.each(function() {
if (this.id.match(regex)) {
$(this).removeClass('hidden');
if (e.checked) {
$("input[name='interfaz_select_"+this.id+"']")
$("input[name='interfaz_select_" + this.id + "']")
.prop("checked", true);
} else {
$("input[name='interfaz_select_"+this.id+"']")
.prop("checked", false);
$("input[name='interfaz_select_" + this.id + "']")
.prop("checked", false);
}
}
});
@ -5143,13 +5230,13 @@ class AgentWizard extends HTML
}
/**
* Show the modal with modules for create.
*/
* Show the modal with modules for create.
*/
function processListModules() {
confirmDialog({
title: "<?php echo __('Modules about to be created'); ?>",
message: function() {
var id = "div-"+uniqId();
var id = "div-" + uniqId();
var loading = "<?php echo __('Loading'); ?>" + "...";
$.ajax({
method: "post",
@ -5165,22 +5252,22 @@ class AgentWizard extends HTML
},
datatype: "html",
success: function(data) {
$('#'+id).empty().append(data);
$('#' + id).empty().append(data);
},
error: function(e) {
showMsg(e);
}
});
return "<div id ='"+id+"'>"+loading+"</div>";
return "<div id ='" + id + "'>" + loading + "</div>";
},
ok: "<?php echo __('OK'); ?>",
cancel: "<?php echo __('Cancel'); ?>",
onAccept: function() {
$('#reviewed-modules').submit();
$('#reviewed-modules').submit();
},
size:750,
maxHeight:500
size: 750,
maxHeight: 500
});
}

View File

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

View File

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

View File

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

View File

@ -673,15 +673,16 @@ function events_update_status($id_evento, $status, $filter=null, $history=false)
/**
* Retrieve all events filtered.
*
* @param array $fields Fields to retrieve.
* @param array $filter Filters to be applied.
* @param integer $offset Offset (pagination).
* @param integer $limit Limit (pagination).
* @param string $order Sort order.
* @param string $sort_field Sort field.
* @param boolean $history Apply on historical table.
* @param boolean $return_sql Return SQL (true) or execute it (false).
* @param string $having Having filter.
* @param array $fields Fields to retrieve.
* @param array $filter Filters to be applied.
* @param integer $offset Offset (pagination).
* @param integer $limit Limit (pagination).
* @param string $order Sort order.
* @param string $sort_field Sort field.
* @param boolean $history Apply on historical table.
* @param boolean $return_sql Return SQL (true) or execute it (false).
* @param string $having Having filter.
* @param boolean $validatedEvents If true, evaluate validated events.
*
* @return array Events.
* @throws Exception On error.
@ -695,7 +696,8 @@ function events_get_all(
$sort_field=null,
$history=false,
$return_sql=false,
$having=''
$having='',
$validatedEvents=false
) {
global $config;
@ -912,10 +914,20 @@ function events_get_all(
break;
case EVENT_NO_VALIDATED:
// Show comments in validated events.
$validatedState = '';
if ($validatedEvents === true) {
$validatedState = sprintf(
'OR estado = %d',
EVENT_VALIDATE
);
}
$sql_filters[] = sprintf(
' AND (estado = %d OR estado = %d)',
' AND (estado = %d OR estado = %d %s)',
EVENT_NEW,
EVENT_PROCESS
EVENT_PROCESS,
$validatedState
);
break;
}
@ -1540,26 +1552,18 @@ function events_get_event($id, $fields=false, $meta=false, $history=false)
/**
* Retrieve all events ungrouped.
*
* @param string $sql_post Sql_post.
* @param integer $offset Offset.
* @param integer $pagination Pagination.
* @param boolean $meta Meta.
* @param boolean $history History.
* @param boolean $total Total.
* @param boolean $history_db History_db.
* @param string $order Order.
* @param string $sql_post Sql_post.
* @param boolean $meta Meta.
* @param boolean $history History.
* @param boolean $returnSql Only Query.
*
* @return mixed Array of events or false.
*/
function events_get_events_no_grouped(
$sql_post,
$offset=0,
$pagination=1,
$meta=false,
$history=false,
$total=false,
$history_db=false,
$order='ASC'
$returnSql=false
) {
global $config;
@ -1569,7 +1573,11 @@ function events_get_events_no_grouped(
$sql .= events_get_secondary_groups_left_join($table);
$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;
}
@ -1622,29 +1630,59 @@ function events_get_events_grouped(
$event_lj = events_get_secondary_groups_left_join($table);
if ($total) {
$sql = "SELECT COUNT(*) FROM (SELECT id_evento
FROM $table te $event_lj
WHERE 1=1 ".$sql_post.'
FROM $table te $event_lj ".$sql_post.'
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra.') AS t';
} else {
$sql = "SELECT *, MAX(id_evento) AS id_evento,
GROUP_CONCAT(DISTINCT user_comment SEPARATOR '<br>') AS user_comment,
GROUP_CONCAT(DISTINCT id_evento SEPARATOR ',') AS similar_ids,
COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep,
MIN(utimestamp) AS timestamp_rep_min,
(SELECT owner_user FROM $table WHERE id_evento = MAX(te.id_evento)) owner_user,
(SELECT id_usuario FROM $table WHERE id_evento = MAX(te.id_evento)) id_usuario,
(SELECT id_agente FROM $table WHERE id_evento = MAX(te.id_evento)) id_agente,
(SELECT criticity FROM $table WHERE id_evento = MAX(te.id_evento)) AS criticity,
(SELECT ack_utimestamp FROM $table 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 $table te $event_lj
WHERE 1=1 ".$sql_post.'
GROUP BY estado, evento, id_agente, id_agentmodule'.$groupby_extra;
$sql .= ' '.events_get_sql_order($sort_field, $order, 2);
$sql .= ' LIMIT '.$offset.','.$pagination;
$sql = sprintf(
'SELECT *,
MAX(id_evento) AS id_evento,
GROUP_CONCAT(
DISTINCT user_comment SEPARATOR "<br>"
) AS user_comment,
GROUP_CONCAT(
DISTINCT id_evento SEPARATOR ","
) AS similar_ids,
COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep,
MIN(utimestamp) AS timestamp_rep_min,
(SELECT owner_user
FROM %s
WHERE id_evento = MAX(te.id_evento)) AS owner_user,
(SELECT id_usuario
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);
if ($total) {
@ -2959,7 +2997,8 @@ function events_get_agent(
$type = [];
foreach ($filter_event_type as $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".
if ($event_type == 'warning' || $event_type == 'critical' || $event_type == 'normal') {
$type[] = " event_type LIKE '%".$event_type."%' ";
@ -2979,10 +3018,10 @@ function events_get_agent(
}
if ($events_group) {
$sql_where .= sprintf(
$secondary_groups = sprintf(
' INNER JOIN tgrupo tg
ON (te.id_grupo = tg.id_grupo AND tg.id_grupo = %s)
OR (tg.id_grupo = tasg.id_group AND tasg.id_group = %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 IN (%s))
WHERE utimestamp > %d
AND utimestamp <= %d ',
join(',', $id_group),
@ -2990,22 +3029,27 @@ function events_get_agent(
$datelimit,
$date
);
} else if ($events_module) {
$sql_where .= sprintf(
' AND id_agentmodule = %d AND utimestamp > %d
AND utimestamp <= %d ',
$id_agent_module,
$datelimit,
$date
);
$sql_where = $secondary_groups.' '.$sql_where;
} else {
$sql_where .= sprintf(
' AND id_agente = %d AND utimestamp > %d
AND utimestamp <= %d ',
$id_agent,
$datelimit,
$date
);
$sql_where = ' WHERE 1=1 '.$sql_where;
if ($events_module) {
$sql_where .= sprintf(
' AND id_agentmodule = %d AND utimestamp > %d
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) {
@ -3025,11 +3069,7 @@ function events_get_agent(
} else {
return events_get_events_no_grouped(
$sql_where,
0,
1000,
(is_metaconsole() && $id_server) ? true : false,
false,
false,
$history
);
}
@ -3793,7 +3833,7 @@ function events_get_response_target(
if (strpos($target, '_group_name_') !== false) {
$target = str_replace(
'_group_name_',
groups_get_name($event['id_grupo'], true),
io_safe_output(groups_get_name($event['id_grupo'], true)),
$target
);
}
@ -3809,7 +3849,7 @@ function events_get_response_target(
if (strpos($target, '_event_date_') !== false) {
$target = str_replace(
'_event_date_',
date($config['date_format'], $event['utimestamp']),
io_safe_output(date($config['date_format'], $event['utimestamp'])),
$target
);
}
@ -3833,7 +3873,7 @@ function events_get_response_target(
if (strpos($target, '_alert_id_') !== false) {
$target = str_replace(
'_alert_id_',
empty($event['is_alert_am']) ? __('N/A') : $event['is_alert_am'],
empty($event['id_alert_am']) ? __('N/A') : $event['id_alert_am'],
$target
);
}
@ -3915,6 +3955,15 @@ function events_get_response_target(
$target = str_replace('_current_user_', $config['id_user'], $target);
}
// This will replace the macro with the command timeout value.
if (strpos($target, '_command_timeout_') !== false) {
$target = str_replace(
'_command_timeout_',
$event_response['command_timeout'],
$target
);
}
return $target;
}
@ -4652,16 +4701,24 @@ function events_page_general($event)
$table_general->data[] = $data;
// If event is validated, show who and when acknowleded it.
$table_general->cellclass[8][1] = 'general_acknowleded';
$data = [];
$data[0] = __('Acknowledged by');
if ($event['estado'] == 1) {
$user_ack = db_get_value('fullname', 'tusuario', 'id_user', $event['id_usuario']);
if (empty($user_ack)) {
$user_ack = db_get_value(
'fullname',
'tusuario',
'id_user',
$event['id_usuario']
);
if (empty($user_ack) === true) {
$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.')';
} else {
$data[1] = '<i>'.__('N/A').'</i>';
@ -6995,7 +7052,7 @@ function events_get_field_value_by_event_id(
if (strpos($value, '_group_name_') !== false) {
$value = str_replace(
'_group_name_',
groups_get_name($event['id_grupo'], true),
io_safe_output(groups_get_name($event['id_grupo'], true)),
$value
);
}
@ -7011,7 +7068,9 @@ function events_get_field_value_by_event_id(
if (strpos($value, '_event_date_') !== false) {
$value = str_replace(
'_event_date_',
date($config['date_format'], $event['utimestamp']),
io_safe_output(
date($config['date_format'], $event['utimestamp'])
),
$value
);
}

View File

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

View File

@ -2032,6 +2032,7 @@ function html_print_input_text_extended(
'required',
'autocomplete',
'form',
'list',
];
$output = '<input '.($password ? 'type="password" autocomplete="'.$autocomplete.'" ' : 'type="text" ');
@ -2257,7 +2258,8 @@ function html_print_input_text(
$onKeyDown='',
$formTo='',
$onKeyUp='',
$disabled=false
$disabled=false,
$list=''
) {
if ($maxlength == 0) {
$maxlength = 255;
@ -2302,6 +2304,10 @@ function html_print_input_text(
$attr['form'] = $formTo;
}
if ($list != '') {
$attr['list'] = $list;
}
return html_print_input_text_extended(
$name,
$value,
@ -4234,7 +4240,9 @@ function html_print_input($data, $wrapper='div', $input_only=false)
((isset($data['autofocus']) === true) ? $data['autofocus'] : false),
((isset($data['onKeyDown']) === true) ? $data['onKeyDown'] : ''),
((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;
@ -4731,6 +4739,14 @@ function html_print_input($data, $wrapper='div', $input_only=false)
$output .= html_print_select_multiple_modules_filtered($data);
break;
case 'datalist':
$output .= html_print_datalist(
$data['name'],
$data['value'],
((isset($data['return']) === true) ? $data['return'] : true)
);
break;
default:
// Ignore.
break;
@ -4911,3 +4927,32 @@ function html_print_tabs(array $tabs)
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

@ -2957,7 +2957,7 @@ function reporting_group_report($report, $content)
if (empty($id_group)) {
$events = [];
} 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(
$sql_where,
0,

View File

@ -802,7 +802,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 .= graph_graphic_agentevents(
$id_agente,
'385px;',
'340px;margin:0',
45,
SECONDS_1DAY,
'',

View File

@ -346,13 +346,7 @@ function menu_graph(
$threshold = true;
}
$return .= "<div id='general_menu_$graph_id' class='menu_graph' style='
width: 20px;
height: 150px;
left:100%;
position: absolute;
top: 0px;
background-color: tranparent;'>";
$return .= "<div id='general_menu_$graph_id' class='menu_graph'>";
$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>";
if ($threshold) {
@ -745,13 +739,12 @@ function flot_slicesbar_graph(
// Set some containers to legend, graph, timestamp tooltip, etc.
$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
// passing data from php to javascript.

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.
function event_change_status(event_ids) {
var new_status = $("#estado").val();
var event_id = $("#hidden-id_event").val();
var meta = $("#hidden-meta").val();
var history = $("#hidden-history").val();
@ -472,7 +471,7 @@ function event_change_status(event_ids) {
type: "POST",
url: $("#hidden-ajax_file").val(),
async: true,
dataType: "html",
dataType: "json",
success: function(data) {
$("#button-status_button").removeAttr("disabled");
$("#response_loading").hide();
@ -485,11 +484,20 @@ function event_change_status(event_ids) {
$("#notification_status_error").hide();
}
if (data == "status_ok") {
if (data.status == "status_ok") {
if (typeof dt_events !== "undefined") {
dt_events.draw(false);
}
$("#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 {
$("#notification_status_error").show();
}
@ -942,7 +950,6 @@ function execute_event_response(event_list_btn) {
});
break;
case "delete_selected":
console.log($(this));
$(".chk_val:checked").each(function() {
execute_delete_event_reponse(
dt_events,

View File

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

View File

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

View File

@ -750,7 +750,17 @@ if (! isset($config['id_user'])) {
$pass2 = get_parameter_post('pass2');
$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 = '';
$process_error_message = '';
@ -787,21 +797,14 @@ if (! isset($config['id_user'])) {
include_once 'general/login_page.php';
} else {
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 = '';
if ($db_reset_pass_entry) {
if (($db_reset_pass_entry + SECONDS_2HOUR) < time()) {
register_pass_change_try($id_user, 0);
$process_error_message = __('Too much time since password change request');
delete_reset_pass_entry($id_user);
include_once 'general/login_page.php';
} else {
delete_reset_pass_entry($id_user);
include_once 'enterprise/include/process_reset_pass.php';
}
} else {

View File

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

View File

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

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_agents.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');
check_login();

View File

@ -1,6 +1,5 @@
<?php
// This file is an example on how things must NEVER be done.
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
@ -41,7 +40,7 @@ if (! defined('METACONSOLE')) {
$buttons['fields'] = [
'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,
];
@ -79,22 +78,27 @@ if (! defined('METACONSOLE')) {
ui_meta_print_header(__('Monitor view'));
}
$ag_freestring = (string) get_parameter('ag_freestring');
$moduletype = (string) get_parameter('moduletype');
$datatype = (string) get_parameter('datatype');
$ag_modulename = (string) get_parameter('ag_modulename');
$refr = (int) get_parameter('refr', 0);
$offset = (int) get_parameter('offset', 0);
$status = (int) get_parameter('status', 4);
$modulegroup = (int) get_parameter('modulegroup', -1);
$tag_filter = (int) get_parameter('tag_filter', 0);
$min_hours_status = (string) get_parameter('min_hours_status', '');
// 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', []);
$recursion = get_parameter_switch('recursion', false);
if ($recursion === false) {
$recursion = get_parameter('recursion', false);
}
$ag_freestring = (string) get_parameter('ag_freestring');
$moduletype = (string) get_parameter('moduletype');
$datatype = (string) get_parameter('datatype');
$ag_modulename = (string) get_parameter('ag_modulename');
$refr = (int) get_parameter('refr', 0);
$offset = (int) get_parameter('offset', 0);
$status = (int) get_parameter('status', 4);
$modulegroup = (int) get_parameter('modulegroup', -1);
$tag_filter = (int) get_parameter('tag_filter', 0);
$min_hours_status = (string) get_parameter('min_hours_status', '');
// 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);
$autosearch = false;
@ -161,11 +165,22 @@ if (is_numeric($ag_group)) {
// Agent group selector
if (!is_metaconsole()) {
if ($ag_group > 0 && check_acl($config['id_user'], $ag_group, 'AR')) {
$sql_conditions_group = sprintf(
' AND (tagente.id_grupo = %d OR tasg.id_group = %d)',
$ag_group,
$ag_group
);
if ($recursion) {
$all_groups = groups_get_children_ids($ag_group, true);
// 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 != '') {
// User has explicit permission on group 1 ?
$sql_conditions_group = ' AND (
@ -175,11 +190,22 @@ if (!is_metaconsole()) {
}
} else {
if (((int) $ag_group !== 0) && (check_acl($config['id_user'], $id_ag_group, 'AR'))) {
$sql_conditions_group = sprintf(
' AND (tagente.id_grupo IN (%s) OR tasg.id_group IN (%s))',
$ag_group,
$ag_group
);
if ($recursion) {
$all_groups = groups_get_children_ids($ag_group, true);
// 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 != '') {
// User has explicit permission on group 1 ?
$sql_conditions_group = ' AND (
@ -355,7 +381,8 @@ $table->style[3] = 'font-weight: bold;';
$table->style[4] = 'font-weight: bold;';
$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'],
'AR',
true,
@ -375,6 +402,18 @@ $table->data[0][1] = html_print_select_groups(
'id_grupo',
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[AGENT_MODULE_STATUS_NORMAL] = __('Normal');
@ -701,8 +740,7 @@ foreach ($custom_fields as $custom_field) {
$table_custom_fields->data[] = $row;
}
$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.'">';
$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.'">';
if (is_metaconsole()) {
$table->colspan[4][0] = 7;
$table->cellstyle[4][0] = 'padding: 10px;';
@ -970,7 +1008,7 @@ switch ($sortField) {
}
$sql = 'SELECT
(SELECT GROUP_CONCAT(ttag.name SEPARATOR \',\')
(SELECT GROUP_CONCAT(ttag.name SEPARATOR \',\')
FROM ttag
WHERE ttag.id_tag IN (
SELECT ttag_module.id_tag
@ -1014,6 +1052,7 @@ $sql = 'SELECT
ORDER BY '.$order['field'].' '.$order['order'].'
LIMIT '.$offset.','.$limit_sql;
// We do not show the modules until the user searches with the filter
if ($autosearch) {
if (! defined('METACONSOLE')) {
@ -1102,17 +1141,51 @@ if (($config['dbtype'] == 'oracle') && ($result !== false)) {
// 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_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_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_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_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_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&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_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_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_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_agent_name = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_type = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_module_name = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_server_type = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_interval = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_status = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_status = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_data = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$url_timestamp_up = 'index.php?sec=view&sec2=operation/agentes/status_monitor';
$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
if (!empty($result)) {
@ -1276,9 +1349,9 @@ if (!empty($result)) {
}
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 {
$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
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,
'agent_small',
@ -1309,7 +1382,7 @@ if (!empty($result)) {
$data[1] = $agent_alias;
}
} 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] .= '</a></strong>';
}
@ -1325,9 +1398,9 @@ if (!empty($result)) {
$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 {
$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) {
@ -1750,24 +1823,13 @@ if (!empty($result)) {
// End Build List Result.
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');
ui_require_javascript_file('pandora_modules');
?>
<script type='text/javascript'>
$(document).ready (function () {
if ($('#ag_group').val() != 0) {
$('#tag_filter').css('display', 'none');
$('#tag_td').css('display', 'none');
}
});
<script type="text/javascript">
$('#moduletype').click(function() {
jQuery.get (
@ -1789,17 +1851,6 @@ $('#moduletype').click(function() {
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) {
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']);
if ($user_filter !== false && $from_event_graph != 1) {
$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'];
$id_agent = $filter['id_agent'];
$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'];
$event_view_hr = $filter['event_view_hr'];
$id_user_ack = $filter['id_user_ack'];
@ -893,13 +900,17 @@ if (is_metaconsole() !== true) {
*/
// Group.
if ($id_group_filter === null) {
$id_group_filter = 0;
}
$data = html_print_input(
[
'name' => 'id_group_filter',
'returnAllGroup' => true,
'privilege' => 'AR',
'type' => 'select_groups',
'selected' => (defined($id_group_filter) ? $id_group_filter : 0),
'selected' => $id_group_filter,
'nothing' => false,
'return' => true,
'size' => '80%',
@ -2019,6 +2030,9 @@ function process_datatables_item(item) {
/* Group name */
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'); ?>";
} else {
item.id_grupo = item.group_name;
@ -2343,9 +2357,8 @@ $(document).ready( function() {
url: '<?php echo ui_get_full_url('ajax.php'); ?>',
data: {
page: 'include/ajax/events',
load_filter_modal: 1,
current_filter: $('#latest_filter_id').val()
},
load_filter_modal: 1
},
success: function (data){
$('#load-modal-filter')
.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.
$sql_post = '';
$sql_post = ' WHERE 1=1 ';
$id_user = $config['id_user'];
@ -1214,7 +1214,7 @@ if ($group_rep == 0) {
$sql = 'SELECT COUNT(DISTINCT id_evento)
FROM $event_table te
$event_lj
WHERE 1=1 $sql_post';
$sql_post';
$total_events = (int) db_get_sql($sql);
} else if ($group_rep == 1) {
$total_events = events_get_events_grouped(
@ -1477,7 +1477,8 @@ $(document).ready( function() {
$("#text-id_extra").val(val);
if (i == 'user_comment')
$("#text-user_comment").val(val);
if (i == 'module_search')
$("#text-module_search").val(val);
if(i == 'id_source_event')
$("#text-id_source_event").val(val);
}

View File

@ -77,7 +77,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[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][3] = html_print_textarea('events_fired', 200, 20, '', 'readonly="readonly" style="max-height:100px; background: #ddd; resize:none;"', true);
@ -152,10 +152,26 @@ function changeGroup() {
}
function changeType() {
alert_fired = $("input[name=alert_fired]").attr('checked');
critical = $("input[name=critical]").attr('checked');
warning = $("input[name=warning]").attr('checked');
unknown = $("input[name=unknown]").attr('checked');
alert_fired = false;
critical = false;
warning = false;
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() {
@ -256,9 +272,6 @@ $(document).ready (function () {
setInterval("check_event()", (10 * 1000)); //10 seconds between ajax request
$("#table1").css("background-color", "#fff");
$("#table2").css("background-color", "#fff");
group_width = $("#group").width();
$("#id_agents").width(group_width + 9);
});
</script>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.750"
PI_BUILD="201029"
PI_BUILD="201103"
MODE=$1
if [ $# -gt 1 ]; then

View File

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

View File

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