From ec6de980cb7bc461e0e36ca33c43f366eab28d11 Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Fri, 13 Mar 2020 16:41:50 +0100 Subject: [PATCH] Premiers bugfixes du nouveau site responsive (4) (v3.7.9.4) --- README.md | 16 ++++++++++------ src/Controller/AppController.php | 47 +++++++++++++++++++++++++++++++---------------- src/Controller/ConfigurationsController.php | 4 ++++ src/Controller/FournisseursController.php | 6 +++++- src/Controller/MaterielsController.php | 17 ++++++++++------- 5 files changed, 60 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 93c8d48..17e6e99 100644 --- a/README.md +++ b/README.md @@ -54,13 +54,10 @@ Logiciel testé et validé sur les configurations suivantes : VERSION ACTUELLE Date: 13/03/2020 -Version: 3.7.9.3 +Version: 3.7.9.4 Author: EP -Commentaire: Premiers bugfixes du nouveau site responsive (3) (contexte: coronavirus passe stade 3) - - Invalider => renommé Dévalider - - bugfix autres listes pour profil Utilisateur - - Fournisseur peut etre créé, modif, suppr par simple Utilisateur - - Doc lié : simplifié +Commentaire: Premiers bugfixes du nouveau site responsive (4) + - Fournisseur peut etre créé, modif, suppr par simple Utilisateur (improved) IMPORTANT : @@ -96,6 +93,13 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https ----------------------------------------------------------------------------------------------------------- +13/03/2020 Version 3.7.9.3 (EP) + Premiers bugfixes du nouveau site responsive (3) (contexte: coronavirus passe stade 3) + - Invalider => renommé Dévalider + - bugfix autres listes pour profil Utilisateur + - Fournisseur peut etre créé, modif, suppr par simple Utilisateur + - Doc lié : simplifié + 12/03/2020 Version 3.7.9.2 (EP) Premiers bugfixes du nouveau site responsive (2) : - Bugfix bouton "Nouveau" pour chaque liste de contenu variable (accès donné à "Administration") diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index e4a8217..fb4e0d7 100755 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -199,6 +199,12 @@ class AppController extends Controller // public function isAuthorizedAction(AppController $controller, $roleLong, $action, $id=null, $user=null) { public function isAuthorizedAction2($controller, $roleLong, $action, $id = null, $user = null) { + /* Cette fonction n'est pas encore appelée pour de vrai, juste pour test, donc inutile d'afficher ça : + $this->myDebug("step 2B (intermediaire general): AppController.isAuthorizedAction2(controller, $roleLong, $action, $id, user)"); + $this->myDebug("- controller name is {$controller->name}"); + */ + //$this->myDebug("- user is ", $user); + $doDEBUG = true; $doDEBUG = false; @@ -362,7 +368,7 @@ class AppController extends Controller */ public function initialize() { - $this->myDebug("step AVANT 0: AppController.initialize()"); + $this->myDebug("step 0: AppController.initialize()"); parent::initialize(); @@ -396,28 +402,36 @@ class AppController extends Controller } /** - * Autorisations fréquentes utilisées par bcp de isAuthorized() de controlleurs - * Ca évite de répéter 10 fois la meme chose !!! + * (EP) + * Autorisations PAR DÉFAUT + * Appelé à la fin de isAuthorized() de chaque controller si cette fonction n'a pas return true */ public function isAuthorizedCommons($user) { + $this->myDebug("step 2B (intermediaire general): AppController.isAuthorizedCommons(user)"); + $action = $this->getActionPassed(); + //$this->myDebug("action iss: $action", null, true); + $this->myDebug("action is: $action"); + // $role = $this->getUserRole($user); // Seul Administration (et +) peut ajouter, supprimer ou modifier - if (in_array($action, [ - 'add', - 'delete', - 'edit' - ])) { - if ($this->USER_IS_ADMIN_AT_LEAST()) - return true; + if (in_array($action, ['add', 'edit', 'delete'])) { + return ($this->USER_IS_ADMIN_AT_LEAST()); + /* + if ($this->USER_IS_ADMIN_AT_LEAST()) return true; // Les autres n'y ont pas accès return false; + */ } // By default // return parent::isAuthorized($user); + + // Ne pas faire ça car $this sera interprété comme le controleur SPECIFIQUE et non AppController : + //return $this->isAuthorized($user); + // Donc, il faut être explicite : return AppController::isAuthorized($user); } @@ -433,7 +447,7 @@ class AppController extends Controller */ public function isAuthorized($user) { - $this->myDebug("step 1: AppController.isAuthorized()"); + $this->myDebug("step 2C (general): AppController.isAuthorized()"); /* * // ATTENTION, normalement, on devrait tester si role est défini..., mais c'est sans doute pas utile @@ -605,7 +619,7 @@ class AppController extends Controller */ public function beforeFilter(Event $event) { - $this->myDebug("step 0: AppController.beforeFilter()"); + $this->myDebug("step 1B (general): AppController.beforeFilter()"); // !!! Ne jamais autoriser l'action 'login', sinon cela va créer des problèmes sur le fonctionnement normal de AuthComponent (cf doc) !!! // parent::beforeFilter($event); @@ -639,8 +653,8 @@ class AppController extends Controller //$role = $this->getUserRole(); $this->userRole = $this->getUserRole(); $profile = self::PROFILES["$this->userRole"]; + $this->myDebug("userRole is {$this->getUserRole()}", "profile is: $profile"); - // Set General CONSTANTS for all CONTROLLERS // (Before, they used to be in beforeFilter()) // - Users constants @@ -737,7 +751,7 @@ class AppController extends Controller */ public function beforeRender(Event $event) { - $this->myDebug("step 3: AppController.beforeRender()"); + $this->myDebug("step 4B (general) : AppController.beforeRender() - [step 3 = action() si existe]"); // (EP 23/5/19) moved to beforeFilter() /* @@ -987,7 +1001,7 @@ class AppController extends Controller */ } - function myDebug($arg, $stop=false) + function myDebug($arg1, $arg2=null, $stop=false) { if ($this->isLabinventDebugMode()) { @@ -995,7 +1009,8 @@ class AppController extends Controller // car sinon, aucun vardump() ou debug() ne s'affiche, why ???... Configure::write('debug', true); - debug($arg); + debug($arg1); + if ($arg2) debug($arg2); if ($stop) exit(); } diff --git a/src/Controller/ConfigurationsController.php b/src/Controller/ConfigurationsController.php index 644fd11..0c5fba6 100644 --- a/src/Controller/ConfigurationsController.php +++ b/src/Controller/ConfigurationsController.php @@ -28,6 +28,10 @@ class ConfigurationsController extends AppController */ public function isAuthorized($user) { + $this->myDebug("step AVANT 1: ConfigurationsController.isAuthorized(user)"); + $this->myDebug("user is:"); + $this->myDebug($user); + // $configuration = $this->confLabinvent; // $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; $action = $this->request->getAttribute('params')['action']; diff --git a/src/Controller/FournisseursController.php b/src/Controller/FournisseursController.php index bf1301e..4996060 100644 --- a/src/Controller/FournisseursController.php +++ b/src/Controller/FournisseursController.php @@ -21,6 +21,10 @@ class FournisseursController extends AppController */ public function isAuthorized($user) { + $this->myDebug("step 2A (specific): FournisseursController.isAuthorized(user)"); + $this->myDebug("user is:", $user); + //$this->myDebug($user); + // $configuration = $this->confLabinvent; // $action = $this->request->getAttribute('params')['action']; // $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; @@ -44,7 +48,7 @@ class FournisseursController extends AppController * } */ //Tout le monde y a accés en ajout - if( in_array($action,['add'])) { + if( in_array($action,['add', 'edit', 'delete'])) { return true; } diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 0255011..0808d99 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -152,7 +152,7 @@ class MaterielsController extends AppController //use Cake\Event\Event; public function beforeFilter(\Cake\Event\Event $event) { - $this->myDebug("step 0: MaterielsController.beforeFilter()"); + $this->myDebug("step 1A (specific): MaterielsController.beforeFilter()"); // ICI CEST OK /* @@ -177,7 +177,8 @@ class MaterielsController extends AppController */ public function beforeRender(\Cake\Event\Event $event) { - $this->myDebug("step 3: MaterielsController.beforeRender()"); + $this->myDebug("step 4A (specific) : MaterielsController.beforeRender() - [step 3 = action() si existe]"); + parent::beforeRender($event); @@ -238,8 +239,8 @@ class MaterielsController extends AppController public function isAuthorized($userFromSession) { //if (parent::isAuthorized($userFromSession)) return TRUE; - $this->myDebug("step 1: MaterielsController.isAuthorized()"); - + $this->myDebug("step 2A (specific): MaterielsController.isAuthorized(user)"); + $this->myDebug("user is:", $userFromSession); /* ICI C'EST OK $toto="tititoto"; $this->set(compact('toto')); @@ -305,6 +306,8 @@ class MaterielsController extends AppController //$toto="tititoto"; //$this->set(compact('toto')); + $this->myDebug("step 2B (intermediaire): MaterielsController.isAuthorizedAction($role, $action, $id, user, $userCname)"); + //$this->myDebug("- user is ", $user); switch ($action) { @@ -662,7 +665,7 @@ class MaterielsController extends AppController */ public function index() { - $this->myDebug("step 2: MaterielsController.index()"); + $this->myDebug("step 3: MaterielsController.index()"); $condition = ''; if (isset($this->request->getAttribute('params')['pass'][0])) { @@ -802,7 +805,7 @@ class MaterielsController extends AppController */ public function view($id = null) { - $this->myDebug("step 2: MaterielsController.view()"); + $this->myDebug("step 3: MaterielsController.view()"); $materiel = $this->Materiels->get($id, [ 'contain' => [ @@ -950,7 +953,7 @@ class MaterielsController extends AppController */ public function add_or_edit($is_add, $id=null, $valeurs=null, $erreurs=null) { - $this->myDebug("step 2: MaterielsController.add_or_edit()"); + $this->myDebug("step 3: MaterielsController.add_or_edit()"); $usersTable = TableRegistry::getTableLocator()->get('Users'); -- libgit2 0.21.2