projects
/
platal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Only uses autoload to require validation classes.
[platal.git]
/
htdocs
/
javascript
/
xorg.js
diff --git
a/htdocs/javascript/xorg.js
b/htdocs/javascript/xorg.js
index
2a4a19c
..
ccc9c0b
100644
(file)
--- a/
htdocs/javascript/xorg.js
+++ b/
htdocs/javascript/xorg.js
@@
-1,5
+1,5
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2003-20
09
Polytechnique.org *
+ * Copyright (C) 2003-20
10
Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-259,39
+259,54
@@
function auto_links() {
// {{{ function checkPassword
// {{{ function checkPassword
-function getType(c
har
) {
- if (c
har >= 'a' && char
<= 'z') {
+function getType(c) {
+ if (c
>= 'a' && c
<= 'z') {
return 1;
return 1;
- } else if (c
har >= 'A' && char
<= 'Z') {
+ } else if (c
>= 'A' && c
<= 'Z') {
return 2;
return 2;
- } else if (c
har >= '0' && char
<= '9') {
+ } else if (c
>= '0' && c
<= '9') {
return 3;
} else {
return 4;
}
}
return 3;
} else {
return 4;
}
}
-function
checkPassword(box, okLabel
) {
+function
differentTypes(password
) {
var prev = 0;
var prev = 0;
+
+ for (i = 0 ; i < password.length ; ++i) {
+ var type = getType(password.charAt(i));
+ if (prev != 0 && prev != type) {
+ return true;
+ }
+ prev = type;
+ }
+ return false;
+}
+
+function passwordStrength(password) {
var prop = 0;
var prop = 0;
- var pass = box.value;
- var types = Array(0, 0, 0, 0, 0);
+ var prev = 0;
var firstType = true;
var firstType = true;
- for (i = 0 ; i < pass.length ; ++i) {
- type = getType(pass.charAt(i));
+ var types = Array(0, 0, 0, 0, 0);
+
+ for (i = 0 ; i < password.length ; ++i) {
+ var type = getType(password.charAt(i));
if (prev != 0 && prev != type) {
prop += 5;
if (prev != 0 && prev != type) {
prop += 5;
+ firstType = false;
}
prop += i;
if (types[type] == 0 && !firstType) {
prop += 15;
}
prop += i;
if (types[type] == 0 && !firstType) {
prop += 15;
- } else {
- firstType = false;
}
types[type]++;
prev = type;
}
}
types[type]++;
prev = type;
}
- if (pass.length < 6) {
+ if (password.length < 6) {
+ prop *= 0.75;
+ }
+ if (firstType) {
prop *= 0.75;
}
if (prop > 100) {
prop *= 0.75;
}
if (prop > 100) {
@@
-299,11
+314,19
@@
function checkPassword(box, okLabel) {
} else if (prop < 0) {
prop = 0;
}
} else if (prop < 0) {
prop = 0;
}
+
+ return prop;
+}
+
+function checkPassword(box, okLabel) {
+ var password = box.value;
+ var prop = passwordStrength(password);
+
if (prop >= 60) {
color = "#4f4";
bgcolor = "#050";
ok = true;
if (prop >= 60) {
color = "#4f4";
bgcolor = "#050";
ok = true;
- } else if (prop >=
40
) {
+ } else if (prop >=
35
) {
color = "#ff4";
bgcolor = "#750";
ok = true;
color = "#ff4";
bgcolor = "#750";
ok = true;
@@
-320,7
+343,7
@@
function checkPassword(box, okLabel) {
.parent().stop()
.animate({ backgroundColor: bgcolor }, 750);
var submitButton = $(":submit[name='" + passwordprompt_submit + "']");
.parent().stop()
.animate({ backgroundColor: bgcolor }, 750);
var submitButton = $(":submit[name='" + passwordprompt_submit + "']");
- if (ok && pass
.length >= 6
) {
+ if (ok && pass
word.length >= 6 && differentTypes(password)
) {
submitButton.attr("value", okLabel);
submitButton.removeAttr("disabled");
} else {
submitButton.attr("value", okLabel);
submitButton.removeAttr("disabled");
} else {