diff --git a/CHANGES.md b/CHANGES.md
index 0d67ec6c..f60de150 100755
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,8 +3,10 @@
## version 10.2.07
- Correction :
- Bloquage de l'incrémentation de l'id de page lorsque deux pages ont le même nom.
-- Modification :
+ - Login : l'option "Se souvenir de moi" est fonctionnelle.
+- Modifications :
- Configuration: sauvegarde du site dans une archive : animation d'attente avec message de confirmation ou d'erreur.
+ - Cookies d'authentification : option samesite sur Strict
## version 10.2.06
- Corrections :
diff --git a/core/module/install/view/index/index.php b/core/module/install/view/index/index.php
index 74677c5a..6debdbf3 100755
--- a/core/module/install/view/index/index.php
+++ b/core/module/install/view/index/index.php
@@ -20,7 +20,7 @@
'off',
- 'label' => 'Adresse mail'
+ 'label' => 'Adresse mail'
]); ?>
diff --git a/core/module/user/user.php b/core/module/user/user.php
index 4ab38f8f..3dba717c 100755
--- a/core/module/user/user.php
+++ b/core/module/user/user.php
@@ -24,8 +24,11 @@ class user extends common {
'logout' => self::GROUP_MEMBER,
'reset' => self::GROUP_VISITOR
];
+
public static $users = [];
+ public static $userId = '';
+
/**
* Ajout
*/
@@ -373,7 +376,7 @@ class user extends common {
*/
} else {
// Cas 4 : le délai de blocage est dépassé et le compte est au max - Réinitialiser
- if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time()
+ if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time()
AND $this->getData(['user',$userId,'connectFail']) === $this->getData(['config', 'connect', 'attempt']) ) {
$this->setData(['user',$userId,'connectFail',0 ]);
$this->setData(['user',$userId,'connectTimeout',0 ]);
@@ -388,8 +391,8 @@ class user extends common {
) {
// Expiration
$expire = $this->getInput('userLoginLongTime') ? 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);
+ setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false) . '; samesite=strict' , '', helper::isHttps(), true);
+ setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false) . '; samesite=strict', '', helper::isHttps(), true);
// 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
@@ -442,6 +445,9 @@ class user extends common {
}
}
}
+ if (!empty($_COOKIE['ZWII_USER_ID'])) {
+ self::$userId = $_COOKIE['ZWII_USER_ID'];
+ }
// Valeurs en sortie
$this->addOutput([
'display' => self::DISPLAY_LAYOUT_LIGHT,
@@ -454,7 +460,7 @@ class user extends common {
* Déconnexion
*/
public function logout() {
- helper::deleteCookie('ZWII_USER_ID');
+ // Ne pas effacer l'identifiant mais seulement le mot de passe
helper::deleteCookie('ZWII_USER_PASSWORD');
session_destroy();
// Valeurs en sortie
diff --git a/core/module/user/view/login/login.php b/core/module/user/view/login/login.php
index a25c0529..bce31c82 100755
--- a/core/module/user/view/login/login.php
+++ b/core/module/user/view/login/login.php
@@ -2,7 +2,8 @@
'Identifiant'
+ 'label' => 'Identifiant',
+ 'value' => $module::$userId
]); ?>
@@ -13,9 +14,7 @@
- 'La session est close à la fermeture du navigateur.'
- ]); ?>
+