diff --git a/workflow/engine/classes/model/UsersProperties.php b/workflow/engine/classes/model/UsersProperties.php index 7e2f8587f..0b17ce1f2 100755 --- a/workflow/engine/classes/model/UsersProperties.php +++ b/workflow/engine/classes/model/UsersProperties.php @@ -123,7 +123,7 @@ class UsersProperties extends BaseUsersProperties return $aUserProperty; } - public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime) + public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime, $nowLogin = false) { if (! defined( 'PPP_MINIMUM_LENGTH' )) { define( 'PPP_MINIMUM_LENGTH', 5 ); @@ -149,10 +149,10 @@ class UsersProperties extends BaseUsersProperties $iLength = strlen( $sPassword ); } $aErrors = array (); - if ($iLength < PPP_MINIMUM_LENGTH) { + if ($iLength < PPP_MINIMUM_LENGTH || $nowLogin) { $aErrors[] = 'ID_PPP_MINIMUM_LENGTH'; } - if ($iLength > PPP_MAXIMUM_LENGTH) { + if ($iLength > PPP_MAXIMUM_LENGTH || $nowLogin) { $aErrors[] = 'ID_PPP_MAXIMUM_LENGTH'; } if (PPP_NUMERICAL_CHARACTER_REQUIRED == 1) { @@ -180,7 +180,7 @@ class UsersProperties extends BaseUsersProperties } $fDays = $oCalendar->calculateDuration( date( 'Y-m-d H:i:s' ), $sLastUpdate ); - if ($fDays > (PPP_EXPIRATION_IN * 24)) { + if ($fDays > (PPP_EXPIRATION_IN * 24) || $nowLogin) { $aErrors[] = 'ID_PPP_EXPIRATION_IN'; } } diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index ff4cf5ce7..c95c2c60e 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -262,9 +262,9 @@ try { } $aUserProperty = $oUserProperty->loadOrCreateIfNotExists($_SESSION['USER_LOGGED'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($pwd))))); - $aErrors = $oUserProperty->validatePassword($_POST['form']['USR_PASSWORD'], $aUserProperty['USR_LAST_UPDATE_DATE'], $aUserProperty['USR_LOGGED_NEXT_TIME']); + $aErrors = $oUserProperty->validatePassword($_POST['form']['USR_PASSWORD'], $aUserProperty['USR_LAST_UPDATE_DATE'], $aUserProperty['USR_LOGGED_NEXT_TIME'], true); - if (!empty($aErrors)) { + if (!empty($aErrors) && in_array("ID_PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN", $aErrors)) { if (!defined('NO_DISPLAY_USERNAME')) { define('NO_DISPLAY_USERNAME', 1); }