diff --git a/pandora_console/extensions/quick_shell.php b/pandora_console/extensions/quick_shell.php
index 27807e6029..5505caa3af 100644
--- a/pandora_console/extensions/quick_shell.php
+++ b/pandora_console/extensions/quick_shell.php
@@ -468,6 +468,7 @@ function quickShellSettings()
100,
true
);
+ $hidden->data[1][1] .= ui_print_reveal_password('gotty_pass', true);
html_print_table($t);
diff --git a/pandora_console/godmode/setup/setup_auth.php b/pandora_console/godmode/setup/setup_auth.php
index db436224c3..eba3b44e0d 100644
--- a/pandora_console/godmode/setup/setup_auth.php
+++ b/pandora_console/godmode/setup/setup_auth.php
@@ -189,6 +189,10 @@ if (is_ajax()) {
100,
true
);
+ $row['control'] .= ui_print_reveal_password(
+ 'ldap_admin_pass',
+ true
+ );
$table->data['ldap_admin_pass'] = $row;
break;
diff --git a/pandora_console/godmode/setup/setup_ehorus.php b/pandora_console/godmode/setup/setup_ehorus.php
index 1c3650418b..1c522593ee 100644
--- a/pandora_console/godmode/setup/setup_ehorus.php
+++ b/pandora_console/godmode/setup/setup_ehorus.php
@@ -82,6 +82,7 @@ $table_remote->data['ehorus_user'] = $row;
$row = [];
$row['name'] = __('Password');
$row['control'] = html_print_input_password('ehorus_pass', io_output_password($config['ehorus_pass']), '', 30, 100, true);
+$row['control'] .= ui_print_reveal_password('ehorus_pass', true);
$table_remote->data['ehorus_pass'] = $row;
// Directory hostname.
diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php
index f9160e3864..29334c3271 100644
--- a/pandora_console/godmode/setup/setup_general.php
+++ b/pandora_console/godmode/setup/setup_general.php
@@ -116,7 +116,8 @@ $table->data[$i][0] = __('Phantomjs bin directory');
$table->data[$i++][1] = html_print_input_text('phantomjs_bin', io_safe_output($config['phantomjs_bin']), '', 30, 100, true);
$table->data[$i][0] = __('Auto login (hash) password');
-$table->data[$i++][1] = html_print_input_password('loginhash_pwd', io_output_password($config['loginhash_pwd']), '', 15, 15, true);
+$table->data[$i][1] = html_print_input_password('loginhash_pwd', io_output_password($config['loginhash_pwd']), '', 15, 15, true);
+$table->data[$i++][1] .= ui_print_reveal_password('loginhash_pwd', true);
$table->data[$i][0] = __('Time source');
$sources['system'] = __('System');
@@ -154,7 +155,8 @@ if (isset($_POST['list_ACL_IPs_for_API'])) {
$table->data[$i++][1] = html_print_textarea('list_ACL_IPs_for_API', 2, 25, $list_ACL_IPs_for_API, 'style="height: 50px; width: 300px"', true);
$table->data[$i][0] = __('API password');
-$table->data[$i++][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true);
+$table->data[$i][1] = html_print_input_password('api_password', io_output_password($config['api_password']), '', 25, 255, true);
+$table->data[$i++][1] .= ui_print_reveal_password('api_password', true);
$table->data[$i][0] = __('Enable GIS features');
$table->data[$i++][1] = html_print_checkbox_switch('activate_gis', 1, $config['activate_gis'], true);
@@ -379,6 +381,7 @@ $table_mail_conf->data[5][1] = html_print_input_text('email_username', $config['
$table_mail_conf->data[6][0] = __('Email password');
$table_mail_conf->data[6][1] = html_print_input_password('email_password', io_output_password($config['email_password']), '', 30, 100, true);
+$table_mail_conf->data[6][1] .= ui_print_reveal_password('email_password', true);
$uniqid = uniqid();
diff --git a/pandora_console/godmode/setup/setup_integria.php b/pandora_console/godmode/setup/setup_integria.php
index e172dda50b..0113c6f024 100644
--- a/pandora_console/godmode/setup/setup_integria.php
+++ b/pandora_console/godmode/setup/setup_integria.php
@@ -221,6 +221,7 @@ $table_remote->data['integria_user'] = $row;
$row = [];
$row['name'] = __('Password');
$row['control'] = html_print_input_password('integria_pass', io_output_password($config['integria_pass']), '', 30, 100, true);
+$row['control'] .= ui_print_reveal_password('integria_pass', true);
$table_remote->data['integria_pass'] = $row;
// Integria hostname.
@@ -233,6 +234,7 @@ $table_remote->data['integria_hostname'] = $row;
$row = [];
$row['name'] = __('API Password');
$row['control'] = html_print_input_password('integria_api_pass', io_output_password($config['integria_api_pass']), '', 30, 100, true);
+$row['control'] .= ui_print_reveal_password('integria_api_pass', true);
$table_remote->data['integria_api_pass'] = $row;
// Request timeout.
diff --git a/pandora_console/images/eye_hide.png b/pandora_console/images/eye_hide.png
new file mode 100644
index 0000000000..8bed55e599
Binary files /dev/null and b/pandora_console/images/eye_hide.png differ
diff --git a/pandora_console/images/eye_show.png b/pandora_console/images/eye_show.png
new file mode 100644
index 0000000000..6447f0a0d7
Binary files /dev/null and b/pandora_console/images/eye_show.png differ
diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php
index 1daffb5538..2506b3e051 100755
--- a/pandora_console/include/functions_ui.php
+++ b/pandora_console/include/functions_ui.php
@@ -6132,3 +6132,29 @@ function ui_print_message_dialog($title, $text, $id='', $img='', $text_button=''
echo '';
echo '';
}
+
+
+/**
+ * Generate a button for reveal the content of the password field.
+ *
+ * @param string $name Name of the field.
+ * @param boolean $return If true, return the string with the formed element.
+ *
+ * @return string
+ */
+function ui_print_reveal_password(string $name, bool $return=false)
+{
+ if (is_metaconsole()) {
+ $imagePath = '../../images/';
+ } else {
+ $imagePath = 'images/';
+ }
+
+ $output = ' ';
+
+ if ($return === true) {
+ return $output;
+ }
+
+ echo $output;
+}
diff --git a/pandora_console/include/javascript/pandora_ui.js b/pandora_console/include/javascript/pandora_ui.js
index 15b7f83217..c2b6a86e01 100644
--- a/pandora_console/include/javascript/pandora_ui.js
+++ b/pandora_console/include/javascript/pandora_ui.js
@@ -494,3 +494,81 @@ function generalShowMsg(data, idMsg) {
]
});
}
+
+function infoMessage(data, idMsg) {
+ var title = data.title;
+ var err_messge = data.text;
+
+ if (idMsg == null) {
+ idMsg = uniqId();
+ }
+
+ if ($("#" + idMsg).length === 0) {
+ $("body").append('