diff --git a/htdocs/includes/login/functions_ldap.php b/htdocs/includes/login/functions_ldap.php index 1697bbb2e603acf2defffadd46acc9b98a23a02d..1ce166291dd211053a3e1080347a581a4417e90f 100644 --- a/htdocs/includes/login/functions_ldap.php +++ b/htdocs/includes/login/functions_ldap.php @@ -107,7 +107,30 @@ function check_user_password_ldap($usertotest,$passwordtotest) // Code to get user in LDAP (may differ from Dolibarr user) $result=$ldap->connect_bind(); - $resultCheckUserDN = $ldap->checkPass($usertotest,$passwordtotest); + if ($result) + { + $ldap->fetch($_POST["username"]); + // On stop si le mot de passe ldap doit etre modifie + if ($ldap->pwdlastset == 0) + { + session_destroy(); + dolibarr_syslog('User '.$login.' must change password next logon'); + if ($ldapdebug) print "DEBUG: User ".$login." must change password<br>\n"; + $ldap->close(); + + // On repart sur page accueil + session_name($sessionname); + session_start(); + $langs->load('ldap'); + $_SESSION["dol_loginmesg"]=$langs->trans("UserMustChangePassNextLogon"); + header('Location: '.DOL_URL_ROOT.'/index.php'); + exit; + } + else + { + $resultCheckUserDN = $ldap->checkPass($usertotest,$passwordtotest); + } + } $ldap->close(); $ldap->searchUser=$usertotest; @@ -133,7 +156,7 @@ function check_user_password_ldap($usertotest,$passwordtotest) if ($ldapdebug) print "DEBUG: pwdLastSet = ".dolibarr_print_date($ldap->pwdlastset,'day')."<br>\n"; if ($ldapdebug) print "DEBUG: badPasswordTime = ".dolibarr_print_date($ldap->badpwdtime,'day')."<br>\n"; - + /* // On stop si le mot de passe ldap doit etre modifie if ($ldap->pwdlastset == 0) { @@ -150,7 +173,7 @@ function check_user_password_ldap($usertotest,$passwordtotest) header('Location: '.DOL_URL_ROOT.'/index.php'); exit; } - + */ // On recherche le user dolibarr en fonction de son SID ldap $sid = $ldap->getObjectSid($login);