tazpanel annotate lib/user.js @ rev 265

installer: use css, make js generic
author Dominique Corbex <domcox@slitaz.org>
date Thu Mar 08 10:31:58 2012 +0100 (2012-03-08)
parents
children bc85a363a4ba
rev   line source
domcox@265 1 /*
domcox@265 2 Login and password validation
domcox@265 3 Copyright (C) 2012 SliTaz GNU/linux - GNU gpl v3
domcox@265 4 */
domcox@265 5
domcox@265 6 ////
domcox@265 7 // Login validation - typical use:
domcox@265 8 // <input id="login1" onkeyup="checkLogin('login1','msg1'); return false;" />
domcox@265 9 // <span id="msg1"></span>
domcox@265 10
domcox@265 11 function checkLogin(user,message){
domcox@265 12 var login = document.getElementById(user);
domcox@265 13 var msg = document.getElementById(message);
domcox@265 14 var enoughRegex = new RegExp("(?=.{3,}).*", "g");
domcox@265 15 var incharRegex = new RegExp("^[A-Za-z0-9_-]{3,32}$");
domcox@265 16 if (false == enoughRegex.test(login.value)) {
domcox@265 17 msg.innerHTML ="<span class=\"msg-nok\">&#x2716; Too short</span>";
domcox@265 18 return false;
domcox@265 19 } else if (login.value > 32) {
domcox@265 20 msg.innerHTML ="<span class=\"msg-nok\">&#x2716; Too long</span>";
domcox@265 21 return false;
domcox@265 22 } else if (false == incharRegex.test(login.value)) {
domcox@265 23 msg.innerHTML ="<span class=\"msg-nok\">&#x2716; Invalid chars</span>";
domcox@265 24 return false;
domcox@265 25 } else {
domcox@265 26 msg.innerHTML = "<span class=\"msg-ok\">&#x2714;</span";
domcox@265 27 }
domcox@265 28 }
domcox@265 29
domcox@265 30 ////
domcox@265 31 // Password validation - typical use:
domcox@265 32 // <input type="password" id="pass1" onkeyup="checkLogin('pass1','pass2','msg2'); return false;" />
domcox@265 33 // <input type="password" id="pass2" onkeyup="checkLogin('pass1','pass2','msg2'); return false;" />
domcox@265 34 // <span id="msg2"></span>
domcox@265 35
domcox@265 36 function checkPwd(password,confirm,message){
domcox@265 37 var pwd1 = document.getElementById(password);
domcox@265 38 var pwd2 = document.getElementById(confirm);
domcox@265 39 var msg = document.getElementById(message);
domcox@265 40 if(pwd1.value == pwd2.value){
domcox@265 41 // passwords match.
domcox@265 42 pwd2.classList.remove('alert');
domcox@265 43 // various checks
domcox@265 44 var enoughRegex = new RegExp("(?=.{3,}).*", "g");
domcox@265 45 var incharRegex = new RegExp("^[A-Za-z0-9!@#$%^&*()_]{3,40}$");
domcox@265 46 var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
domcox@265 47 var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
domcox@265 48 if (pwd1.value.length==0) {
domcox@265 49 msg.innerHTML = "<span class=\"msg-ok\">&#x2714; </span><span class=\"msg-warn\">(No Password!)</span>";
domcox@265 50 } else if (pwd1.value.length > 40) {
domcox@265 51 msg.innerHTML ="<span class=\"msg-nok\">&#x2716; Too long!</span>";
domcox@265 52 return false;
domcox@265 53 } else if (false == enoughRegex.test(pwd1.value)) {
domcox@265 54 msg.innerHTML ="<span class=\"msg-nok\">&#x2716; Too short!</span>";
domcox@265 55 return false;
domcox@265 56 } else if (false == incharRegex.test(pwd1.value)) {
domcox@265 57 msg.innerHTML ="<span class=\"msg-nok\">&#x2716; Invalid chars!</span>";
domcox@265 58 return false;
domcox@265 59 } else if (strongRegex.test(pwd1.value)) {
domcox@265 60 msg.innerHTML = "<span class=\"msg-ok\">&#x2714; (Strong)</span>";
domcox@265 61 } else if (mediumRegex.test(pwd1.value)) {
domcox@265 62 msg.innerHTML = "<span class=\"msg-ok\">&#x2714; </span><span class=\"msg-warn\">(Medium!)</span>";
domcox@265 63 } else {
domcox@265 64 msg.innerHTML = "<span class=\"msg-ok\">&#x2714; </span><span class=\"msg-warn\">(Weak!)</span>";
domcox@265 65 }
domcox@265 66 } else {
domcox@265 67 // passwords do not match.
domcox@265 68 pwd2.classList.add('alert');
domcox@265 69 msg.innerHTML = "<span class=\"msg-nok\">&#x2716; Do Not Match!</span>"
domcox@265 70 return false;
domcox@265 71 }
domcox@265 72 }