Les conditions sont les suivantes :
Code : Tout sélectionner
if($find_login) {
...
Première condition : Si l'utilisateur est trouve ?
...
} elseif(($rparameters['ldap'])=='1' && ($rparameters['ldap_auth']=='1')) {
...
Deuxième condition : Si utilisateur non trouvé et le connecteur et l'authentification LDAP sont activé
...
} else {
...
Troisième condition : Là se trouve les conditions du nombre de tentative de connexion ($rparameters['user_disable_attempt'])
...
}
Du coup ca se comprend mieux.
La condition du $rparameters['user_disable_attempt'] (dans le dernier else) n'est pas exécuté si l'utilisateur est trouvé ????
Ou sinon je n'est pas compris la variable $find_login...
Il faudrait peut être rajouter les conditions suivantes dans la première condition :
Code : Tout sélectionner
if($rparameters['user_disable_attempt']) {
//check if user exist
$qry=$db->prepare("SELECT `id`,`auth_attempt`,`disable` FROM `tusers` WHERE login=:login");
$qry->execute(array('login' => $_POST['login']));
$row=$qry->fetch();
$qry->closeCursor();
if($row) {
$attempt=$row['auth_attempt']+1;
$qry=$db->prepare("UPDATE `tusers` SET `auth_attempt`=:auth_attempt WHERE `id`=:id");
$qry->execute(array('auth_attempt' => $attempt,'id' => $row['id']));
$attempt_remaing=$rparameters['user_disable_attempt_number']-$attempt;
if($attempt_remaing>0) {
$attempt_remaing=T_('Il reste').' '.$attempt_remaing.' '.T_('tentatives avant la désactivation de votre compte');
} else {
if($row['disable']) {
$attempt_remaing=T_('Votre compte est désactivé, contacter votre administrateur');
} else {
$qry=$db->prepare("UPDATE `tusers` SET `disable`=1 WHERE `id`=:id");
$qry->execute(array('id' => $row['id']));
$attempt_remaing=T_('Votre compte a été désactivé, suite à').' '.$rparameters['user_disable_attempt_number'].' '.T_('tentatives de connexion infructueuses');
}
}
} else {$attempt_remaing='';}
} else {$attempt_remaing='';}