diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php
index 397e533366..3eb6bc6d1c 100755
--- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php
+++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php
@@ -1019,6 +1019,11 @@ switch ($action) {
$idAgent = $item['id_agent'];
break;
+ case 'top_n_agents_sh':
+ $group = $item['id_group'];
+ $top_n_value = (empty($item['top_n_value']) === true) ? 10 : $item['top_n_value'];
+ break;
+
default:
// It's not possible.
break;
@@ -7411,7 +7416,11 @@ function chooseType() {
case 'ncm':
$("#row_agent").show();
break;
-
+
+ case 'top_n_agents_sh':
+ $("#row_group").show();
+ $("#row_max_items").show();
+ break;
}
switch (type) {
diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php
index 00bc80f234..242ee1156c 100755
--- a/pandora_console/godmode/reporting/reporting_builder.php
+++ b/pandora_console/godmode/reporting/reporting_builder.php
@@ -1987,6 +1987,12 @@ switch ($action) {
$good_format = true;
break;
+ case 'top_n_agents_sh':
+ $values['id_group'] = get_parameter('combo_group');
+ $values['top_n_value'] = get_parameter('max_items');
+ $good_format = true;
+ break;
+
default:
$values['period'] = get_parameter('period');
$values['top_n'] = get_parameter(
@@ -2863,6 +2869,12 @@ switch ($action) {
$good_format = true;
break;
+ case 'top_n_agents_sh':
+ $values['id_group'] = get_parameter('combo_group');
+ $values['top_n_value'] = get_parameter('max_items');
+ $good_format = true;
+ break;
+
default:
$values['period'] = get_parameter('period');
$values['top_n'] = get_parameter(
diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php
index c01e44157a..d92b4ea38e 100755
--- a/pandora_console/include/functions_reporting.php
+++ b/pandora_console/include/functions_reporting.php
@@ -935,6 +935,13 @@ function reporting_make_reporting_data(
);
break;
+ case 'top_n_agents_sh':
+ $report['contents'][] = reporting_top_n_agents_sh(
+ $report,
+ $content
+ );
+ break;
+
default:
// Default.
break;
diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php
index 91d8a9e5a5..ca36af48b8 100644
--- a/pandora_console/include/functions_reporting_html.php
+++ b/pandora_console/include/functions_reporting_html.php
@@ -463,6 +463,10 @@ function reporting_html_print_report($report, $mini=false, $report_info=1)
case 'ncm':
reporting_html_ncm_config($table, $item);
break;
+
+ case 'top_n_agents_sh':
+ reporting_html_top_n_agents_sh($table, $item);
+ break;
}
if ($item['type'] == 'agent_module') {
@@ -478,6 +482,24 @@ function reporting_html_print_report($report, $mini=false, $report_info=1)
}
+function reporting_html_top_n_agents_sh($table, $item)
+{
+ global $config;
+
+ $table->data[1][0] = ''.__('Agent').'';
+ $table->data[1][1] = ''.__('Last audit scan').'';
+ $table->data[1][2] = ''.__('Score').'';
+
+ $row = 2;
+ foreach ($item['data'] as $key => $agent) {
+ $table->data[$row][0] = $agent['alias'];
+ $table->data[$row][1] = date($config['date_format'], $agent['utimestamp']);
+ $table->data[$row][2] = $agent['datos'].' %';
+ $row++;
+ }
+}
+
+
/**
* Function to print to HTML SLA report.
*
diff --git a/pandora_console/include/functions_reports.php b/pandora_console/include/functions_reports.php
index f13e935b6a..5b2c00229f 100755
--- a/pandora_console/include/functions_reports.php
+++ b/pandora_console/include/functions_reports.php
@@ -963,6 +963,13 @@ function reports_get_report_types($template=false, $not_editor=false)
'name' => __('Network configuration changes'),
];
+ if (enterprise_installed() === true) {
+ $types['top_n_agents_sh'] = [
+ 'optgroup' => __('Security hardening'),
+ 'name' => __('Top-N agents with the worst score'),
+ ];
+ }
+
return $types;
}