summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2017-09-19 17:48:11 +0200
committerGitHub <noreply@github.com>2017-09-19 17:48:11 +0200
commit64edd1e8659406d638ec44bf6bc2e69ff7e31ef0 (patch)
treee11680ca012ae863235c9ea3c74a19684b7be7a6 /js
parent5abefb689bc17dc26e747164f9251926faade358 (diff)
downloadbugzilla-64edd1e8659406d638ec44bf6bc2e69ff7e31ef0.tar.gz
bugzilla-64edd1e8659406d638ec44bf6bc2e69ff7e31ef0.tar.xz
Bug 1400949 - Password requirements not stated
Diffstat (limited to 'js')
-rw-r--r--js/account.js129
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')