diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index bb54c56b4c..8c24bcb56a 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.750-201029 +Version: 7.0NG.750-201103 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 7e6e85035c..664fc368ed 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -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 diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index d55e379f01..3d0a47fcda 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -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; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 698b2439d2..1e4ad58036 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -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} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 8d18a817fe..057b26df2a 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -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} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 81a292285e..e08e30678b 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.750" -PI_BUILD="201029" +PI_BUILD="201103" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index f6493723fd..6228d5b274 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{201029} +{201103} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index bac75d8cd5..d31a184151 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -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; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 070d4c6fbd..3bdb9fe63b 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -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 diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 304b66c7a6..395cdae6ad 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.750-201029 +Version: 7.0NG.750-201103 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index a7ca73a213..b45e60e545 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -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 diff --git a/pandora_console/extensions/resource_exportation.php b/pandora_console/extensions/resource_exportation.php index 3946ec053d..16cf674ab6 100755 --- a/pandora_console/extensions/resource_exportation.php +++ b/pandora_console/extensions/resource_exportation.php @@ -92,7 +92,11 @@ function output_xml_report($id) $group = db_get_value('nombre', 'tgrupo', 'id_grupo', $report['id_group']); echo '\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 "\n"; echo ''.io_safe_output($item['type'])."\n"; diff --git a/pandora_console/extensions/resource_registration.php b/pandora_console/extensions/resource_registration.php index dae61e3a78..80fed2cf6c 100755 --- a/pandora_console/extensions/resource_registration.php +++ b/pandora_console/extensions/resource_registration.php @@ -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']); diff --git a/pandora_console/godmode/events/event_edit_filter.php b/pandora_console/godmode/events/event_edit_filter.php index 56201e3a28..5783797112 100644 --- a/pandora_console/godmode/events/event_edit_filter.php +++ b/pandora_console/godmode/events/event_edit_filter.php @@ -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', ''); diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index 6857a2cd39..a46ee1811e 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -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' diff --git a/pandora_console/godmode/users/configure_user.php b/pandora_console/godmode/users/configure_user.php index 3e9a38dede..acf412b345 100644 --- a/pandora_console/godmode/users/configure_user.php +++ b/pandora_console/godmode/users/configure_user.php @@ -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(''); + 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: "", + message: "", + 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); }); }); diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index 230b55a476..4e796c2539 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -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; diff --git a/pandora_console/include/class/AgentWizard.class.php b/pandora_console/include/class/AgentWizard.class.php index 7f23e84894..a464d1af11 100644 --- a/pandora_console/include/class/AgentWizard.class.php +++ b/pandora_console/include/class/AgentWizard.class.php @@ -1,4 +1,5 @@ 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 = ""; 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('Loading...'); + .html('Loading...'); }); }); @@ -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 = ""; - text = err.message; - failed = 1; + title = ""; + text = err.message; + failed = 1; } if (!failed && data["error"] != undefined) { - title = ""; - text = data["error"]; - failed = 1; + title = ""; + text = data["error"]; + failed = 1; } if (data["report"] != undefined) { - data["report"].forEach(function(item) { - text += "" + item; - }); + data["report"].forEach(function(item) { + text += "" + 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: "", message: function() { - var id = "div-"+uniqId(); + var id = "div-" + uniqId(); var 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 ""+loading+""; + return "" + loading + ""; }, ok: "", cancel: "", onAccept: function() { - $('#reviewed-modules').submit(); + $('#reviewed-modules').submit(); }, - size:750, - maxHeight:500 + size: 750, + maxHeight: 500 }); } diff --git a/pandora_console/include/class/HTML.class.php b/pandora_console/include/class/HTML.class.php index 376afc4bfd..41ceabf5ab 100644 --- a/pandora_console/include/class/HTML.class.php +++ b/pandora_console/include/class/HTML.class.php @@ -547,6 +547,7 @@ class HTML } else { if ($input['arguments']['type'] != 'hidden' && $input['arguments']['type'] != 'hidden_extended' + && $input['arguments']['type'] != 'datalist' ) { if (!$direct) { $output .= ''; diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index e490b8d671..602e73e968 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -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. diff --git a/pandora_console/include/functions_alerts.php b/pandora_console/include/functions_alerts.php index 5f3731164d..74a024d866 100644 --- a/pandora_console/include/functions_alerts.php +++ b/pandora_console/include/functions_alerts.php @@ -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 diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 9178cf3c21..33c2309e30 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -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 '') 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 "" + ) 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] = ''.__('N/A').''; @@ -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 ); } diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index 4fd1439f8f..f40b75e3b2 100644 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -2541,13 +2541,9 @@ function graphic_agentaccess( } else { $options['generals']['pdf']['width'] = 350; $options['generals']['pdf']['height'] = 125; - if (!empty($data_array)) { - $imgbase64 = ''; - } else { - $imgbase64 .= vbar_graph($data_array, $options, 2); - } + $imgbase64 = ''; return $imgbase64; } diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php index c61d62d686..2c71835165 100644 --- a/pandora_console/include/functions_html.php +++ b/pandora_console/include/functions_html.php @@ -2032,6 +2032,7 @@ function html_print_input_text_extended( 'required', 'autocomplete', 'form', + 'list', ]; $output = ''; + foreach ($values as $key => $value) { + $result .= ''; + } + + $result .= ''; + + if ($return) { + return $result; + } else { + echo $result; + } +} diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 539bc46dc6..479adc67c8 100755 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -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, diff --git a/pandora_console/include/functions_treeview.php b/pandora_console/include/functions_treeview.php index 25e0f67020..67bed22be3 100755 --- a/pandora_console/include/functions_treeview.php +++ b/pandora_console/include/functions_treeview.php @@ -802,7 +802,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false) $events_graph = ''; $events_graph .= graph_graphic_agentevents( $id_agente, - '385px;', + '340px;margin:0', 45, SECONDS_1DAY, '', diff --git a/pandora_console/include/graphs/functions_flot.php b/pandora_console/include/graphs/functions_flot.php index dc4e556292..81c9cc79cf 100644 --- a/pandora_console/include/graphs/functions_flot.php +++ b/pandora_console/include/graphs/functions_flot.php @@ -346,13 +346,7 @@ function menu_graph( $threshold = true; } - $return .= ""; + $return .= ""; $return .= " "; 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 = ""; - } else { - $return = ""; - } - $return .= ""; + $style = 'width:'.$width.'%;'; + $style .= 'height:'.$height.'px;'; + $return = ""; + + $return .= ""; // Set a weird separator to serialize and unserialize // passing data from php to javascript. diff --git a/pandora_console/include/javascript/pandora_events.js b/pandora_console/include/javascript/pandora_events.js index 55c8ecb74a..c1b604b4e2 100644 --- a/pandora_console/include/javascript/pandora_events.js +++ b/pandora_console/include/javascript/pandora_events.js @@ -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, diff --git a/pandora_console/include/javascript/tree/TreeController.js b/pandora_console/include/javascript/tree/TreeController.js index 497e18c266..1aeb7ad799 100644 --- a/pandora_console/include/javascript/tree/TreeController.js +++ b/pandora_console/include/javascript/tree/TreeController.js @@ -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 = $(""); + 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" />' + "" + (controller.tree.length > 0 - ? controller.foundMessage + ": " + controller.tree.length + ? controller.foundMessage + ": " + messageLength : "") + "" ); - } - // Normal group - else { + } else { + // Normal group. $group.addClass("tree-group").hide(); } diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 5f0f9024c7..922ed8c79a 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -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*/ diff --git a/pandora_console/index.php b/pandora_console/index.php index af8671ded7..599e013c12 100755 --- a/pandora_console/index.php +++ b/pandora_console/index.php @@ -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 { diff --git a/pandora_console/install.php b/pandora_console/install.php index f706f1dff4..ab1a48c2a2 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -129,7 +129,7 @@ status) { case 0: diff --git a/pandora_console/operation/agentes/stat_win.php b/pandora_console/operation/agentes/stat_win.php index 1d26666b57..d5e22eb06b 100644 --- a/pandora_console/operation/agentes/stat_win.php +++ b/pandora_console/operation/agentes/stat_win.php @@ -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(); diff --git a/pandora_console/operation/agentes/status_monitor.php b/pandora_console/operation/agentes/status_monitor.php index a49db7b7f4..db1e052ab9 100644 --- a/pandora_console/operation/agentes/status_monitor.php +++ b/pandora_console/operation/agentes/status_monitor.php @@ -1,6 +1,5 @@ false, - 'text' => ''.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'', + 'text' => ''.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'', '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] = ''; +$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] .= ''; +$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] .= ''; $fields = []; $fields[AGENT_MODULE_STATUS_NORMAL] = __('Normal'); @@ -701,8 +740,7 @@ foreach ($custom_fields as $custom_field) { $table_custom_fields->data[] = $row; } - -$filters = ''; +$filters = ''; 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&sec2=operation/agentes/status_monitor&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.'&sort_field=agent_alias&sort='; -$url_type = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=type&sort='; -$url_module_name = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=module_name&sort='; -$url_server_type = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=moduletype&sort='; -$url_interval = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=interval&sort='; -$url_status = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=status&sort='; -$url_status = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=last_status_change&sort='; -$url_data = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=data&sort='; -$url_timestamp_up = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=timestamp&sort=up'; -$url_timestamp_down = 'index.php?sec=view&sec2=operation/agentes/status_monitor&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.'&sort_field=timestamp&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] = ''.html_print_image($img, true, ['title' => $title]).''; + $data[0] = ''.html_print_image($img, true, ['title' => $title]).''; } else { - $data[0] = ''.html_print_image($img, true, ['title' => $title]).''; + $data[0] = ''.html_print_image($img, true, ['title' => $title]).''; } } @@ -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 = ''; + $agent_link = ''; $agent_alias = ui_print_truncate_text( $agent_alias, 'agent_small', @@ -1309,7 +1382,7 @@ if (!empty($result)) { $data[1] = $agent_alias; } } else { - $data[1] = ''; + $data[1] = ''; $data[1] .= ui_print_truncate_text($agent_alias, 'agent_medium', false, true, false, '[…]', 'font-size:7.5pt;'); $data[1] .= ''; } @@ -1325,9 +1398,9 @@ if (!empty($result)) { $show_edit_icon = false; } - $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']); + $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&'.'sec2=godmode/agentes/configurar_agente&'.'id_agente='.$row['id_agent'].'&'.'tab=module&'.'id_agent_module='.$row['id_agente_modulo'].'&'.'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 ""; -// Strict user hidden. -echo ''; -html_print_input_text('strict_user_hidden', $strict_user); -echo ''; enterprise_hook('close_meta_frame'); ui_require_javascript_file('pandora_modules'); ?> - diff --git a/pandora_console/pandora_console.redhat.spec b/pandora_console/pandora_console.redhat.spec index 37fa8092c2..91259e1401 100644 --- a/pandora_console/pandora_console.redhat.spec +++ b/pandora_console/pandora_console.redhat.spec @@ -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 diff --git a/pandora_console/pandora_console.rhel7.spec b/pandora_console/pandora_console.rhel7.spec index 162aeaef50..eb5c08bb57 100644 --- a/pandora_console/pandora_console.rhel7.spec +++ b/pandora_console/pandora_console.rhel7.spec @@ -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 diff --git a/pandora_console/pandora_console.spec b/pandora_console/pandora_console.spec index de5a3f753c..12875c993f 100644 --- a/pandora_console/pandora_console.spec +++ b/pandora_console/pandora_console.spec @@ -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 diff --git a/pandora_server/DEBIAN/control b/pandora_server/DEBIAN/control index 1afd3bd5bb..351c9df7da 100644 --- a/pandora_server/DEBIAN/control +++ b/pandora_server/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-server -Version: 7.0NG.750-201029 +Version: 7.0NG.750-201103 Architecture: all Priority: optional Section: admin diff --git a/pandora_server/DEBIAN/make_deb_package.sh b/pandora_server/DEBIAN/make_deb_package.sh index 2aff52280a..d6a143ec1b 100644 --- a/pandora_server/DEBIAN/make_deb_package.sh +++ b/pandora_server/DEBIAN/make_deb_package.sh @@ -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 diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index 03f3c1e109..e424083278 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -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 diff --git a/pandora_server/lib/PandoraFMS/PluginTools.pm b/pandora_server/lib/PandoraFMS/PluginTools.pm index 17a8779e7f..08d7a557e1 100644 --- a/pandora_server/lib/PandoraFMS/PluginTools.pm +++ b/pandora_server/lib/PandoraFMS/PluginTools.pm @@ -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() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 258f820820..aa10565a20 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -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} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 7b05aea60c..af6fa905f4 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -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} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 2712d24fd2..67b41d9570 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.750" -PI_BUILD="201029" +PI_BUILD="201103" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index e7a1e7ec12..169775b461 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -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; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 80771fd543..f928d268cf 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -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);