diff --git a/powerdnsadmin/routes/index.py b/powerdnsadmin/routes/index.py index 8df508b..f27a5a5 100644 --- a/powerdnsadmin/routes/index.py +++ b/powerdnsadmin/routes/index.py @@ -675,6 +675,16 @@ def password_quality_check(user, password): return False return True + +@index_bp.route('/ratepass', methods=['POST']) +def rate_password(): + + username = request.form.get('username') + fname = request.form.get('fname') + lname = request.form.get('name') + email = request.form.get('email') + + @index_bp.route('/register', methods=['GET', 'POST']) def register(): if Setting().get('signup_enabled'): diff --git a/powerdnsadmin/templates/register.html b/powerdnsadmin/templates/register.html index fe9347a..3cfde7b 100644 --- a/powerdnsadmin/templates/register.html +++ b/powerdnsadmin/templates/register.html @@ -4,6 +4,7 @@ + Register - {{ SITE_NAME }} @@ -63,6 +64,7 @@
+
@@ -167,6 +169,83 @@ } }); + + + + + + + + + + {% if use_package %} + 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) + } + } + }) + var timer = null; + function send_pass() { + var fname = document.getElementById('firstname').value; + var lname = document.getElementById('lastname').value; + var email = document.getElementById('email').value; + var username = document.getElementById('username').value; + var password = document.getElementById('password').value; + + $.ajax({ + url: "/ratepassword", + // headers: { "X-CSRFToken": getCookie("csrftoken") }, + type: "post", + data : {'fname': fname, 'lname': lname, 'email' : email, 'username' : username, 'password': password}, + success: function(response) { + console.log('Submission was successful.'); + console.log("Resp = " , response) + console.log('sccess') + var x = document.getElementById('policy-err'); + console.log(response['feedback']) + x.innerHTML = response['feedback'] // response['feedback'] + var strength; + switch (response['strength']) { + case 'very weak': + strength = "Very weak"; + break; + case 'weak': + strength = "Weak"; + break; + case 'medium': + strength = "Medium"; + break; + case 'strong': + strength = "Strong"; + break; + } + var y = document.getElementById('password-text') + y.innerHTML = strength; + }, + error: function(xhr) { + console.log("Ajax call to rate pass, has failed") + } + }); + timer = null; // turn the timer off + } + // handling password complexity requirements message + $(':input').on('keyup', function() { + + var seconds = 1.5; + if (timer == null) { // if user typed sth and timer is not running, then start one + timer = setTimeout(send_pass, seconds*1000); + } + else { // if user typed sth and timer is still up and running,then reset timer + clearTimeout(timer); + timer = null; + timer = setTimeout(send_pass, seconds*1000); + } + }); + {% endif %}