From fb439395e793368030b4c055d332620c2a02061d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Thu, 14 Nov 2024 21:18:50 +0100 Subject: [PATCH] config authkey WIP --- core/module/config/config.php | 3 +- core/module/config/view/connect/connect.php | 132 +++++++++++--------- core/module/user/user.php | 4 +- 3 files changed, 76 insertions(+), 63 deletions(-) diff --git a/core/module/config/config.php b/core/module/config/config.php index 674daa7b..f431f1d6 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -496,7 +496,8 @@ class config extends common 'autoDisconnect' => $this->getInput('connectAutoDisconnect', helper::FILTER_BOOLEAN), 'captchaType' => $this->getInput('connectCaptchaType'), 'showPassword' => $this->getInput('connectShowPassword', helper::FILTER_BOOLEAN), - 'redirectLogin' => $this->getInput('connectRedirectLogin', helper::FILTER_BOOLEAN) + 'redirectLogin' => $this->getInput('connectRedirectLogin', helper::FILTER_BOOLEAN), + 'mailAuth' => $this->getInput('connectAuthMail', helper::FILTER_BOOLEAN), ] ] ]); diff --git a/core/module/config/view/connect/connect.php b/core/module/config/view/connect/connect.php index 2f6ee633..39ff127e 100644 --- a/core/module/config/view/connect/connect.php +++ b/core/module/config/view/connect/connect.php @@ -3,13 +3,7 @@

-

-
-
+
'Limitation des tentatives', 'selected' => $this->getData(['config', 'connect', 'attempt']) ]); ?>
-
+
'Blocage après échecs', 'selected' => $this->getData(['config', 'connect', 'timeout']) ]); ?>
-
- - helper::baseUrl() . 'config/blacklistDownload', - 'value' => 'Télécharger la liste', - 'ico' => 'download' - ]); ?> -
-
- 'buttonRed', - 'href' => helper::baseUrl() . 'config/blacklistReset', - 'value' => 'Réinitialiser la liste', - 'ico' => 'trash' +
+ 'Aucune'], self::$groupNews), [ + 'label' => 'Validation par messagerie', + 'selected' => $this->getData(['config', 'connect', 'timeout']), + 'help' => 'La connexion est confirmée par une clé adressée par messagerie depuis le groupe sélectionnée et les groupes supérieurs.' ]); ?>
+
+
+
+
+
+

+

- $this->getData(['config', 'connect', 'captcha']) ]); ?>
@@ -92,40 +78,66 @@

-

-
- $this->getData(['config', 'connect', 'log']) - ]); ?> +
+
+
+ $this->getData(['config', 'connect', 'log']) + ]); ?> +
+
+ 'Anonymat des adresses IP', + 'selected' => $this->getData(['config', 'connect', 'anonymousIp']), + 'help' => 'La règlementation française impose un anonymat de niveau 2' + ]); ?> +
+
+
+
+ helper::baseUrl() . 'config/logDownload', + 'value' => 'Télécharger le journal', + 'ico' => 'download' + ]); ?> +
+
+ 'buttonRed', + 'href' => helper::baseUrl() . 'config/logReset', + 'value' => 'Réinitialiser le journal', + 'ico' => 'trash' + ]); ?> +
+
-
- 'Anonymat des adresses IP', - 'selected' => $this->getData(['config', 'connect', 'anonymousIp']), - 'help' => 'La règlementation française impose un anonymat de niveau 2' - ]); ?> -
-
- helper::baseUrl() . 'config/logDownload', - 'value' => 'Télécharger le journal', - 'ico' => 'download' - ]); ?> -
-
- 'buttonRed', - 'href' => helper::baseUrl() . 'config/logReset', - 'value' => 'Réinitialiser le journal', - 'ico' => 'trash' - ]); ?> +
+
+
+ + helper::baseUrl() . 'config/blacklistDownload', + 'value' => 'Télécharger la liste', + 'ico' => 'download' + ]); ?> +
+
+ 'buttonRed', + 'href' => helper::baseUrl() . 'config/blacklistReset', + 'value' => 'Réinitialiser la liste', + 'ico' => 'trash' + ]); ?> +
+
diff --git a/core/module/user/user.php b/core/module/user/user.php index fc27915b..98564848 100644 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -67,7 +67,7 @@ class user extends common public static $groupProfils = [ self::GROUP_MEMBER => 'Membre', - self::GROUP_EDITOR => 'Éditeur' + self::GROUP_EDITOR => 'Éditeur', ]; public static $listModules = []; @@ -1070,7 +1070,7 @@ class user extends common // Clé d'authenfication utlisée pour lié le compte au cookie au lieu de stocke le hash du mot de passe $authKey = uniqid('', true) . bin2hex(random_bytes(8)); - if ($this->getData(['config', 'connect', 'mailAuth']) === true) { + if ($this->getData(['config', 'connect', 'mailAuth']) >= $this->getData(['user', $userId, 'group'])) { $logStatus = 'Envoi du mail d\'authentification'; // Redirection vers la page d'authentification $authRedirect = 'user/auth/';