10.2.dev26 + merge 10104 + correctif auth
This commit is contained in:
parent
75ac83331c
commit
2d93f5c5f5
@ -39,7 +39,7 @@ class common {
|
|||||||
const ACCESS_TIMER = 1800;
|
const ACCESS_TIMER = 1800;
|
||||||
|
|
||||||
// Numéro de version
|
// Numéro de version
|
||||||
const ZWII_VERSION = '10.2.00.dev25';
|
const ZWII_VERSION = '10.2.00.dev26';
|
||||||
const ZWII_UPDATE_CHANNEL = "v10";
|
const ZWII_UPDATE_CHANNEL = "v10";
|
||||||
|
|
||||||
public static $actions = [];
|
public static $actions = [];
|
||||||
@ -1303,11 +1303,20 @@ class common {
|
|||||||
// Réorganisation du thème
|
// Réorganisation du thème
|
||||||
$this->setData(['theme','text','linkTextColor',$this->getData(['theme','link', 'textColor'])]);
|
$this->setData(['theme','text','linkTextColor',$this->getData(['theme','link', 'textColor'])]);
|
||||||
}
|
}
|
||||||
|
// Version 10.1.04
|
||||||
|
if ($this->getData(['core', 'dataVersion']) < 10104) {
|
||||||
|
$this->setData(['theme','text','linkColor','rgba(74, 105, 189, 1)']);
|
||||||
|
$this->deleteData(['theme','text','linkTextColor']);
|
||||||
|
$this->setdata(['theme','block','backgroundColor','rgba(236, 239, 241, 1)']);
|
||||||
|
$this->setdata(['theme','block','borderColor','rgba(236, 239, 241, 1)']);
|
||||||
|
$this->setdata(['theme','menu','radius','0px']);
|
||||||
|
$this->setData(['core', 'dataVersion', 10104]);
|
||||||
|
}
|
||||||
// Version 10.2.00
|
// Version 10.2.00
|
||||||
if ($this->getData(['core', 'dataVersion']) < 10200) {
|
if ($this->getData(['core', 'dataVersion']) < 10200) {
|
||||||
$this->deleteData(['admin','colorButtonText']);
|
$this->deleteData(['admin','colorButtonText']);
|
||||||
$this->setData(['config', 'connect', 'attempt',3]);
|
$this->setData(['config', 'connect', 'attempt',999]);
|
||||||
$this->setData(['config', 'connect', 'timeout',600]);
|
$this->setData(['config', 'connect', 'timeout',0]);
|
||||||
$this->setData(['config', 'connect', 'log',false]);
|
$this->setData(['config', 'connect', 'log',false]);
|
||||||
// Remettre à zéro le thème pour la génération du CSS du blog
|
// Remettre à zéro le thème pour la génération du CSS du blog
|
||||||
if (file_exists(self::DATA_DIR . 'theme.css')) {
|
if (file_exists(self::DATA_DIR . 'theme.css')) {
|
||||||
|
@ -415,6 +415,19 @@ class config extends common {
|
|||||||
} else {
|
} else {
|
||||||
$legalPageId = '';
|
$legalPageId = '';
|
||||||
}
|
}
|
||||||
|
// Contrôle de cohérence
|
||||||
|
$connectAttempt = $this->getInput('configConnectAttempt', helper::FILTER_INT);
|
||||||
|
$connectTimeout = $this->getInput('configConnectTimeout', helper::FILTER_INT);
|
||||||
|
if(
|
||||||
|
( $connectAttempt === 999 && $connectTimeout !== 0 )
|
||||||
|
) {
|
||||||
|
self::$inputNotices['configConnectAttempt'] = 'Valeur incorrecte';
|
||||||
|
}
|
||||||
|
if(
|
||||||
|
( $connectAttempt !== 999 && $connectTimeout === 0 )
|
||||||
|
) {
|
||||||
|
self::$inputNotices['configConnectTimeout'] = 'Valeur incorrecte';
|
||||||
|
}
|
||||||
|
|
||||||
$this->setData([
|
$this->setData([
|
||||||
'config',
|
'config',
|
||||||
|
@ -350,13 +350,12 @@ class user extends common {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Compte valide :
|
* Compte valide :
|
||||||
* Timeout entre nombre de tentatives autorisées
|
|
||||||
* Mot de passe
|
* Mot de passe
|
||||||
* Groupe
|
* Groupe
|
||||||
*/
|
*/
|
||||||
if( $this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time() &&
|
if( $this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time()
|
||||||
$this->getData(['user',$userId,'connectFail']) < $this->getData(['config', 'connect', 'attempt']) &&
|
AND $this->getData(['user',$userId,'connectFail']) < $this->getData(['config', 'connect', 'attempt'])
|
||||||
password_verify($this->getInput('userLoginPassword', helper::FILTER_STRING_SHORT, true), $this->getData(['user', $userId, 'password']))
|
AND password_verify($this->getInput('userLoginPassword', helper::FILTER_STRING_SHORT, true), $this->getData(['user', $userId, 'password']))
|
||||||
AND $this->getData(['user', $userId, 'group']) >= self::GROUP_MEMBER
|
AND $this->getData(['user', $userId, 'group']) >= self::GROUP_MEMBER
|
||||||
) {
|
) {
|
||||||
$expire = $this->getInput('userLoginLongTime') ? strtotime("+1 year") : 0;
|
$expire = $this->getInput('userLoginLongTime') ? strtotime("+1 year") : 0;
|
||||||
@ -378,6 +377,7 @@ class user extends common {
|
|||||||
else {
|
else {
|
||||||
// RAZ compteur échec connexion
|
// RAZ compteur échec connexion
|
||||||
$this->setData(['user',$userId,'connectFail',0 ]);
|
$this->setData(['user',$userId,'connectFail',0 ]);
|
||||||
|
$this->setData(['user',$userId,'connectTimeout',0 ]);
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'notification' => 'Connexion réussie',
|
'notification' => 'Connexion réussie',
|
||||||
@ -393,10 +393,10 @@ class user extends common {
|
|||||||
) {
|
) {
|
||||||
$this->setData(['user',$userId,'connectFail',$this->getdata(['user',$userId,'connectFail']) + 1 ]);
|
$this->setData(['user',$userId,'connectFail',$this->getdata(['user',$userId,'connectFail']) + 1 ]);
|
||||||
// Mettre à jour le timer et notifier
|
// Mettre à jour le timer et notifier
|
||||||
if ( $this->getdata(['user',$userId,'connectFail']) > $this->getData(['config', 'connect', 'attempt'])
|
if ( $this->getdata(['user',$userId,'connectFail']) >= $this->getData(['config', 'connect', 'attempt'])
|
||||||
) {
|
) {
|
||||||
$notification = 'Trop de tentatives, accès bloqué durant ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.';
|
$notification = 'Trop de tentatives, accès bloqué durant ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.';
|
||||||
// Ne pas incrémenter le timer si actif
|
// Incrémenter le timer
|
||||||
if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time() ) {
|
if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time() ) {
|
||||||
$this->setData(['user',$userId,'connectTimeout', time()]);
|
$this->setData(['user',$userId,'connectTimeout', time()]);
|
||||||
}
|
}
|
||||||
@ -406,7 +406,7 @@ class user extends common {
|
|||||||
// L'utilisateur n'existe pas
|
// L'utilisateur n'existe pas
|
||||||
// Bloquer l'IP après les tentatives autorisées avec ce compte,
|
// Bloquer l'IP après les tentatives autorisées avec ce compte,
|
||||||
} elseif (
|
} elseif (
|
||||||
$this->getData(['blacklist',$userId,'connectFail']) > $this->getData(['config', 'connect', 'attempt'])
|
$this->getData(['blacklist',$userId,'connectFail']) >= $this->getData(['config', 'connect', 'attempt'])
|
||||||
) {
|
) {
|
||||||
$notification = 'Trop de tentatives, compte verrouillé';
|
$notification = 'Trop de tentatives, compte verrouillé';
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user