diff options
author | Dylan William Hardison <dylan@hardison.net> | 2017-09-19 17:48:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-19 17:48:11 +0200 |
commit | 64edd1e8659406d638ec44bf6bc2e69ff7e31ef0 (patch) | |
tree | e11680ca012ae863235c9ea3c74a19684b7be7a6 /js | |
parent | 5abefb689bc17dc26e747164f9251926faade358 (diff) | |
download | bugzilla-64edd1e8659406d638ec44bf6bc2e69ff7e31ef0.tar.gz bugzilla-64edd1e8659406d638ec44bf6bc2e69ff7e31ef0.tar.xz |
Bug 1400949 - Password requirements not stated
Diffstat (limited to 'js')
-rw-r--r-- | js/account.js | 129 |
1 files changed, 12 insertions, 117 deletions
diff --git a/js/account.js b/js/account.js index 8642cadbd..87e1e01f2 100644 --- a/js/account.js +++ b/js/account.js @@ -7,100 +7,6 @@ $(function() { - function make_password_strength($password) { - return function(event) { - var password = $password.val(); - var missing_features = {"upper": true, "lower": true, "numbers": true, "symbols": true, "length12": true}; - var features = [], - charset = 0, - score = 0, - min_features = 3; - - $("#password-meter").show(); - $("#password-meter-label").show(); - - if (password.match(/[A-Z]/)) { - delete missing_features.upper; - features.push("upper"); - charset += 26; - } - if (password.match(/[a-z]/)) { - delete missing_features.lower; - features.push("lower"); - charset += 26; - } - if (password.match(/[0-9]/)) { - delete missing_features.numbers; - features.push("numbers"); - charset += 10; - } - if (password.match(/[^A-Za-z0-9]/)) { - delete missing_features.symbols; - features.push("symbols"); - charset += 30; // there are 30-32 typable characters on a keyboard. - } - if (password.length > 12) { - delete missing_features.length12; - features.push("length12"); - } - - $("#password-features li").removeClass("feature-ok"); - features.forEach(function(name) { - $("#password-feature-" + name).addClass("feature-ok"); - }); - - var entropy = Math.floor(Math.log(charset) * (password.length / Math.log(2))); - if (entropy) { - score = entropy/128; - } - - $password.get(0).setCustomValidity(""); - if (features.length < min_features) { - $("#password-msg") - .text("Password does not meet requirements") - .attr("class", "password-bad"); - $password.get(0).setCustomValidity($("#password-msg").text()); - } - else if (password.length < 8) { - $("#password-msg") - .text("Password is too short") - .attr("class", "password-bad"); - $password.get(0).setCustomValidity($("#password-msg").text()); - } - else { - $("#password-msg") - .text("Password meets requirements") - .attr("class", "password-good"); - $password.get(0).setCustomValidity(""); - } - - if (entropy < 60) { - $("#password-meter") - .removeClass("meter-good meter-ok") - .addClass("meter-bad"); - } - else if (entropy >= 120) { - $("#password-meter") - .removeClass("meter-bad meter-ok") - .addClass("meter-good"); - } - else if (entropy > 60) { - $("#password-meter") - .removeClass("meter-bad meter-good") - .addClass("meter-ok"); - } - - if (score === 0) { - score = 0.01; - $("#password-meter") - .removeClass("meter-good meter-ok") - .addClass("meter-bad"); - } - - $("#password-meter").width(Math.max(0, Math.min($password.width()+10, Math.ceil(($password.width()+10) * score)))); - }; - } - function make_password_confirm($password1, $password2) { return function (event) { if ($password1.val() != $password2.val()) { @@ -112,9 +18,8 @@ $(function() { }; } var password1_sel, password2_sel; - var complexity = $("#password-features").data("password-complexity"); var page = $("#password-features").data("password-page"); - var check_password_strength, check_password_confirm; + var check_password_confirm; if (page == "account") { $("#new_password1, #new_password2, #new_login_name").change(function() { @@ -122,31 +27,21 @@ $(function() { }); } - if (complexity == "bmo") { - if (page == "confirm") { - password1_sel = "#passwd1"; - password2_sel = "#passwd2"; - } - else { - password1_sel = "#new_password1"; - password2_sel = "#new_password2"; - } - $("#password-features").show(); - - check_password_strength = make_password_strength($(password1_sel)); - check_password_confirm = make_password_confirm($(password1_sel), $(password2_sel)); - - $(password1_sel).on("input", check_password_strength); - $(password1_sel).on("focus", check_password_strength); - - $(password1_sel).on("blur", check_password_confirm); - $(password1_sel).on("change", check_password_confirm); - $(password2_sel).on("input", check_password_confirm); + if (page == "confirm") { + password1_sel = "#passwd1"; + password2_sel = "#passwd2"; } else { - $("#password-features").hide(); + password1_sel = "#new_password1"; + password2_sel = "#new_password2"; } + check_password_confirm = make_password_confirm($(password1_sel), $(password2_sel)); + + $(password1_sel).on("blur", check_password_confirm); + $(password1_sel).on("change", check_password_confirm); + $(password2_sel).on("input", check_password_confirm); + // account disabling $('#account-disable-toggle') |