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