diff --git a/powerdnsadmin/routes/index.py b/powerdnsadmin/routes/index.py index c0767bc..bf98703 100644 --- a/powerdnsadmin/routes/index.py +++ b/powerdnsadmin/routes/index.py @@ -771,7 +771,7 @@ def register(): lastname=lastname, email=email) - if not password_quality_check(user, password): + if Setting().get('zxcvbn_enabled') == False and not password_quality_check(user, password): return render_template('register.html', error="Password does not meet the policy requirements") try: result = user.create_local_user() diff --git a/powerdnsadmin/routes/user.py b/powerdnsadmin/routes/user.py index 98f00a1..924b936 100644 --- a/powerdnsadmin/routes/user.py +++ b/powerdnsadmin/routes/user.py @@ -46,8 +46,7 @@ def profile(): lastname = request.form.get('lastname', '').strip() email = request.form.get('email', '').strip() new_password = request.form.get('password', '') - if not password_quality_check(current_user, new_password): - # return render_template('errors/400.html', msg="Password does not meet the policy requirements") + if Setting().get('zxcvbn_enabled') == False and not password_quality_check(current_user, new_password): return render_template('user_profile.html', change_pass_tab = True, user_info = current_user.get_user_info_by_username() , zxcvbn_enabled=Setting().get('zxcvbn_enabled'), error="Password does not meet the policy requirements") else: firstname = lastname = email = new_password = '' diff --git a/powerdnsadmin/templates/password_policy_macro.html b/powerdnsadmin/templates/password_policy_macro.html index 4427e22..3aa3ddf 100644 --- a/powerdnsadmin/templates/password_policy_macro.html +++ b/powerdnsadmin/templates/password_policy_macro.html @@ -19,9 +19,8 @@ $.ajaxSetup({ var n_digits = parseInt("{{ pwd_min_digits }}"); var n_special = parseInt("{{ pwd_min_special }}"); var must_not_contain = "{{ pwd_must_not_contain }}"; - var pattern = "^(?=(?:.*[0-9]){" + n_digits + ",})(?=(?:.*[a-z]){" + n_lower + ",})(?=(?:.*[A-Z]){" + n_upper + ",})(?=(?:.*[[!@#$%^&*()_+]){" + n_special + ",}).+$"; - - var PasswordRegEx = new RegExp(pattern, 'm'); + // var pattern = "^(?=(?:.*[0-9]){" + n_digits + ",})(?=(?:.*[a-z]){" + n_lower + ",})(?=(?:.*[A-Z]){" + n_upper + ",})(?=(?:.*[[!@#$%^&*()_+]){" + n_special + ",}).+$"; + // var PasswordRegEx = new RegExp(pattern, 'm'); var upper_found = 0; var lower_found = 0; var digits_found = 0; @@ -31,10 +30,10 @@ $.ajaxSetup({ var digits_pattern = /[0-9]/g; var special_pattern = /[[!@#$%^&*()_+]/g; for (var i = 0; i < pass.length; i++) { - if (pass[i].match(special_pattern)) special_found++; - else if (pass[i].match(lower_pattern)) lower_found++; - else if (pass[i].match(upper_pattern)) upper_found++; - else if (pass[i].match(digits_pattern)) digits_found++; + if (pass[i].match(special_pattern)) special_found++; + else if (pass[i].match(lower_pattern)) lower_found++; + else if (pass[i].match(upper_pattern)) upper_found++; + else if (pass[i].match(digits_pattern)) digits_found++; } var msg = ""; if (pass.length < pwd_len) msg += 'at least ' + pwd_len + ' character(s)
' diff --git a/powerdnsadmin/templates/register.html b/powerdnsadmin/templates/register.html index e9fe9a7..bffdce7 100644 --- a/powerdnsadmin/templates/register.html +++ b/powerdnsadmin/templates/register.html @@ -123,31 +123,16 @@ var pass = input.value; if (rpass != pass || rpass.length == 0 || pass.length == 0) { document.getElementById('pwd-submit').disabled = true; - // document.getElementById('retype-err').innerHTML = 'Password confirmation does not match'; } - // else { - // document.getElementById('retype-err').innerHTML = ''; - // } var fname = document.getElementById('firstname').value; var lname = document.getElementById('lastname').value; var email = document.getElementById('email').value; var username = document.getElementById('username').value; charbased_password_policy(fname, lname, username, email, pass, rpass); + }); - - - {% else %} - // var csrftoken = $('meta[name=csrf-token]').attr('content') - - // $.ajaxSetup({ - // beforeSend: function(xhr, settings) { - // if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { - // xhr.setRequestHeader("X-CSRFToken", csrftoken) - // } - // } - // }) {% endif %}