13.6.00 double authentification

This commit is contained in:
Fred Tempez 2024-11-27 12:13:29 +01:00
parent 2ba03c2453
commit bad1c108ab
7 changed files with 26 additions and 16 deletions

View File

@ -1,11 +1,17 @@
# Notes de mises à jour
## Versions 13.6.00
**Amélioration :**
- Validation de la connexion au site grâce à l'envoi d'un code par email. L'option est activée depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs.
**Correction :**
- Activation de la mémorisation de l'onglet actif dans la configuration après validation du formulaire ou visite d'une autre page du site.
## Versions 13.5.00
**Améliorations :**
- Optimisation du chargement des variables de classe.
- Suppression de redondance de déclaration des charset.
**Corrections : **
**Corrections :**
- Corrige un bug de changement de mot de passe pour les comptes non admins.
- Blog 7.12, corrige un bug d'affichage des articles lorsque le thème Moderne est sélectionné.
- Corrige un dysfonctionnement de la fonction de tronquage subword qui perturbait l'affichage des articles de blog.

View File

@ -1,4 +1,4 @@
# ZwiiCMS 13.5.00
# ZwiiCMS 13.6.00
Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation.

View File

@ -1,4 +1,4 @@
# ZwiiCMS 13.5.00
# ZwiiCMS 13.6.00
Zwii is a database-less (flat-file) CMS that allows you to easily create and manage a web site without any programming knowledge.

View File

@ -51,7 +51,7 @@ class common
const ACCESS_TIMER = 1800;
// Numéro de version
const ZWII_VERSION = '13.5.00';
const ZWII_VERSION = '13.6.00';
// URL autoupdate
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/cms-update/raw/branch/master/';

View File

@ -40,8 +40,8 @@
<div class="col4">
<?php echo template::select('connectAuthMail', array_merge([''=>'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.'
'selected' => $this->getData(['config', 'connect', 'mailAuth']),
'help' => 'La connexion est confirmée par une clé adressée par messagerie. Depuis le groupe sélectionnée et les groupes supérieurs.'
]); ?>
</div>

View File

@ -22,23 +22,23 @@
<?php echo template::button('configSetupButton', [
'value' => 'Configuration',
'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'config/register/setup'
'href' => helper::baseUrl() . 'config/register/setup'
]); ?>
<?php echo template::button('configSocialButton', [
'value' => 'Référencement',
'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'config/register/social'
'href' => helper::baseUrl() . 'config/register/social'
]); ?>
<?php echo template::button('configConnectButton', [
'value' => 'Connexion',
'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'config/register/connect'
'href' => helper::baseUrl() . 'config/register/connect'
]); ?>
<?php echo template::button('configNetworkButton', [
'value' => 'Réseau',
'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'config/register/network'
'href' => helper::baseUrl() . 'config/register/network'
]); ?>
</div>

View File

@ -1176,10 +1176,6 @@ class user extends common
// Vérifier la clé saisie
$targetKey = $this->getData(['user', $this->getUser('id'), 'authKey']);
$inputKey = $this->getInput('userAuthKey', helper::FILTER_INT);
// Supprime la clé stockée et ltemps limite
$this->deleteData(['user', $this->getUser('id'), 'authKey']);
// Réinitialiser le compteur de temps
$this->setData(['user', $this->getUser('id'), 'connectTimeout', 0]);
if (
$targetKey === $inputKey &&
$this->getData(['user', $this->getUser('id'), 'connectTimeout']) + 3600 >= time()
@ -1190,6 +1186,8 @@ class user extends common
$redirect = ($pageId && strpos($pageId, 'user_reset') !== 0) ? helper::baseUrl() . str_replace('_', '/', str_replace('__', '#', $pageId)) : helper::baseUrl();
// Journalisation
$this->saveLog('Connexion réussie');
// Réinitialiser le compteur de temps
$this->setData(['user', $this->getUser('id'), 'connectTimeout', 0]);
// Valeurs en sortie
$this->addOutput([
'redirect' => $redirect,
@ -1197,8 +1195,11 @@ class user extends common
'state' => true
]);
} else {
// Journalisation
$this->saveLog('Erreur de vérification de la clé envoyée par email ' . $this->getUser('id'));
// Supprime la clé stockée et le temps limite
$this->deleteData(['user', $this->getUser('id'), 'authKey']);
// Réinitialiser le compteur de temps
$this->setData(['user', $this->getUser('id'), 'connectTimeout', 0]);
// Détruit les cookies d'authenfication
helper::deleteCookie('ZWII_USER_ID');
@ -1207,6 +1208,9 @@ class user extends common
// Détruit la session
session_destroy();
// Journalisation
$this->saveLog('Erreur de vérification de la clé envoyée par email ' . $this->getUser('id'));
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl(),