From 89253f41111853a7bf0c36e252ac68f691320750 Mon Sep 17 00:00:00 2001 From: Tatiana Llorente Date: Fri, 13 Sep 2019 10:27:14 +0200 Subject: [PATCH 01/17] Added option for custom delimiter in export csv for datatables - #4623 --- pandora_console/include/functions_ui.php | 1 + 1 file changed, 1 insertion(+) diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 008c05b8d7..4f529dbd43 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -3205,6 +3205,7 @@ function ui_print_datatable(array $parameters) { extend: "csv", text : "'.__('Export current page to CSV').'", + fieldSeparator: "'.$config['csv_divider'].'", exportOptions : { modifier : { // DataTables core From c93c29fd591b15124833fceee6a05fd48987da9d Mon Sep 17 00:00:00 2001 From: Luis Calvo Date: Tue, 24 Sep 2019 16:37:53 +0200 Subject: [PATCH 02/17] Added recursion to api_get_all_agents --- pandora_console/include/functions_api.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index 899add9ec0..ee349583b0 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -1860,7 +1860,7 @@ function api_set_delete_agent($id, $thrash1, $thrast2, $thrash3) * * @param $thrash1 Don't use. * @param $thrash2 Don't use. - * @param array $other it's array, $other as param are the filters available ;;;;; in this order + * @param array $other it's array, $other as param are the filters available ;;;;; in this order * and separator char (after text ; ) and separator (pass in param othermode as othermode=url_encode_separator_) * example for CSV: * @@ -1889,17 +1889,25 @@ function api_get_all_agents($thrash1, $thrash2, $other, $returnType) } if (isset($other['data'][0])) { - // Filter by SO + // Filter by SO. if ($other['data'][0] != '') { $where .= ' AND tconfig_os.id_os = '.$other['data'][0]; } } if (isset($other['data'][1])) { - // Filter by group + // Filter by group. if ($other['data'][1] != '') { - $where .= ' AND id_grupo = '.$other['data'][1]; + $ag_groups = $other['data'][1]; + // Recursion. + if ($other['data'][6] === '1') { + $ag_groups = groups_get_id_recursive($ag_groups, true); + } + + $ag_groups = implode(',', (array) $ag_groups); } + + $where .= ' AND (id_grupo IN ('.$ag_groups.') OR id_group IN ('.$ag_groups.'))'; } if (isset($other['data'][3])) { @@ -1933,8 +1941,8 @@ function api_get_all_agents($thrash1, $thrash2, $other, $returnType) $sql = "SELECT id_agente, alias, direccion, comentarios, tconfig_os.name, url_address, nombre FROM tconfig_os, tmetaconsole_agent - LEFT JOIN tagent_secondary_group - ON tmetaconsole_agent.id_agente = tagent_secondary_group.id_agent + LEFT JOIN tmetaconsole_agent_secondary_group + ON tmetaconsole_agent.id_agente = tmetaconsole_agent_secondary_group.id_agent WHERE tmetaconsole_agent.id_os = tconfig_os.id_os AND disabled = 0 $where AND $groups"; } else { @@ -1947,6 +1955,9 @@ function api_get_all_agents($thrash1, $thrash2, $other, $returnType) AND disabled = 0 $where AND $groups"; } + // Group by agent + $sql .= ' GROUP BY id_agente'; + $all_agents = db_get_all_rows_sql($sql); // Filter by status: unknown, warning, critical, without modules From 305d74878c5f01041c542c8ae7a81b17dbe05070 Mon Sep 17 00:00:00 2001 From: Tatiana Llorente Date: Fri, 4 Oct 2019 11:51:30 +0200 Subject: [PATCH 03/17] Changed title of csv in events - #4625 --- pandora_console/include/functions_ui.php | 1 + pandora_console/operation/events/export_csv.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 06c4b579ea..90d5a7360c 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -3206,6 +3206,7 @@ function ui_print_datatable(array $parameters) { extend: "csv", text : "'.__('Export current page to CSV').'", + title: "export_'.$parameters['id'].'_current_page_'.date('Y-m-d').'", exportOptions : { modifier : { // DataTables core diff --git a/pandora_console/operation/events/export_csv.php b/pandora_console/operation/events/export_csv.php index 0c16a16f9d..8f564bbb92 100644 --- a/pandora_console/operation/events/export_csv.php +++ b/pandora_console/operation/events/export_csv.php @@ -118,7 +118,7 @@ $now = date('Y-m-d'); // Download header. header('Content-type: text/txt'); -header('Content-Disposition: attachment; filename="pandora_export_event'.$now.'.csv"'); +header('Content-Disposition: attachment; filename="export_events_'.$now.'.csv"'); try { $fb64 = get_parameter('fb64', null); From bf19fbffd3743ea563844ea21fe790b1333feb48 Mon Sep 17 00:00:00 2001 From: Luis Calvo Date: Thu, 10 Oct 2019 14:25:17 +0200 Subject: [PATCH 04/17] Added API and cli function get_agents_id_by_alias --- pandora_console/include/functions_api.php | 34 ++++++++++++++++++++++ pandora_server/util/pandora_manage.pl | 35 +++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index 899add9ec0..5c8afeaac1 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -13450,6 +13450,40 @@ function api_get_agents_id_name_by_cluster_name($cluster_name, $trash1, $trash2, } +/** + * Get agents alias, id and server id (if Metaconsole) given agent alias + * matching part of it. + * + * @param string $alias + * @param $trash1 + * @param $trash2 + * @param string $returnType + * Example: + * api.php?op=get&op2=agents_id_name_by_alias&return_type=json&apipass=1234&user=admin&pass=pandora + */ +function api_get_agents_id_name_by_alias($alias, $trash1, $trash2, $returnType) +{ + global $config; + + if (is_metaconsole()) { + $all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup FROM tmetaconsole_agent WHERE upper(alias) LIKE upper('%$alias%')"); + } else { + $all_agents = db_get_all_rows_sql("SELECT alias, id_agente from tagente WHERE upper(alias) LIKE upper('%$alias%')"); + } + + if ($all_agents !== false) { + $data = [ + 'type' => 'json', + 'data' => $all_agents, + ]; + + returnData('json', $data, JSON_FORCE_OBJECT); + } else { + returnError('error_agents', 'No agents retrieved.'); + } +} + + function api_get_modules_id_name_by_cluster_id($cluster_id) { global $config; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 5faea24aa2..ac08b33116 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -4003,6 +4003,37 @@ sub cli_get_agent_modules() { } } +############################################################################## +# Show id, name and id_server of an agent given alias +# Related option: --get_agents_id_name_by_alias +############################################################################## + +sub cli_get_agents_id_name_by_alias() { + my $agent_alias = @ARGV[2]; + my @agents; + + if(is_metaconsole($conf) == 1) { + @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)","%".$agent_alias."%"); + } else { + @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", "%".$agent_alias."%"); + } + + if(scalar(@agents) == 0) { + print "[ERROR] No agents retrieved.\n\n"; + } + + if(is_metaconsole($conf) == 1) { + print "id_module, alias, id_server\n"; + } else { + print "id_module, alias\n"; + } + + foreach my $agent (@agents) { + print $agent->{'id_agente'}.",".safe_output($agent->{'alias'}).", ".$agent->{'id_tmetaconsole_setup'}."\n"; + } +} + + sub cli_create_synthetic() { my $name_module = @ARGV[2]; my $synthetic_type = @ARGV[3]; @@ -6285,6 +6316,10 @@ sub pandora_manage_main ($$$) { param_check($ltotal, 1); cli_get_agent_modules(); } + elsif ($param eq '--get_agents_id_name_by_alias') { + param_check($ltotal, 1); + cli_get_agents_id_name_by_alias(); + } elsif ($param eq '--get_policy_modules') { param_check($ltotal, 1); cli_get_policy_modules(); From 01148749a6e57186877e3578431612c62e348c89 Mon Sep 17 00:00:00 2001 From: Jose Gonzalez Date: Mon, 14 Oct 2019 17:10:48 +0200 Subject: [PATCH 05/17] Added secondarygroups macro and updated spanish, english and japanses wiki --- pandora_console/include/help/en/help_alert_macros.php | 1 + pandora_console/include/help/es/help_alert_macros.php | 1 + pandora_console/include/help/ja/help_alert_macros.php | 2 ++ pandora_server/lib/PandoraFMS/Core.pm | 10 ++++++++++ 4 files changed, 14 insertions(+) diff --git a/pandora_console/include/help/en/help_alert_macros.php b/pandora_console/include/help/en/help_alert_macros.php index 9d730cfcc9..2a16e0b182 100644 --- a/pandora_console/include/help/en/help_alert_macros.php +++ b/pandora_console/include/help/en/help_alert_macros.php @@ -77,6 +77,7 @@ Besides the defined module macros, the following macros are available:
  • _policy_: Name of the policy that the module belongs to (if applies).
  • _prevdata_: Module previous data before the alert has been triggered.
  • _rca_: Root cause analysis chain (only for services).
  • +
  • _secondarygroups_: List of all secondary groups of the agent.
  • _server_ip_: Ip of server assigned to agent.
  • _server_name_: Name of server assigned to agent.
  • _target_ip_: IP address for the module’s target.
  • diff --git a/pandora_console/include/help/es/help_alert_macros.php b/pandora_console/include/help/es/help_alert_macros.php index 75e627f19a..e4fa442b2c 100644 --- a/pandora_console/include/help/es/help_alert_macros.php +++ b/pandora_console/include/help/es/help_alert_macros.php @@ -77,6 +77,7 @@ Además de las macros de módulo definidas, las siguientes macros están disponi
  • _policy_: Nombre de la política a la que pertenece el módulo (si aplica).
  • _prevdata_: Dato previo antes de disparase la alerta.
  • _rca_: Cadena de análasis de causa raíz (sólo para servicios).
  • +
  • _secondarygroups_: Lista de todos los grupos secundarios del agente.
  • _server_ip_: Ip del servidor al que el agente está asignado.
  • _server_name_: Nombre del servidor al que el agente está asignado.
  • _target_ip_: Dirección IP del objetivo del módulo.
  • diff --git a/pandora_console/include/help/ja/help_alert_macros.php b/pandora_console/include/help/ja/help_alert_macros.php index 36ff609741..65f598fc8b 100644 --- a/pandora_console/include/help/ja/help_alert_macros.php +++ b/pandora_console/include/help/ja/help_alert_macros.php @@ -77,11 +77,13 @@
  • _policy_ : モジュールが属するポリシー名 (存在する場合)
  • _prevdata_ : アラートを発報する前のモジュールデータ
  • _rca_: Root cause analysis chain (only for services).
  • +
  • _secondarygroups_: エージェントのすべてのセカンダリグループのリスト
  • _server_ip_ : エージェントが割り当てられているサーバ IP。
  • _server_name_ : エージェントが割り当てられているサーバ名。
  • _target_ip_ : モジュールの対象IPアドレス
  • _target_port_ : モジュールの対象ポート
  • _timestamp_ : アラートが発生した日時 (yy-mm-dd hh:mm:ss).
  • +エージェントのすべてのセカンダリグループのリスト
  • _timezone_: _timestamp_ で使用されるタイムゾーン名.
  • 例: Agent _agent_ has fired alert _alert_ with data _data_ diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index ef8a9c18bf..94c107f8e3 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -1125,6 +1125,7 @@ sub pandora_execute_action ($$$$$$$$$;$) { _name_tag_ => undef, _all_address_ => undef, '_address_\d+_' => undef, + _secondarygroups_ => undef, ); if ((defined ($extra_macros)) && (ref($extra_macros) eq "HASH")) { @@ -4114,6 +4115,15 @@ sub on_demand_macro($$$$$$;$) { } return(defined($field_value)) ? $field_value : ''; + } elsif ($macro eq '_secondarygroups_') { + my $field_value = ''; + + my @groups = get_db_rows ($dbh, 'SELECT tg.nombre from tagent_secondary_group as tsg INNER JOIN tgrupo tg ON tsg.id_group = tg.id_grupo WHERE tsg.id_agent = ?', $module->{'id_agente'}); + foreach my $element (@groups) { + $field_value .= $element->{'nombre'} .","; + } + chop($field_value); + return(defined($field_value)) ? '('.$field_value.')' : ''; } } From e0ff5bf9cc9c1c4ca9671c7816e82b81e4d7c014 Mon Sep 17 00:00:00 2001 From: Jose Gonzalez Date: Mon, 14 Oct 2019 17:13:13 +0200 Subject: [PATCH 06/17] Solved an issue with japanese wiki --- pandora_console/include/help/ja/help_alert_macros.php | 1 - 1 file changed, 1 deletion(-) diff --git a/pandora_console/include/help/ja/help_alert_macros.php b/pandora_console/include/help/ja/help_alert_macros.php index 65f598fc8b..86bf24ad59 100644 --- a/pandora_console/include/help/ja/help_alert_macros.php +++ b/pandora_console/include/help/ja/help_alert_macros.php @@ -83,7 +83,6 @@

  • _target_ip_ : モジュールの対象IPアドレス
  • _target_port_ : モジュールの対象ポート
  • _timestamp_ : アラートが発生した日時 (yy-mm-dd hh:mm:ss).
  • -エージェントのすべてのセカンダリグループのリスト
  • _timezone_: _timestamp_ で使用されるタイムゾーン名.
  • 例: Agent _agent_ has fired alert _alert_ with data _data_ From 85dff93f41f133d158e32ac8f954d7f997fe63f1 Mon Sep 17 00:00:00 2001 From: Luis Calvo Date: Fri, 18 Oct 2019 12:22:20 +0200 Subject: [PATCH 07/17] Added strict option --- pandora_console/include/functions_api.php | 16 ++++++--- pandora_server/util/pandora_manage.pl | 41 ++++++++++++++++------- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index 5c8afeaac1..a32c105cd2 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -13459,16 +13459,22 @@ function api_get_agents_id_name_by_cluster_name($cluster_name, $trash1, $trash2, * @param $trash2 * @param string $returnType * Example: - * api.php?op=get&op2=agents_id_name_by_alias&return_type=json&apipass=1234&user=admin&pass=pandora + * api.php?op=get&op2=agents_id_name_by_alias&return_type=json&apipass=1234&user=admin&pass=pandora&id=pandrora&id2=strict */ -function api_get_agents_id_name_by_alias($alias, $trash1, $trash2, $returnType) +function api_get_agents_id_name_by_alias($alias, $strict, $trash2, $returnType) { global $config; - if (is_metaconsole()) { - $all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup FROM tmetaconsole_agent WHERE upper(alias) LIKE upper('%$alias%')"); + if ($strict == 'strict') { + $where_clause = " alias = '$alias'"; } else { - $all_agents = db_get_all_rows_sql("SELECT alias, id_agente from tagente WHERE upper(alias) LIKE upper('%$alias%')"); + $where_clause = " upper(alias) LIKE upper('%$alias%')"; + } + + if (is_metaconsole()) { + $all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup, server_name FROM tmetaconsole_agent WHERE $where_clause"); + } else { + $all_agents = db_get_all_rows_sql("SELECT alias, id_agente from tagente WHERE $where_clause"); } if ($all_agents !== false) { diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index ac08b33116..ad75e40a00 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -121,6 +121,7 @@ sub help_screen{ help_screen_line('--get_agent_group', '', 'Get the group name of an agent'); help_screen_line('--get_agent_group_id', '', 'Get the group ID of an agent'); help_screen_line('--get_agent_modules', '', 'Get the modules of an agent'); + help_screen_line('--get_agents_id_name_by_alias', '', '[]', 'List id and alias of agents mathing given alias'); help_screen_line('--get_agents', '[ ]', "Get \n\t list of agents with optative filter parameters"); help_screen_line('--delete_conf_file', '', 'Delete a local conf of a given agent'); help_screen_line('--clean_conf_file', '', "Clean a local conf of a given agent deleting all modules, \n\t policies, file collections and comments"); @@ -4010,27 +4011,41 @@ sub cli_get_agent_modules() { sub cli_get_agents_id_name_by_alias() { my $agent_alias = @ARGV[2]; + my $strict = @ARGV[3]; my @agents; + my $where_value; - if(is_metaconsole($conf) == 1) { - @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)","%".$agent_alias."%"); + use Data::Dumper; + print Dumper($agent_alias ,$strict); + if($strict eq 'strict') { + $where_value = $agent_alias; } else { - @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", "%".$agent_alias."%"); + $where_value = "%".$agent_alias."%"; } + if(is_metaconsole($conf) == 1) { + @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)", $where_value); + } else { + @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", $where_value); + } if(scalar(@agents) == 0) { print "[ERROR] No agents retrieved.\n\n"; - } - - if(is_metaconsole($conf) == 1) { - print "id_module, alias, id_server\n"; } else { - print "id_module, alias\n"; - } + if(is_metaconsole($conf) == 1) { + print "id_module, alias, id_server\n"; - foreach my $agent (@agents) { - print $agent->{'id_agente'}.",".safe_output($agent->{'alias'}).", ".$agent->{'id_tmetaconsole_setup'}."\n"; - } + foreach my $agent (@agents) { + + print $agent->{'id_agente'}.",".safe_output($agent->{'alias'}).", ".$agent->{'id_tmetaconsole_setup'}."\n"; + } + } else { + print "id_module, alias\n"; + + foreach my $agent (@agents) { + print $agent->{'id_agente'}.",".safe_output($agent->{'alias'})."\n"; + } + } + } } @@ -6317,7 +6332,7 @@ sub pandora_manage_main ($$$) { cli_get_agent_modules(); } elsif ($param eq '--get_agents_id_name_by_alias') { - param_check($ltotal, 1); + param_check($ltotal, 2,1); cli_get_agents_id_name_by_alias(); } elsif ($param eq '--get_policy_modules') { From 4638915c70a48defc34d179f656473a375ab5269 Mon Sep 17 00:00:00 2001 From: Luis Calvo Date: Fri, 18 Oct 2019 12:48:38 +0200 Subject: [PATCH 08/17] Fixed minor bugs --- pandora_console/include/functions_api.php | 2 +- pandora_server/util/pandora_manage.pl | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index a32c105cd2..902083728b 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -13472,7 +13472,7 @@ function api_get_agents_id_name_by_alias($alias, $strict, $trash2, $returnType) } if (is_metaconsole()) { - $all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup, server_name FROM tmetaconsole_agent WHERE $where_clause"); + $all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup as 'id_server', server_name FROM tmetaconsole_agent WHERE $where_clause"); } else { $all_agents = db_get_all_rows_sql("SELECT alias, id_agente from tagente WHERE $where_clause"); } diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index ad75e40a00..13c9857804 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -4015,8 +4015,6 @@ sub cli_get_agents_id_name_by_alias() { my @agents; my $where_value; - use Data::Dumper; - print Dumper($agent_alias ,$strict); if($strict eq 'strict') { $where_value = $agent_alias; } else { @@ -4024,22 +4022,22 @@ sub cli_get_agents_id_name_by_alias() { } if(is_metaconsole($conf) == 1) { - @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)", $where_value); + @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente, id_tmetaconsole_setup as 'id_server', server_name FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)", $where_value); } else { - @agents = get_db_rows($dbh,"SELECT alias, id_agente, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", $where_value); + @agents = get_db_rows($dbh,"SELECT alias, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", $where_value); } if(scalar(@agents) == 0) { print "[ERROR] No agents retrieved.\n\n"; } else { if(is_metaconsole($conf) == 1) { - print "id_module, alias, id_server\n"; + print "alias, id_agente, id_tagente, id_server, server_name\n"; foreach my $agent (@agents) { - print $agent->{'id_agente'}.",".safe_output($agent->{'alias'}).", ".$agent->{'id_tmetaconsole_setup'}."\n"; + print safe_output($agent->{'alias'}).", ".$agent->{'id_agente'}.", ".$agent->{'id_tagente'}.", ".$agent->{'id_server'}.", ".$agent->{'server_name'}."\n"; } } else { - print "id_module, alias\n"; + print "alias, id_agente\n"; foreach my $agent (@agents) { print $agent->{'id_agente'}.",".safe_output($agent->{'alias'})."\n"; From 38b3490e4e5ae40aa0d2a46e59fda24861653e40 Mon Sep 17 00:00:00 2001 From: Tatiana Llorente Date: Thu, 24 Oct 2019 17:42:27 +0200 Subject: [PATCH 09/17] Changed color of constant to severity minor in events --- pandora_console/include/constants.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/constants.php b/pandora_console/include/constants.php index 8c5b1364f1..7c0e9ee552 100644 --- a/pandora_console/include/constants.php +++ b/pandora_console/include/constants.php @@ -147,7 +147,7 @@ define('COL_UNKNOWN', '#B2B2B2'); define('COL_DOWNTIME', '#976DB1'); define('COL_IGNORED', '#DDD'); define('COL_ALERTFIRED', '#F36201'); -define('COL_MINOR', '#B2B2B2'); +define('COL_MINOR', '#F099A2'); define('COL_MAJOR', '#C97A4A'); define('COL_INFORMATIONAL', '#E4E4E4'); define('COL_MAINTENANCE', '#4a83f3'); From 64e80e6fee647c3e64c2f490303627828ac48618 Mon Sep 17 00:00:00 2001 From: Luis Calvo Date: Tue, 29 Oct 2019 10:32:59 +0100 Subject: [PATCH 10/17] Fixed error message --- pandora_console/include/functions_api.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index 5ee6c1c7c6..21514cac7e 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -14261,7 +14261,7 @@ function api_get_agents_id_name_by_alias($alias, $strict, $trash2, $returnType) returnData('json', $data, JSON_FORCE_OBJECT); } else { - returnError('error_agents', 'No agents retrieved.'); + returnError('error_agents', 'Alias did not match any agent.'); } } From 8573add0b31e60f76186f0d8bcfbaa3666b37bfe Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Wed, 30 Oct 2019 13:01:59 +0100 Subject: [PATCH 11/17] Fixed agent name and error lenght --- pandora_console/operation/events/events.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index bc9c59eda5..7383a2c05c 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -1539,7 +1539,7 @@ function process_datatables_callback(table, settings) { // Agent id. target = i; } - if(label == '') { + if(label == '') { // Agent id. target = i; break; @@ -1619,15 +1619,13 @@ function process_datatables_item(item) { // Show comments events. item.user_comment = item.comments - - if(item.comments.length > 80){ - item.user_comment += '  '; - item.user_comment += ' __('Show more')]); ?>'; - + if(typeof item.comments !== 'undefined' && item.comments.length > 80) { + item.user_comment += '  '; + item.user_comment += ' __('Show more')]); ?>'; } - + // Grouped events. if(item.max_id_evento) { item.id_evento = item.max_id_evento From 867ab6d0bf081df23b19533b360068650fdb4feb Mon Sep 17 00:00:00 2001 From: Tatiana Llorente Date: Thu, 31 Oct 2019 09:51:38 +0100 Subject: [PATCH 12/17] Fixed bug in report date --- pandora_console/include/functions_reporting.php | 4 ++++ pandora_console/include/functions_reporting_html.php | 9 +++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 1d0355cf97..ee1e7d6001 100755 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -179,6 +179,10 @@ function reporting_make_reporting_data( $report['group_name'] = groups_get_name($report['id_group']); $report['contents'] = []; + if (empty($report['period']) && $pdf === false) { + $report['period'] = $period; + } + if (empty($contents)) { return reporting_check_structure_report($report); } diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index cf1fa60e70..3c773f9771 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -121,12 +121,9 @@ function html_do_report_info($report) '.__('Report date').': '; - if (isset($report['period'])) { - if (is_numeric($report['datetime']) && is_numeric($report['period'])) { - $html .= ''.date($config['date_format'], ($report['datetime'] - $report['period'])).''; - } - - $html .= ''; + if (is_numeric($report['datetime']) && is_numeric($report['period']) && ($report['period'] != 0)) { + $html .= ''.__('From').' '.date($config['date_format'], ($report['datetime'] - $report['period'])).''; + $html .= ''.__('to').' '.date($config['date_format'], $report['datetime']).''; } else { $html .= ''.__('Items period before').' '.date($config['date_format'], $report['datetime']).''; } From d0c2c0d1ebb5df46b3d1556c789c084b59667619 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 4 Nov 2019 10:39:16 +0100 Subject: [PATCH 13/17] Fixed visual bug in general report item --- .../reporting_builder.item_editor.php | 5 +++- .../include/functions_reporting_html.php | 30 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index b59dbc2ee5..81bb605c01 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -3835,11 +3835,14 @@ $(document).ready (function () { }); $("#checkbox-checkbox_show_resume").change(function(){ - if($(this).is(":checked")){ + type = $("#type").val(); + if($(this).is(":checked") && type !== 'general'){ $("#row_select_fields2").show(); + $("#row_select_fields3").show(); } else{ $("#row_select_fields2").hide(); + $("#row_select_fields3").hide(); } }); diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index cf1fa60e70..a2345a9434 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -3625,10 +3625,10 @@ function reporting_html_general($table, $item, $pdf=0) } $table1->head[3] = __('Value'); - $table1->style[0] = 'text-align: left'; - $table1->style[1] = 'text-align: left'; - $table1->style[2] = 'text-align: left'; - $table1->style[3] = 'text-align: left'; + $table1->style[0] = 'text-align: center'; + $table1->style[1] = 'text-align: center'; + $table1->style[2] = 'text-align: center'; + $table1->style[3] = 'text-align: center'; // Begin - Order by agent. foreach ($item['data'] as $key => $row) { @@ -3759,12 +3759,16 @@ function reporting_html_general($table, $item, $pdf=0) $table_summary->head = []; $table_summary->head_colspan = []; $table_summary->align = []; + $table_summary->headstyle = []; + $table_summary->headstyle[0] = 'text-align: center;'; + $table_summary->headstyle[1] = 'text-align: center;'; + $table_summary->headstyle[2] = 'text-align: center;'; - $table_summary->align[0] = 'left'; - $table_summary->align[1] = 'right'; - $table_summary->align[2] = 'right'; - $table_summary->align[3] = 'left'; - $table_summary->align[4] = 'right'; + $table_summary->align[0] = 'center'; + $table_summary->align[1] = 'center'; + $table_summary->align[2] = 'center'; + $table_summary->align[3] = 'center'; + $table_summary->align[4] = 'center'; $table_summary->head_colspan[0] = 2; $table_summary->head[0] = __('Min Value'); @@ -3772,11 +3776,11 @@ function reporting_html_general($table, $item, $pdf=0) $table_summary->head_colspan[2] = 2; $table_summary->head[2] = __('Max Value'); - $table_summary->data[0][0] = $item['min']['agent'].' - '.$item['min']['module']; - $table_summary->data[0][1] = $item['min']['formated_value']; + $table_summary->data[0][0] = $item['min']['agent'].' - '.$item['min']['module'].str_repeat(' ', 20).$item['min']['formated_value']; + $table_summary->data[0][1] = ''; $table_summary->data[0][2] = format_for_graph($item['avg_value'], 2); - $table_summary->data[0][3] = $item['max']['agent'].' - '.$item['max']['module']; - $table_summary->data[0][4] = $item['max']['formated_value']; + $table_summary->data[0][3] = $item['max']['agent'].' - '.$item['max']['module'].str_repeat(' ', 20).$item['max']['formated_value']; + $table_summary->data[0][4] = ''; if ($pdf !== 0) { $return_pdf .= html_print_table($table_summary, true); From 9fc635a7a920cc8ae92fdc9d6c5c0af5d3407168 Mon Sep 17 00:00:00 2001 From: alejandro-campos Date: Tue, 5 Nov 2019 11:03:28 +0100 Subject: [PATCH 14/17] user ack filter in event list not displaying users with all group --- pandora_console/operation/events/events.php | 2 +- pandora_console/operation/events/events_list.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index bc9c59eda5..12d4cbd087 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -1018,7 +1018,7 @@ $adv_inputs[] = $in; $user_users = users_get_user_users( $config['id_user'], $access, - users_can_manage_group_all() + users_can_manage_group_all($access) ); $data = html_print_select( diff --git a/pandora_console/operation/events/events_list.php b/pandora_console/operation/events/events_list.php index 298310a845..fc16470e37 100644 --- a/pandora_console/operation/events/events_list.php +++ b/pandora_console/operation/events/events_list.php @@ -767,7 +767,7 @@ $data[0] = __('User ack.').$jump; $user_users = users_get_user_users( $config['id_user'], $access, - users_can_manage_group_all() + users_can_manage_group_all($access) ); $data[0] .= html_print_select( From 945383b8ece6593f8be7336ccbaf3ea5b9f0e67a Mon Sep 17 00:00:00 2001 From: Tatiana Llorente Date: Tue, 5 Nov 2019 12:43:08 +0100 Subject: [PATCH 15/17] Changed name of xml report --- pandora_console/operation/reporting/reporting_xml.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandora_console/operation/reporting/reporting_xml.php b/pandora_console/operation/reporting/reporting_xml.php index 4cd5a8508e..75bb3001db 100755 --- a/pandora_console/operation/reporting/reporting_xml.php +++ b/pandora_console/operation/reporting/reporting_xml.php @@ -91,10 +91,6 @@ check_login(); $id_report = (int) get_parameter('id'); $filename = (string) get_parameter('filename'); -if (empty($filename)) { - $filename = 'pandorafms_report_'.date('Y-m-d_His'); -} - $date_mode = get_parameter('date_mode', 'none'); $period = null; @@ -132,6 +128,10 @@ $report = reporting_make_reporting_data( 'static' ); +if (empty($filename)) { + $filename = $report['name'].'_report_'.date('Y-m-d_His'); +} + reporting_xml_get_report($report, $filename); exit; From b707ebd4a4007efc7a5ecccae05b8acce597e276 Mon Sep 17 00:00:00 2001 From: Luis Date: Tue, 5 Nov 2019 17:09:29 +0100 Subject: [PATCH 16/17] Added docs and support urls in console. Fixed bugs --- pandora_console/general/header.php | 6 +++--- pandora_console/general/login_help_dialog.php | 4 ++-- pandora_console/general/login_page.php | 8 ++++---- pandora_console/include/functions_ui.php | 20 +++++++++++++++++++ 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index 99bb38cc21..e94309b415 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -331,19 +331,19 @@ if ($config['menu_type'] == 'classic') { // Support. if (defined('PANDORA_ENTERPRISE')) { - $header_support_link = 'https://support.artica.es/'; + $header_support_link = $config['custom_support_url']; } else { $header_support_link = 'https://pandorafms.com/forums/'; } $header_support = '

    '; // Documentation. $header_docu = ''; diff --git a/pandora_console/general/login_help_dialog.php b/pandora_console/general/login_help_dialog.php index 323b465d5a..b02c47cea9 100644 --- a/pandora_console/general/login_help_dialog.php +++ b/pandora_console/general/login_help_dialog.php @@ -87,7 +87,7 @@ echo '
    '; - echo ''.html_print_image( + echo ''.html_print_image( 'images/documentation.png', true, [ @@ -96,7 +96,7 @@ echo '
    '; - echo ''.__('Documentation').''; + echo ''.__('Documentation').''; echo ''; echo ''; echo ''; diff --git a/pandora_console/general/login_page.php b/pandora_console/general/login_page.php index 5aecfcc92c..ea40ef48aa 100755 --- a/pandora_console/general/login_page.php +++ b/pandora_console/general/login_page.php @@ -96,16 +96,16 @@ echo '
    '; echo '
      '; if ($docs_logo !== false) { - echo '
    • docs
    • '; + echo '
    • docs
    • '; } - echo '
    • '.__('Docs').'
    • '; + echo '
    • '.__('Docs').'
    • '; if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) { if ($support_logo !== false) { - echo '
    • support
    • '; + echo '
    • support
    • '; } - echo '
    • '.__('Support').'
    • '; + echo '
    • '.__('Support').'
    • '; } else { echo '
    • support
    • '; echo '
    • '.__('Support').'
    • '; diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index a65cee76cd..266a4b6a99 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -5734,3 +5734,23 @@ function ui_print_comments($comments) return io_safe_output($comentario); } + + +/** + * Get complete external pandora url. + * + * @param string $url Url to be parsed. + * + * @return string Full url. + */ +function ui_get_full_external_url(string $url) +{ + $url_parsed = parse_url($url); + if ($url_parsed) { + if (!isset($url_parsed['scheme'])) { + $url = 'http://'.$url; + } + } + + return $url; +} From e9b516c3990245faa5850299de8bf999e0535a54 Mon Sep 17 00:00:00 2001 From: alejandro-campos Date: Wed, 6 Nov 2019 12:56:42 +0100 Subject: [PATCH 17/17] change access permission to users in user ack filter in event list --- pandora_console/operation/events/events.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index 12d4cbd087..86b782f696 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -1018,7 +1018,7 @@ $adv_inputs[] = $in; $user_users = users_get_user_users( $config['id_user'], $access, - users_can_manage_group_all($access) + true ); $data = html_print_select(