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 %}