From 7378dc03e0f423c0f0c9198bc90a65f4fd1f0b7f Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Thu, 16 Sep 2021 11:35:00 +0200 Subject: [PATCH] bugfixing... --- src/Controller/UsersController.php | 6 +++--- src/Model/Table/LdapConnectionsTable.php | 10 +++++++++- src/Model/Table/StatsTable.php | 10 +++++----- tests/TestCase/Controller/General.php | 2 +- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/Controller/UsersController.php b/src/Controller/UsersController.php index 85750b8..f2494a5 100755 --- a/src/Controller/UsersController.php +++ b/src/Controller/UsersController.php @@ -229,7 +229,7 @@ class UsersController extends AppController { */ ///if (SessionTimeoutON) - $this->statsUpdateForCurrentUserWhen(null,'sur login'); + $this->statsUpdateForCurrentUserWhen(null,'login'); //$this->statsUpdateForCurrentUserWhen($user,'sur login'); //$this->statsUpdateForCurrentUserOnLogin(); //exit; @@ -250,7 +250,7 @@ class UsersController extends AppController { ////if (SessionTimeoutON) // Si user PAS déjà logout, on enregistre sa stat if ($this->LdapAuth->user()) - $this->statsUpdateForCurrentUserWhen(null,'sur logout'); + $this->statsUpdateForCurrentUserWhen(null,'logout'); //$this->statsUpdateForCurrentUserOnLogout(); //$this->Flash->success('You are now logged out.'); return $this->redirect($this->LdapAuth->logout()); @@ -370,7 +370,7 @@ class UsersController extends AppController { * au moment de l'événement $event_name */ public function statsUpdateForCurrentUserWhen($session_user=null, $event_name) { - $user_id = ($event_name=='sur logout') ? $this->u->id : $this->_getCurrentUserEntityFromSession($session_user)->id; + $user_id = ($event_name=='logout') ? $this->u->id : $this->_getCurrentUserEntityFromSession($session_user)->id; DEBUG && debug($user_id); // l'id du user dans table users if (is_null($user_id)) throw new \ErrorException("Pas de user trouvé dans la session (user_id is null)"); $this->Users->Stats->updateForUserWhen($user_id, $event_name); diff --git a/src/Model/Table/LdapConnectionsTable.php b/src/Model/Table/LdapConnectionsTable.php index 0e2b473..599d4e9 100644 --- a/src/Model/Table/LdapConnectionsTable.php +++ b/src/Model/Table/LdapConnectionsTable.php @@ -10,10 +10,17 @@ use App\Model\Entity\User; // Idem Controller/UsersController const DEFAULT_AUTH_TYPE = 'uid'; +// On active systématiquement le cache ldap (table bd users) ou pas ? (activation forcée) +// - OUI => le CACHE LDAP (table users) est systématiquement utilisé +//const LDAP_CACHE_ALWAYS_ON = true; +// - NON => le CACHE LDAP (table users) n'est utilisé QUE si l'option ldap_cached est activée dans la config +const LDAP_CACHE_ALWAYS_ON = false; + class LdapConnectionsTable extends AppTable { + private $DEBUG_MODE; // read from config private $authenticationType; @@ -740,7 +747,8 @@ class LdapConnectionsTable extends AppTable // Si cache pas activé => return //debug("C1"); - if (! $this->CONF->ldap_cached) return; + //if (! $this->CONF->ldap_cached) return; + if (!LDAP_CACHE_ALWAYS_ON && !$this->CONF->ldap_cached) return; /* * On ne met à jour le cache des users QUE si : diff --git a/src/Model/Table/StatsTable.php b/src/Model/Table/StatsTable.php index 17cdcb5..abaea88 100644 --- a/src/Model/Table/StatsTable.php +++ b/src/Model/Table/StatsTable.php @@ -149,9 +149,9 @@ class StatsTable extends Table /* * Mise à jour des stats pour le user courant (et pour l'année courante) * au moment de l'événement $event_name qui peut être de 3 types : - * - 'sur login' + * - 'login' * - 'durant la session' - * - 'sur logout' + * - 'logout' */ public function updateForUserWhen($user_id, $event_name) { @@ -165,13 +165,13 @@ class StatsTable extends Table // 2) TT selon event $event_name /* - * - au LOGIN ( == 'sur login') + * - au LOGIN ( == 'login') * * => on enregistre son heure de connexion * => on incrémente le nombre de connexions * */ - if ($event_name == 'sur login') { + if ($event_name == 'login') { $last_login_time = $current_user_stat->last_login_time; $last_logout_time = $current_user_stat->last_logout_time; /* @@ -215,7 +215,7 @@ class StatsTable extends Table $connex_duration = $connex_duration->h*3600 + $connex_duration->i*60 + $connex_duration->s; $current_user_stat->last_connex_dur = $connex_duration; - if ($event_name == 'sur logout') { + if ($event_name == 'logout') { // 1) On met à jour le champ last_logout_time $current_user_stat->last_logout_time = $now; // 2) On met à jour le temps de connexion total (cumulé) diff --git a/tests/TestCase/Controller/General.php b/tests/TestCase/Controller/General.php index a53efc5..8ab3df4 100644 --- a/tests/TestCase/Controller/General.php +++ b/tests/TestCase/Controller/General.php @@ -451,7 +451,7 @@ class General extends TestCase { ]; $this->session($authType); //$this->request->getSession()->write($authType); - (new UsersController())->statsUpdateForCurrentUserWhen($user['Auth']['User'],'sur login'); + (new UsersController())->statsUpdateForCurrentUserWhen($user['Auth']['User'],'login'); } -- libgit2 0.21.2