From 3f82839c53e7c5d3a241ecec9c4e489563530fbf Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 11 Jan 2023 13:13:17 +0530 Subject: [PATCH] fix: strength check on password control (#19561) * fix: strength check on password control * fix: no password strength verification on login --- frappe/public/js/frappe/desk.js | 1 + .../js/frappe/form/controls/password.js | 21 ++++++++++++------- frappe/www/update-password.html | 3 +-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 1e29e1a065..43263d5632 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -447,6 +447,7 @@ frappe.Application = class Application { } }, }); + dialog.get_field("password").disable_password_checks(); dialog.set_primary_action(__("Login"), () => { dialog.set_message(__("Authenticating...")); frappe.call({ diff --git a/frappe/public/js/frappe/form/controls/password.js b/frappe/public/js/frappe/form/controls/password.js index 34113d39ba..f7e5165472 100644 --- a/frappe/public/js/frappe/form/controls/password.js +++ b/frappe/public/js/frappe/form/controls/password.js @@ -2,6 +2,7 @@ frappe.ui.form.ControlPassword = class ControlPassword extends frappe.ui.form.Co static input_type = "password"; make() { super.make(); + this.enable_password_checks = true; } make_input() { var me = this; @@ -23,7 +24,15 @@ frappe.ui.form.ControlPassword = class ControlPassword extends frappe.ui.form.Co }, 500); }); } + + disable_password_checks() { + this.enable_password_checks = false; + } + get_password_strength(value) { + if (!this.enable_password_checks) { + return; + } var me = this; frappe.call({ type: "POST", @@ -32,13 +41,9 @@ frappe.ui.form.ControlPassword = class ControlPassword extends frappe.ui.form.Co new_password: value || "", }, callback: function (r) { - if (r.message && r.message.entropy) { - var score = r.message.score, - feedback = r.message.feedback; - - feedback.crack_time_display = r.message.crack_time_display; - - var indicators = ["grey", "red", "orange", "yellow", "green"]; + if (r.message) { + let score = r.message.score; + var indicators = ["red", "red", "orange", "yellow", "green"]; me.set_strength_indicator(indicators[score]); } }, @@ -47,6 +52,6 @@ frappe.ui.form.ControlPassword = class ControlPassword extends frappe.ui.form.Co set_strength_indicator(color) { var message = __("Include symbols, numbers and capital letters in the password"); this.indicator.removeClass().addClass("password-strength-indicator indicator " + color); - this.message.html(message).removeClass("hidden"); + this.message.html(message).toggleClass("hidden", color == "green"); } }; diff --git a/frappe/www/update-password.html b/frappe/www/update-password.html index 586554efce..7351311def 100644 --- a/frappe/www/update-password.html +++ b/frappe/www/update-password.html @@ -161,11 +161,10 @@ frappe.ready(function() { .text("{{ _('Invalid Password') }}"); }, 200: function(r) { - if (r.message && r.message.score) { + if (r.message) { var score = r.message.score, feedback = r.message.feedback; - feedback.crack_time_display = r.message.crack_time_display; feedback.score = score; if(feedback.password_policy_validation_passed){