13.3.06 Login, connexion persistante

This commit is contained in:
Fred Tempez 2024-08-24 17:29:17 +02:00
parent 5326b94c04
commit 0f1bd2377e
3 changed files with 26 additions and 12 deletions

View File

@ -5,6 +5,7 @@
- Répare le bouton d'effacement en mode édition d'une page.
- Corrige la feuille de style du slider les balises H1, H3 et A.
- Corrige l'absence de contenu de page lorsque le module est en position libre et que le mot clé [MODULE] n'a pas été inséré.
- Corrige l'option "REster connecter sur ce navigateur' dont la connexion est désormais réellement persistente.
## Versions 13.3.05
** Corrections : **

View File

@ -407,9 +407,9 @@ class helper
* @param string $cookieKey Clé du cookie à supprimer
*/
public static function deleteCookie($cookieKey)
{
unset($_COOKIE[$cookieKey]);
{
setcookie($cookieKey, '', time() - 3600, helper::baseUrl(false, false), '', false, true);
unset($_COOKIE[$cookieKey]);
}
/**

View File

@ -574,7 +574,7 @@ class user extends common
// Stoppe si le profil est affecté
foreach ($groups as $userId) {
if ((string) $this->getData(['user', $userId, 'profil']) === $this->getUrl(3)) {
$profilUsed= false;
$profilUsed = false;
}
}
foreach ($this->getData(['profil']) as $groupId => $groupData) {
@ -935,11 +935,11 @@ class user extends common
// recherche les membres du groupe
$groups = helper::arrayColumn($this->getData(['user']), 'group');
$groups = array_keys($groups, $this->getUrl(2));
$flag= true;
$flag = true;
// Stoppe si le profil est affecté
foreach ($groups as $userId) {
if ((string) $this->getData(['user', $userId, 'profil']) === $this->getUrl(3)) {
$flag= false;
$flag = false;
}
}
if (
@ -956,7 +956,7 @@ class user extends common
if ($flag) {
$this->deleteData(['profil', $this->getUrl(2), $this->getUrl(3)]);
}
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/profil',
@ -1045,10 +1045,22 @@ class user extends common
// RAZ
$this->setData(['user', $userId, 'connectFail', 0]);
$this->setData(['user', $userId, 'connectTimeout', 0]);
// Expiration
// Validité du cookie
$expire = $this->getInput('userLoginLongTime', helper::FILTER_BOOLEAN) === true ? strtotime("+1 year") : 0;
setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false), '', helper::isHttps(), true);
setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false), '', helper::isHttps(), true);
switch ($this->getInput('userLoginLongTime', helper::FILTER_BOOLEAN)) {
case false:
// Cookie de session
setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false), '', helper::isHttps(), true);
setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false), '', helper::isHttps(), true);
break;
default:
// Cookie persistant
setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false));
setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false));
break;
}
// Accès multiples avec le même compte
$this->setData(['user', $userId, 'accessCsrf', $_SESSION['csrf']]);
// Valeurs en sortie lorsque le site est en maintenance et que l'utilisateur n'est pas administrateur
@ -1064,8 +1076,9 @@ class user extends common
} else {
$logStatus = 'Connexion réussie';
$pageId = $this->getUrl(2);
if ($this->getData(['config', 'page404']) === $pageId
|| $this->getData(['config', 'page403']) === $pageId
if (
$this->getData(['config', 'page404']) === $pageId
|| $this->getData(['config', 'page403']) === $pageId
) {
$pageId = '';
}
@ -1391,7 +1404,7 @@ class user extends common
// Ignorer les entrées de répertoire parent et actuel
if ($file == '.' || $file == '..') {
continue;
}
}
// Construisez le chemin complet du fichier ou du répertoire
$path = $dir . '/' . $file;
// Vérifiez si c'est un répertoire