From c208df980ece022a79fa67b9e803416849b8c4aa Mon Sep 17 00:00:00 2001 From: "alejandro.campos@artica.es" Date: Fri, 16 Jun 2023 11:50:52 +0200 Subject: [PATCH 01/30] limited access to nodes when merging --- .../general/admin_maintenance_mode.php | 81 +++++++++++++++++++ pandora_console/index.php | 27 +++++++ 2 files changed, 108 insertions(+) create mode 100644 pandora_console/general/admin_maintenance_mode.php diff --git a/pandora_console/general/admin_maintenance_mode.php b/pandora_console/general/admin_maintenance_mode.php new file mode 100644 index 0000000000..eda793120f --- /dev/null +++ b/pandora_console/general/admin_maintenance_mode.php @@ -0,0 +1,81 @@ + + + + +
+

+ +

+
+
+ + 'responsive flex margn'] + ); + html_print_image( + 'images/maintenance.png', + false, + [ + 'class' => 'responsive', + 'width' => 800, + ] + ); + ?> + +
+
+

+
+ + + + + \ No newline at end of file diff --git a/pandora_console/index.php b/pandora_console/index.php index aaf960eb91..6dfb64d33f 100755 --- a/pandora_console/index.php +++ b/pandora_console/index.php @@ -1042,6 +1042,33 @@ if (isset($config['id_user']) === false) { } } +if ((bool) ($config['maintenance_mode'] ?? false) === true + && is_user_admin($config['id_user']) === false +) { + // Show maintenance web-page. For non-admin users only. + include $config['homedir'].'/general/maintenance.php'; + + while (ob_get_length() > 0) { + ob_end_flush(); + } + + exit(''); +} + +if ((bool) ($config['maintenance_mode'] ?? false) === true + && $page !== 'advanced/command_center' + && is_user_admin($config['id_user']) === true +) { + // Prevent access to metaconsole if not merged. + include 'general/admin_maintenance_mode.php'; + + while (ob_get_length() > 0) { + ob_end_flush(); + } + + exit(''); +} + // Enterprise support. if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) { include_once ENTERPRISE_DIR.'/load_enterprise.php'; From 89355f07a429961eb800fdb4f4ade246e9c4e7d9 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Fri, 16 Jun 2023 12:03:44 +0200 Subject: [PATCH 02/30] #11595 The title and the url of the Tip are updated in the English language. --- pandora_console/extras/mr/66.sql | 10 ++++++++++ pandora_console/pandoradb_data.sql | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 pandora_console/extras/mr/66.sql diff --git a/pandora_console/extras/mr/66.sql b/pandora_console/extras/mr/66.sql new file mode 100644 index 0000000000..e97889494f --- /dev/null +++ b/pandora_console/extras/mr/66.sql @@ -0,0 +1,10 @@ +START TRANSACTION; + + +UPDATE `twelcome_tip` + SET title = 'Scheduled downtimes', + url = 'https://pandorafms.com/manual/en/documentation/04_using/11_managing_and_administration#scheduled_downtimes' + WHERE title = 'planned stops'; + + +COMMIT; diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql index 7409d3cfcd..3ae4079cac 100644 --- a/pandora_console/pandoradb_data.sql +++ b/pandora_console/pandoradb_data.sql @@ -2611,7 +2611,7 @@ INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES ( INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Monitor routes from one IP to another','There is a special plugin that is used to visually monitor the routes from one IP to another in a visual and dynamic way, as it changes over time.','https://pandorafms.com/manual/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas',1); SELECT @last_id := LAST_INSERT_ID(); INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'monitorizar_desde_ip.png','images/tips/'); -INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'planned stops','It is possible to define, at the agent level and at the module level, periods in which the alerts and/or the collected data are ignored. It is perfect for planning service stops or disconnection of monitored systems. It also affects SLA reporting, preventing those time intervals from being taken into account.','https://pandorafms.com/manual/en/documentation/04_using/11_managing_and_administration#paradas_de_servicio_planificadas',1); +INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Scheduled downtimes','It is possible to define, at the agent level and at the module level, periods in which the alerts and/or the collected data are ignored. It is perfect for planning service stops or disconnection of monitored systems. It also affects SLA reporting, preventing those time intervals from being taken into account.','https://pandorafms.com/manual/en/documentation/04_using/11_managing_and_administration#scheduled_downtimes',1); SELECT @last_id := LAST_INSERT_ID(); INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'paradas_planificadas.png','images/tips/'); INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Customize alert emails','Did you know that Pandora alert emails can be customized? You only have to edit the default HTML code of the email type alert actions.','https://pandorafms.com/manual/en/documentation/04_using/01_alerts#editing_an_action',1); From 3b6320e35f6d5e0031cd5828157a0c111e98df07 Mon Sep 17 00:00:00 2001 From: "alejandro.campos@artica.es" Date: Tue, 20 Jun 2023 16:25:49 +0200 Subject: [PATCH 03/30] fix pass encryption --- pandora_console/include/functions_modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/functions_modules.php b/pandora_console/include/functions_modules.php index 26e63c5975..8208eeac34 100755 --- a/pandora_console/include/functions_modules.php +++ b/pandora_console/include/functions_modules.php @@ -788,7 +788,7 @@ function modules_create_agent_module( // Encrypt passwords. if (isset($values['plugin_pass']) === true) { // Avoid two times encryption. - $plugin_pass = io_safe_output($values['plugin_pass']); + $plugin_pass = io_output_password($values['plugin_pass']); $values['plugin_pass'] = io_input_password($plugin_pass); } From d2c3982a5db42ece9b93c8e2c87bbfd8b881e450 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 21 Jun 2023 13:05:37 +0200 Subject: [PATCH 04/30] #11375 bulk add profile error already exists --- pandora_console/godmode/massive/massive_add_profiles.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandora_console/godmode/massive/massive_add_profiles.php b/pandora_console/godmode/massive/massive_add_profiles.php index 6fa11d357f..5e23637453 100644 --- a/pandora_console/godmode/massive/massive_add_profiles.php +++ b/pandora_console/godmode/massive/massive_add_profiles.php @@ -103,6 +103,7 @@ if ($create_profiles) { $groups_id = get_parameter('groups_id', -1); $users_id = get_parameter('users_id', -1); $n_added = 0; + $msg_error = __('Profiles cannot be added'); if ($profiles_id == -1 || $groups_id == -1 || $users_id == -1) { $result = false; @@ -155,6 +156,8 @@ if ($create_profiles) { if ($return !== false) { $n_added++; } + } else { + $msg_error = __('The profile already exist on the user'); } } } @@ -182,7 +185,7 @@ if ($create_profiles) { ui_print_result_message( $n_added > 0, __('Profiles added successfully').'('.$n_added.')', - __('Profiles cannot be added') + $msg_error ); } From 66ba29581bfe7f69413f98b53864fbf7c2ca685c Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 22 Jun 2023 15:06:16 +0200 Subject: [PATCH 05/30] #11059 added new property in graphjs for add text in center --- pandora_console/include/graphs/fgraph.php | 11 +++ .../Widgets/top_n_events_by_group.php | 62 +++++++++++--- .../phpchartjs/src/Options/Elements.php | 26 ++++++ .../src/Options/Elements/Center.php | 85 +++++++++++++++++++ .../phpchartjs/src/Renderer/JavaScript.php | 43 ++++++++++ 5 files changed, 214 insertions(+), 13 deletions(-) create mode 100644 pandora_console/vendor/artica/phpchartjs/src/Options/Elements/Center.php diff --git a/pandora_console/include/graphs/fgraph.php b/pandora_console/include/graphs/fgraph.php index db068d2140..447ec9efb3 100644 --- a/pandora_console/include/graphs/fgraph.php +++ b/pandora_console/include/graphs/fgraph.php @@ -649,6 +649,17 @@ function get_build_setup_charts($type, $options, $data) } $chart->options()->setMaintainAspectRatio($maintainAspectRatio); + if (isset($options['elements']) === true) { + if (isset($options['elements']['center']) === true) { + if (isset($options['elements']['center']['text']) === true) { + $chart->options()->getElements()->center()->setText($options['elements']['center']['text']); + } + + if (isset($options['elements']['center']['color']) === true) { + $chart->options()->getElements()->center()->setColor($options['elements']['center']['color']); + } + } + } // Set Responsive for responsive charts. $responsive = true; diff --git a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php index 8c4fece94e..0a47ea71b8 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php +++ b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php @@ -226,6 +226,10 @@ class TopNEventByGroupWidget extends Widget $values['legendPosition'] = $decoder['legendPosition']; } + if (isset($decoder['show_total_data']) === true) { + $values['show_total_data'] = $decoder['show_total_data']; + } + return $values; } @@ -329,6 +333,16 @@ class TopNEventByGroupWidget extends Widget ], ]; + $inputs[] = [ + 'label' => __('Show total data'), + 'arguments' => [ + 'type' => 'switch', + 'name' => 'show_total_data', + 'value' => $values['show_total_data'], + 'return' => true, + ], + ]; + return $inputs; } @@ -347,6 +361,7 @@ class TopNEventByGroupWidget extends Widget $values['maxHours'] = \get_parameter('maxHours', 0); $values['groupId'] = \get_parameter('groupId', []); $values['legendPosition'] = \get_parameter('legendPosition', 0); + $values['show_total_data'] = \get_parameter_switch('show_total_data', 0); return $values; } @@ -364,7 +379,7 @@ class TopNEventByGroupWidget extends Widget $output = ''; $size = parent::getSize(); - + $show_total_data = (bool) $this->values['show_total_data']; $this->values['groupId'] = explode(',', $this->values['groupId'][0]); if (empty($this->values['groupId']) === true) { @@ -425,6 +440,7 @@ class TopNEventByGroupWidget extends Widget } else { $data_pie = []; $labels = []; + $sum = 0; foreach ($result as $row) { if ($row['id_agente'] == 0) { $name = __('System'); @@ -444,7 +460,7 @@ class TopNEventByGroupWidget extends Widget } $name .= ' ('.$row['count'].')'; - + $sum += $row['count']; $labels[] = io_safe_output($name); $data_pie[] = $row['count']; } @@ -474,17 +490,37 @@ class TopNEventByGroupWidget extends Widget break; } - $output .= pie_graph( - $data_pie, - [ - 'legend' => [ - 'display' => true, - 'position' => 'right', - 'align' => 'center', - ], - 'labels' => $labels, - ] - ); + if ($show_total_data === true) { + $output .= ring_graph( + $data_pie, + [ + 'legend' => [ + 'display' => true, + 'position' => 'right', + 'align' => 'center', + ], + 'elements' => [ + 'center' => [ + 'text' => '10000', + 'color' => '#2c3e50', + ], + ], + 'labels' => $labels, + ] + ); + } else { + $output .= pie_graph( + $data_pie, + [ + 'legend' => [ + 'display' => true, + 'position' => 'right', + 'align' => 'center', + ], + 'labels' => $labels, + ] + ); + } } return $output; diff --git a/pandora_console/vendor/artica/phpchartjs/src/Options/Elements.php b/pandora_console/vendor/artica/phpchartjs/src/Options/Elements.php index 116fc46758..b63513bc23 100644 --- a/pandora_console/vendor/artica/phpchartjs/src/Options/Elements.php +++ b/pandora_console/vendor/artica/phpchartjs/src/Options/Elements.php @@ -8,6 +8,7 @@ use Artica\PHPChartJS\Options\Elements\Arc; use Artica\PHPChartJS\Options\Elements\Line; use Artica\PHPChartJS\Options\Elements\Point; use Artica\PHPChartJS\Options\Elements\Rectangle; +use Artica\PHPChartJS\Options\Elements\Center; use JsonSerializable; /** @@ -39,6 +40,11 @@ class Elements implements ArraySerializableInterface, JsonSerializable */ private $arc; + /** + * @var Center + */ + private $center; + /** * @return Rectangle */ @@ -119,6 +125,26 @@ class Elements implements ArraySerializableInterface, JsonSerializable return $this->arc; } + /** + * @return Center + */ + public function center() + { + if (is_null($this->center)) { + $this->center = new Center(); + } + + return $this->center; + } + + /** + * @return Center + */ + public function getCenter() + { + return $this->center; + } + /** * @return array */ diff --git a/pandora_console/vendor/artica/phpchartjs/src/Options/Elements/Center.php b/pandora_console/vendor/artica/phpchartjs/src/Options/Elements/Center.php new file mode 100644 index 0000000000..d8b35b4e89 --- /dev/null +++ b/pandora_console/vendor/artica/phpchartjs/src/Options/Elements/Center.php @@ -0,0 +1,85 @@ +text; + } + + /** + * Set text center graph. + * + * @param string $text Text center graph. + * + * @return self + */ + public function setText(string $text) + { + $this->text = $text; + + return $this; + } + + /** + * Get color text. + * + * @return string + */ + public function getColor() + { + return $this->color; + } + + /** + * Set color text. + * + * @param string $color Color text. + * + * @return self + */ + public function setColor(string $color) + { + $this->color = $color; + + return $this; + } + + /** + * @return array + */ + public function jsonSerialize() + { + return $this->getArrayCopy(); + } +} diff --git a/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php b/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php index 100276743f..b1fcb1bb9f 100644 --- a/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php +++ b/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php @@ -32,6 +32,49 @@ class JavaScript extends Renderer if (empty($this->chart->defaults()->getWatermark()) === false) { $script[] = 'const chart_watermark_'.$this->chart->getId().' = { id: "chart_watermark_'.$this->chart->getId().'", + beforeDraw: (chart) => { + if (Object.prototype.hasOwnProperty.call(chart, "config") && + Object.prototype.hasOwnProperty.call(chart.config.options, "elements") && + Object.prototype.hasOwnProperty.call(chart.config.options.elements, "center")) + { + var ctx = chart.ctx; + + ctx.save(); + + var centerConfig = chart.config.options.elements.center; + var txt = centerConfig.text; + var color = centerConfig.color || "#000"; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + var centerX = (chart.chartArea.left + chart.chartArea.right) / 2; + var centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2; + + var outerRadius = Math.min(ctx.canvas.width, ctx.canvas.height) / 2; + + var padding = 20; + + var innerRadius = outerRadius - padding; + + ctx.font = "30px "; + var sidePaddingCalculated = (92/100) * (innerRadius * 2) + + var stringWidth = ctx.measureText(txt).width; + var elementWidth = (innerRadius * 2) - sidePaddingCalculated; + + var widthRatio = elementWidth / stringWidth; + var newFontSize = Math.floor(30 * widthRatio); + var elementHeight = (innerRadius * 2); + + var fontSizeToUse = Math.min(newFontSize, elementHeight); + + ctx.font = fontSizeToUse + "px Lato, sans-serif"; + ctx.fillStyle = color; + + ctx.fillText(txt, centerX, centerY); + + ctx.restore(); + } + }, afterDraw: (chart) => { const image = new Image(); image.src = "'.$this->chart->defaults()->getWatermark()->getSrc().'"; From eac656dfc02ba8c2effab7ae1a7c96ae2505dc82 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 22 Jun 2023 15:08:52 +0200 Subject: [PATCH 06/30] #11059 fixed setted number --- .../include/lib/Dashboard/Widgets/top_n_events_by_group.php | 2 +- .../vendor/artica/phpchartjs/src/Renderer/JavaScript.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php index 0a47ea71b8..3c1e6a22bf 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php +++ b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php @@ -501,7 +501,7 @@ class TopNEventByGroupWidget extends Widget ], 'elements' => [ 'center' => [ - 'text' => '10000', + 'text' => $sum, 'color' => '#2c3e50', ], ], diff --git a/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php b/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php index b1fcb1bb9f..8786ca6fe8 100644 --- a/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php +++ b/pandora_console/vendor/artica/phpchartjs/src/Renderer/JavaScript.php @@ -56,7 +56,7 @@ class JavaScript extends Renderer var innerRadius = outerRadius - padding; ctx.font = "30px "; - var sidePaddingCalculated = (92/100) * (innerRadius * 2) + var sidePaddingCalculated = (93/100) * (innerRadius * 2) var stringWidth = ctx.measureText(txt).width; var elementWidth = (innerRadius * 2) - sidePaddingCalculated; From ada52da89812fed6b55c7914ef19ccb3d794ca8f Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Thu, 29 Jun 2023 16:09:07 +0200 Subject: [PATCH 07/30] #10850 agent detail view added to favorites system --- pandora_console/operation/agentes/estado_agente.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pandora_console/operation/agentes/estado_agente.php b/pandora_console/operation/agentes/estado_agente.php index 3a130c1d76..7e36c63491 100644 --- a/pandora_console/operation/agentes/estado_agente.php +++ b/pandora_console/operation/agentes/estado_agente.php @@ -205,6 +205,14 @@ if ($loaded_filter['id_filter'] > 0) { if (is_array($policies) === false) { $policies = json_decode(io_safe_output($policies), true); } + + // Fav menu. + $fav_menu = [ + 'id_element' => $loaded_filter['id_filter'], + 'url' => 'operation/agentes/estado_agente&pure=&load_filter=1&filter_id='.$loaded_filter['id_filter'], + 'label' => $loaded_filter['id_name'], + 'section' => 'Agente', + ]; } if ((bool) check_acl($config['id_user'], 0, 'AW') === true) { @@ -249,7 +257,8 @@ ui_print_standard_header( 'link' => '', 'label' => __('Views'), ], - ] + ], + (empty($fav_menu) === true) ? [] : $fav_menu ); if ((bool) $strict_user === false) { From 4ff400f54cb0dc826cc016614628b6e8906d14dc Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 3 Jul 2023 13:18:50 +0200 Subject: [PATCH 08/30] #11022 Add agent usage details --- pandora_console/godmode/setup/license.php | 101 +++++++++++++++++++++- 1 file changed, 97 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/setup/license.php b/pandora_console/godmode/setup/license.php index e11c54eec9..e3e25935f9 100644 --- a/pandora_console/godmode/setup/license.php +++ b/pandora_console/godmode/setup/license.php @@ -189,7 +189,8 @@ $table->data[1][1] = html_print_label_input_block( 255, true, true - ).' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) + ) + // .' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) ); $table->data[2][0] = html_print_label_input_block( @@ -202,7 +203,8 @@ $table->data[2][0] = html_print_label_input_block( 255, true, true - ).' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) + ) + // .' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) ); $table->data[2][1] = html_print_label_input_block( @@ -215,7 +217,8 @@ $table->data[2][1] = html_print_label_input_block( 255, true, true - ).' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) + ) + // .' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) ); $table->data[3][0] = html_print_label_input_block( @@ -228,7 +231,8 @@ $table->data[3][0] = html_print_label_input_block( 255, true, true - ).' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) + ) + // .' '.($license['limit_mode'] == 0 ? __('agents') : __('modules')) ); $table->data[3][1] = html_print_label_input_block( @@ -325,6 +329,18 @@ if (enterprise_installed() || defined('DESTDIR')) { ], true ); + $buttons .= html_print_button( + __('Show agent usage details'), + 'agents_details', + false, + 'show_agents_details_dialog()', + [ + 'fixed_id' => 'button-agents_details', + 'icon' => 'next', + 'mode' => 'secondary', + ], + true + ); html_print_action_buttons( $buttons @@ -369,3 +385,80 @@ if (enterprise_hook('print_activate_licence_dialog') == ENTERPRISE_NOT_HOOK) { echo ''; echo ''; } + +$table = new stdClass(); +$table->width = '100%'; +$table->class = 'databox filter-table-adv'; +$table->size = []; +$table->size[0] = '50%'; +$table->size[1] = '50%'; +$table->data = []; +$table->colspan = []; + +$table->data[0][0] = html_print_label_input_block( + __('Total Agents'), + html_print_input_text( + 'total_agents', + $total_agents, + '', + 30, + 255, + true, + true + ) +); + +$table->data[0][1] = html_print_label_input_block( + __('Network & other devices'), + html_print_input_text( + 'type_network', + $network_others, + '', + 30, + 255, + true, + true + ) +); + +$table->data[1][0] = html_print_label_input_block( + __('Workstations'), + html_print_input_text( + 'type_workstation', + $workstations, + '', + 30, + 255, + true, + true + ) +); + +$table->data[1][1] = html_print_label_input_block( + __('Servers'), + html_print_input_text( + 'type_server', + $servers, + '', + 30, + 255, + true, + true + ) +); + +$table->data[2][0] = html_print_label_input_block( + __('Show disabled agents'), + html_print_checkbox_switch( + 'show_disabled_agents', + 1, + 1, + true, + false, + 'show_disabled_agents()' + ) +); + +echo ''; \ No newline at end of file From d25a5e2b8991f01602c468c92f3775baf984b240 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Mon, 3 Jul 2023 17:37:01 +0200 Subject: [PATCH 09/30] #11543 Added login screen changes in white mode --- pandora_console/general/login_page.php | 10 ++++++---- pandora_console/godmode/users/user_management.php | 10 +++++++++- pandora_console/include/styles/login.css | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pandora_console/general/login_page.php b/pandora_console/general/login_page.php index d3d9c7e686..2b2d4ffa30 100755 --- a/pandora_console/general/login_page.php +++ b/pandora_console/general/login_page.php @@ -30,7 +30,7 @@ require_once __DIR__.'/../include/functions_html.php'; echo '