From ae6d179e6b48a2d33d4008ee4640020e62c87eea Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Thu, 16 Sep 2021 10:19:15 +0200 Subject: [PATCH] bugfixing... --- CHANGELOG | 12 ++++++++++++ src/Controller/UsersController.php | 43 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f0cd595..c24e5a1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -356,10 +356,17 @@ Commencer à implémenter le nouveau workflow v5 : *) Validation multiple ne marche plus + *) Mail "[LabInvent] Ajout de matériel(s)" => c'est quoi ? + (quelle diff avec "[LabInvent] Ajout d'un matériel" ??) + *) Les tests doivent se faire avec la config par défaut (et non pas celle spécifique du labo) *) Ajouter test Commande (avec devis joint !) + *) Stats de connexion + - à trier anti-chrono + - supprimer menu haut gauche (new stats, list users, new user...) ??? + *) TBO ou ARCHIVED (= validated) : ne pas autoriser edit ou delete des docs attachés Autoriser certaines choses pour TBO : @@ -410,10 +417,15 @@ Commencer à implémenter le nouveau workflow v5 : => du coup, astuce, on peut REMPLACER un devis en ajoutant le nouveau puis en supprimant l'ancien - (Imprimer étiquette : toujours possible ?) + ======= CHANGES ======= ------- +15/09/2021 v5.2.11-3.7.9 + - Bugfix bug sur 1ère connexion d'un nouvel utilisateur + +------- 14/09/2021 v5.2.10-3.7.9 - Bugfix pas mal de tests... diff --git a/src/Controller/UsersController.php b/src/Controller/UsersController.php index e3beb4a..c4c8492 100755 --- a/src/Controller/UsersController.php +++ b/src/Controller/UsersController.php @@ -12,7 +12,8 @@ use Cake\ORM\Entity; const SessionTimeoutON = false; //const SessionTimeoutON = true; - +const DEBUG=true; +//const DEBUG=false; /** * Users Controller @@ -199,8 +200,15 @@ class UsersController extends AppController { //$this->Auth->setUser($user); $this->LdapAuth->setUser($user); - debug($user); - /* Voici ce que contient $user : + //DEBUG && debug($user); + if (DEBUG) { + $pass = $user['userpassword']; + unset($user['userpassword']); + //debug($user); + $user['userpassword'] = $pass; + //debug($user); + } + /* Voici ce que contient $user en mode fakeldap : [ 'sn' => [ (int) 0 => 'Pallier' @@ -283,9 +291,18 @@ class UsersController extends AppController { return $user_infos ? $user_infos['sn'][0].' '.$user_infos['givenname'][0] : 'Name Firstname'; } private function _getCurrentUserLoginFromSession($user_infos = null) { - debug($user_infos); + DEBUG && debug($user_infos); if (empty($user_infos)) $user_infos = $this->_getCurrentUserInfosFromSession(); - debug($user_infos); + //DEBUG && debug($user_infos); + if (DEBUG) { + $pass = $user_infos['userpassword']; + unset($user_infos['userpassword']); + debug($user_infos); + debug($user_infos['uid']); + $user_infos['userpassword'] = $pass; + //debug($user_infos); + } + if (empty($user_infos)) throw new \ErrorException("Pas d'utilisateur défini dans la session (user_infos empty) !!!"); //if (!$user_infos) $user_infos = $this->_getCurrentUserInfosFromSession(); //if (!$user_infos) throw new \ErrorException("Pas d'utilisateur défini dans la session !!!"); @@ -331,9 +348,19 @@ class UsersController extends AppController { } private function _getCurrentUserEntityFromSession($session_user = null) { $user_login = $this->_getCurrentUserLoginFromSession($session_user); - debug($user_login); // le login + DEBUG && debug($user_login); // le login if (is_null($user_login)) throw new \ErrorException("Pas de user login trouvé dans la session (user_login is null)"); - return $this->Users->find()->where(['username'=>$user_login])->first(); + $user = $this->Users->find()->where(['username'=>$user_login])->first(); + //$user = null; + if (is_null($user)) { + debug("Liste des users de la table users :"); + $all_users = $this->Users->find()->toArray(); + //$all_users = $this->Users->find()->toList(); + //debug($all_users); + for ($i = 0; $i < 2; $i++) debug($all_users[$i]); + //throw new \ErrorException("Pas de user trouvé dans la table users pour 'username'=$user_login"); + } + return $user; } @@ -343,7 +370,7 @@ class UsersController extends AppController { */ public function statsUpdateForCurrentUserWhen($session_user=null, $event_name) { $user_id = ($event_name=='sur logout') ? $this->u->id : $this->_getCurrentUserEntityFromSession($session_user)->id; - debug($user_id); // l'id du user dans table users + 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); } -- libgit2 0.21.2