summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
33a4f3f)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
+ if (differentTypes(pw1)) {
+ alert ("\nErreur : le nouveau mot de passe doit comporter au moins deux types de caractères parmi les suivants : lettres minuscules, lettres majuscules, chiffres, caractères spéciaux.")
+ return false;
+ exit;
+ }
str = hash_encrypt(document.forms.changepass.nouveau.value);
document.forms.changepass2.response2.value = str;
str = hash_encrypt(document.forms.changepass.nouveau.value);
document.forms.changepass2.response2.value = str;
-function checkPassword(box, okLabel) {
+function differentTypes(password) {
+
+ 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 pass = box.value;
- var types = Array(0, 0, 0, 0, 0);
- 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;
}
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 (password.length < 6) {
+ prop *= 0.75;
+ }
+ if (firstType) {
prop *= 0.75;
}
if (prop > 100) {
prop *= 0.75;
}
if (prop > 100) {
} 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";
if (prop >= 60) {
color = "#4f4";
bgcolor = "#050";
.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 && password.length >= 6 && differentTypes(password)) {
submitButton.attr("value", okLabel);
submitButton.removeAttr("disabled");
} else {
submitButton.attr("value", okLabel);
submitButton.removeAttr("disabled");
} else {
require_once("emails.inc.php");
require_once("googleapps.inc.php");
$page->changeTpl('googleapps/index.tpl');
require_once("emails.inc.php");
require_once("googleapps.inc.php");
$page->changeTpl('googleapps/index.tpl');
- $page->addJsLink('motdepasse.js');
+ $page->addJsLink('password.js');
$page->setTitle('Compte Google Apps');
$user = S::user();
$page->setTitle('Compte Google Apps');
$user = S::user();
S::logger()->log('passwd');
Platal::session()->setAccessCookie(true);
S::logger()->log('passwd');
Platal::session()->setAccessCookie(true);
- $page->changeTpl('platal/motdepasse.success.tpl');
+ $page->changeTpl('platal/password.success.tpl');
- $page->changeTpl('platal/motdepasse.tpl');
- $page->addJsLink('motdepasse.js');
+ $page->changeTpl('platal/password.tpl');
+ $page->addJsLink('password.js');
$page->setTitle('Mon mot de passe');
}
$page->setTitle('Mon mot de passe');
}
S::logger($uid)->log("passwd", "");
$page->changeTpl('platal/tmpPWD.success.tpl');
} else {
S::logger($uid)->log("passwd", "");
$page->changeTpl('platal/tmpPWD.success.tpl');
} else {
- $page->changeTpl('platal/motdepasse.tpl');
- $page->addJsLink('motdepasse.js');
+ $page->changeTpl('platal/password.tpl');
+ $page->addJsLink('password.js');
}
$page->changeTpl('register/step' . $subState->i('step') . '.tpl');
}
$page->changeTpl('register/step' . $subState->i('step') . '.tpl');
- $page->addJsLink('motdepasse.js');
+ $page->addJsLink('password.js');
if (isset($error)) {
$page->trigError($error);
}
if (isset($error)) {
$page->trigError($error);
}