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('
'); + $("#" + idMsg).empty(); + } + + $("#err_msg").empty(); + $("#err_msg").html("\n\n" + err_messge); + + $("#" + idMsg) + .dialog({ + height: 250, + width: 528, + opacity: 1, + modal: true, + position: { + my: "center", + at: "center", + of: window, + collision: "fit" + }, + title: data.title, + buttons: [ + { + class: + "ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next", + text: "Retry", + click: function(e) { + handleConnection(); + } + }, + { + class: + "ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-cancel", + text: "Close", + click: function() { + $(this).dialog("close"); + } + } + ], + + open: function(event, ui) { + $(".ui-widget-overlay").addClass("error-modal-opened"); + }, + close: function(event, ui) { + $(".ui-widget-overlay").removeClass("error-modal-opened"); + } + }) + .show(); +} + +function reveal_password(name) { + var passwordElement = $("#password-" + name); + var revealElement = $("#reveal_password_" + name); + var imagesPath = ""; + + if ($("#hidden-metaconsole_activated").val() == 1) { + imagesPath = "../../images/"; + } else { + imagesPath = "images/"; + } + + if (passwordElement.attr("type") == "password") { + passwordElement.attr("type", "text"); + revealElement.attr("src", imagesPath + "eye_hide.png"); + } else { + passwordElement.attr("type", "password"); + revealElement.attr("src", imagesPath + "eye_show.png"); + } +}