Forçage de mot de passe si vide + redirection après reset

This commit is contained in:
Fred Tempez 2023-11-09 09:51:52 +01:00
parent 28927ad747
commit 4176043958

View File

@ -265,9 +265,9 @@ class user extends common
if ( if (
$this->isPost() $this->isPost()
) { ) {
$oldPassword = $this->getData(['user', $this->getUrl(2), 'password']);
// Double vérification pour le mot de passe // Double vérification pour le mot de passe
if ($this->getUser('group') < self::GROUP_ADMIN) { if ($this->getUser('group') < self::GROUP_ADMIN) {
$newPassword = $this->getData(['user', $this->getUrl(2), 'password']);
if ($this->getInput('userEditNewPassword')) { if ($this->getInput('userEditNewPassword')) {
// L'ancien mot de passe est correct // L'ancien mot de passe est correct
if (password_verify(html_entity_decode($this->getInput('userEditOldPassword')), $this->getData(['user', $this->getUrl(2), 'password']))) { if (password_verify(html_entity_decode($this->getInput('userEditOldPassword')), $this->getData(['user', $this->getUrl(2), 'password']))) {
@ -287,7 +287,10 @@ class user extends common
} }
} }
} else { } else {
if ($this->getInput('userEditNewPassword') === $this->getInput('userEditConfirmPassword')) { if (
!empty($this->getInput('userEditNewPassword'))
&& $this->getInput('userEditNewPassword') === $this->getInput('userEditConfirmPassword')
) {
$newPassword = $this->getInput('userEditNewPassword', helper::FILTER_PASSWORD); $newPassword = $this->getInput('userEditNewPassword', helper::FILTER_PASSWORD);
// Déconnexion de l'utilisateur si il change le mot de passe de son propre compte // Déconnexion de l'utilisateur si il change le mot de passe de son propre compte
if ($this->getUser('id') === $this->getUrl(2)) { if ($this->getUser('id') === $this->getUrl(2)) {
@ -296,7 +299,7 @@ class user extends common
} }
} }
} }
// Modification du groupe // Modification du groupe
if ( if (
$this->getUser('group') === self::GROUP_ADMIN $this->getUser('group') === self::GROUP_ADMIN
@ -332,7 +335,7 @@ class user extends common
'pseudo' => $this->getInput('userEditPseudo', helper::FILTER_STRING_SHORT, true), 'pseudo' => $this->getInput('userEditPseudo', helper::FILTER_STRING_SHORT, true),
'signature' => $this->getInput('userEditSignature', helper::FILTER_INT, true), 'signature' => $this->getInput('userEditSignature', helper::FILTER_INT, true),
'mail' => $this->getInput('userEditMail', helper::FILTER_MAIL, true), 'mail' => $this->getInput('userEditMail', helper::FILTER_MAIL, true),
'password' => $newPassword ? $newPassword : $this->getData(['user', $this->getUrl(2)], 'password'), 'password' => empty($newPassword) ? $oldPassword : $newPassword,
'connectFail' => $this->getData(['user', $this->getUrl(2), 'connectFail']), 'connectFail' => $this->getData(['user', $this->getUrl(2), 'connectFail']),
'connectTimeout' => $this->getData(['user', $this->getUrl(2), 'connectTimeout']), 'connectTimeout' => $this->getData(['user', $this->getUrl(2), 'connectTimeout']),
'accessUrl' => $this->getData(['user', $this->getUrl(2), 'accessUrl']), 'accessUrl' => $this->getData(['user', $this->getUrl(2), 'accessUrl']),
@ -1010,7 +1013,7 @@ class user extends common
]); ]);
} else { } else {
$logStatus = 'Connexion réussie'; $logStatus = 'Connexion réussie';
$redirect = $this->getUrl(2) ? helper::baseUrl() . str_replace('_', '/', str_replace('__', '#', $this->getUrl(2))) : helper::baseUrl(); $redirect = ($this->getUrl(2) && strpos($this->getUrl(2), 'user_reset') !== 0) ? helper::baseUrl() . str_replace('_', '/', str_replace('__', '#', $this->getUrl(2))) : helper::baseUrl();
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'notification' => sprintf(helper::translate('Bienvenue %s %s'), $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])), 'notification' => sprintf(helper::translate('Bienvenue %s %s'), $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])),
@ -1091,6 +1094,7 @@ class user extends common
// Id unique incorrecte // Id unique incorrecte
or $this->getUrl(3) !== md5(json_encode($this->getData(['user', $this->getUrl(2)]))) or $this->getUrl(3) !== md5(json_encode($this->getData(['user', $this->getUrl(2)])))
) { ) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'access' => false 'access' => false
@ -1100,7 +1104,7 @@ class user extends common
else { else {
// Soumission du formulaire // Soumission du formulaire
if ( if (
// Tous les suers peuvent réinitialiser // Tous les users peuvent réinitialiser
// $this->getUser('permission', __CLASS__, __FUNCTION__) === true && // $this->getUser('permission', __CLASS__, __FUNCTION__) === true &&
$this->isPost() $this->isPost()
) { ) {
@ -1123,8 +1127,7 @@ class user extends common
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'notification' => helper::translate('Nouveau mot de passe enregistré'), 'notification' => helper::translate('Nouveau mot de passe enregistré'),
//'redirect' => helper::baseUrl() . 'user/login/' . str_replace('/', '_', $this->getUrl()), 'redirect' => helper::baseUrl() . 'user/login/' . str_replace('/', '_', $this->getUrl()),
'redirect' => helper::baseUrl(),
'state' => true 'state' => true
]); ]);
} }