Commit ec6de980cb7bc461e0e36ca33c43f366eab28d11

Authored by Etienne Pallier
1 parent 33b54375
Exists in master and in 1 other branch dev

Premiers bugfixes du nouveau site responsive (4) (v3.7.9.4)

- Fournisseur peut etre créé, modif, suppr par simple Utilisateur
(improved)
README.md
... ... @@ -54,13 +54,10 @@ Logiciel testé et validé sur les configurations suivantes :
54 54 VERSION ACTUELLE
55 55  
56 56 Date: 13/03/2020
57   -Version: 3.7.9.3
  57 +Version: 3.7.9.4
58 58 Author: EP
59   -Commentaire: Premiers bugfixes du nouveau site responsive (3) (contexte: coronavirus passe stade 3)
60   - - Invalider => renommé Dévalider
61   - - bugfix autres listes pour profil Utilisateur
62   - - Fournisseur peut etre créé, modif, suppr par simple Utilisateur
63   - - Doc lié : simplifié
  59 +Commentaire: Premiers bugfixes du nouveau site responsive (4)
  60 + - Fournisseur peut etre créé, modif, suppr par simple Utilisateur (improved)
64 61  
65 62  
66 63 IMPORTANT :
... ... @@ -96,6 +93,13 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https
96 93  
97 94 -----------------------------------------------------------------------------------------------------------
98 95  
  96 +13/03/2020 Version 3.7.9.3 (EP)
  97 + Premiers bugfixes du nouveau site responsive (3) (contexte: coronavirus passe stade 3)
  98 + - Invalider => renommé Dévalider
  99 + - bugfix autres listes pour profil Utilisateur
  100 + - Fournisseur peut etre créé, modif, suppr par simple Utilisateur
  101 + - Doc lié : simplifié
  102 +
99 103 12/03/2020 Version 3.7.9.2 (EP)
100 104 Premiers bugfixes du nouveau site responsive (2) :
101 105 - Bugfix bouton "Nouveau" pour chaque liste de contenu variable (accès donné à "Administration")
... ...
src/Controller/AppController.php
... ... @@ -199,6 +199,12 @@ class AppController extends Controller
199 199 // public function isAuthorizedAction(AppController $controller, $roleLong, $action, $id=null, $user=null) {
200 200 public function isAuthorizedAction2($controller, $roleLong, $action, $id = null, $user = null)
201 201 {
  202 + /* Cette fonction n'est pas encore appelée pour de vrai, juste pour test, donc inutile d'afficher ça :
  203 + $this->myDebug("step 2B (intermediaire general): AppController.isAuthorizedAction2(controller, $roleLong, $action, $id, user)");
  204 + $this->myDebug("- controller name is {$controller->name}");
  205 + */
  206 + //$this->myDebug("- user is ", $user);
  207 +
202 208 $doDEBUG = true;
203 209 $doDEBUG = false;
204 210  
... ... @@ -362,7 +368,7 @@ class AppController extends Controller
362 368 */
363 369 public function initialize()
364 370 {
365   - $this->myDebug("step AVANT 0: AppController.initialize()");
  371 + $this->myDebug("step 0: AppController.initialize()");
366 372  
367 373 parent::initialize();
368 374  
... ... @@ -396,28 +402,36 @@ class AppController extends Controller
396 402 }
397 403  
398 404 /**
399   - * Autorisations fréquentes utilisées par bcp de isAuthorized() de controlleurs
400   - * Ca évite de répéter 10 fois la meme chose !!!
  405 + * (EP)
  406 + * Autorisations PAR DÉFAUT
  407 + * Appelé à la fin de isAuthorized() de chaque controller si cette fonction n'a pas return true
401 408 */
402 409 public function isAuthorizedCommons($user)
403 410 {
  411 + $this->myDebug("step 2B (intermediaire general): AppController.isAuthorizedCommons(user)");
  412 +
404 413 $action = $this->getActionPassed();
  414 + //$this->myDebug("action iss: $action", null, true);
  415 + $this->myDebug("action is: $action");
  416 +
405 417 // $role = $this->getUserRole($user);
406 418  
407 419 // Seul Administration (et +) peut ajouter, supprimer ou modifier
408   - if (in_array($action, [
409   - 'add',
410   - 'delete',
411   - 'edit'
412   - ])) {
413   - if ($this->USER_IS_ADMIN_AT_LEAST())
414   - return true;
  420 + if (in_array($action, ['add', 'edit', 'delete'])) {
  421 + return ($this->USER_IS_ADMIN_AT_LEAST());
  422 + /*
  423 + if ($this->USER_IS_ADMIN_AT_LEAST()) return true;
415 424 // Les autres n'y ont pas accès
416 425 return false;
  426 + */
417 427 }
418 428  
419 429 // By default
420 430 // return parent::isAuthorized($user);
  431 +
  432 + // Ne pas faire ça car $this sera interprété comme le controleur SPECIFIQUE et non AppController :
  433 + //return $this->isAuthorized($user);
  434 + // Donc, il faut être explicite :
421 435 return AppController::isAuthorized($user);
422 436 }
423 437  
... ... @@ -433,7 +447,7 @@ class AppController extends Controller
433 447 */
434 448 public function isAuthorized($user)
435 449 {
436   - $this->myDebug("step 1: AppController.isAuthorized()");
  450 + $this->myDebug("step 2C (general): AppController.isAuthorized()");
437 451  
438 452 /*
439 453 * // 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
605 619 */
606 620 public function beforeFilter(Event $event)
607 621 {
608   - $this->myDebug("step 0: AppController.beforeFilter()");
  622 + $this->myDebug("step 1B (general): AppController.beforeFilter()");
609 623  
610 624 // !!! Ne jamais autoriser l'action 'login', sinon cela va créer des problèmes sur le fonctionnement normal de AuthComponent (cf doc) !!!
611 625 // parent::beforeFilter($event);
... ... @@ -639,8 +653,8 @@ class AppController extends Controller
639 653 //$role = $this->getUserRole();
640 654 $this->userRole = $this->getUserRole();
641 655 $profile = self::PROFILES["$this->userRole"];
  656 + $this->myDebug("userRole is {$this->getUserRole()}", "profile is: $profile");
642 657  
643   -
644 658 // Set General CONSTANTS for all CONTROLLERS
645 659 // (Before, they used to be in beforeFilter())
646 660 // - Users constants
... ... @@ -737,7 +751,7 @@ class AppController extends Controller
737 751 */
738 752 public function beforeRender(Event $event)
739 753 {
740   - $this->myDebug("step 3: AppController.beforeRender()");
  754 + $this->myDebug("step 4B (general) : AppController.beforeRender() - [step 3 = action() si existe]");
741 755  
742 756 // (EP 23/5/19) moved to beforeFilter()
743 757 /*
... ... @@ -987,7 +1001,7 @@ class AppController extends Controller
987 1001 */
988 1002 }
989 1003  
990   - function myDebug($arg, $stop=false)
  1004 + function myDebug($arg1, $arg2=null, $stop=false)
991 1005 {
992 1006 if ($this->isLabinventDebugMode()) {
993 1007  
... ... @@ -995,7 +1009,8 @@ class AppController extends Controller
995 1009 // car sinon, aucun vardump() ou debug() ne s'affiche, why ???...
996 1010 Configure::write('debug', true);
997 1011  
998   - debug($arg);
  1012 + debug($arg1);
  1013 + if ($arg2) debug($arg2);
999 1014  
1000 1015 if ($stop) exit();
1001 1016 }
... ...
src/Controller/ConfigurationsController.php
... ... @@ -28,6 +28,10 @@ class ConfigurationsController extends AppController
28 28 */
29 29 public function isAuthorized($user)
30 30 {
  31 + $this->myDebug("step AVANT 1: ConfigurationsController.isAuthorized(user)");
  32 + $this->myDebug("user is:");
  33 + $this->myDebug($user);
  34 +
31 35 // $configuration = $this->confLabinvent;
32 36 // $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
33 37 $action = $this->request->getAttribute('params')['action'];
... ...
src/Controller/FournisseursController.php
... ... @@ -21,6 +21,10 @@ class FournisseursController extends AppController
21 21 */
22 22 public function isAuthorized($user)
23 23 {
  24 + $this->myDebug("step 2A (specific): FournisseursController.isAuthorized(user)");
  25 + $this->myDebug("user is:", $user);
  26 + //$this->myDebug($user);
  27 +
24 28 // $configuration = $this->confLabinvent;
25 29 // $action = $this->request->getAttribute('params')['action'];
26 30 // $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
... ... @@ -44,7 +48,7 @@ class FournisseursController extends AppController
44 48 * }
45 49 */
46 50 //Tout le monde y a accés en ajout
47   - if( in_array($action,['add'])) {
  51 + if( in_array($action,['add', 'edit', 'delete'])) {
48 52 return true;
49 53 }
50 54  
... ...
src/Controller/MaterielsController.php
... ... @@ -152,7 +152,7 @@ class MaterielsController extends AppController
152 152 //use Cake\Event\Event;
153 153 public function beforeFilter(\Cake\Event\Event $event)
154 154 {
155   - $this->myDebug("step 0: MaterielsController.beforeFilter()");
  155 + $this->myDebug("step 1A (specific): MaterielsController.beforeFilter()");
156 156  
157 157 // ICI CEST OK
158 158 /*
... ... @@ -177,7 +177,8 @@ class MaterielsController extends AppController
177 177 */
178 178 public function beforeRender(\Cake\Event\Event $event)
179 179 {
180   - $this->myDebug("step 3: MaterielsController.beforeRender()");
  180 + $this->myDebug("step 4A (specific) : MaterielsController.beforeRender() - [step 3 = action() si existe]");
  181 +
181 182  
182 183 parent::beforeRender($event);
183 184  
... ... @@ -238,8 +239,8 @@ class MaterielsController extends AppController
238 239 public function isAuthorized($userFromSession)
239 240 {
240 241 //if (parent::isAuthorized($userFromSession)) return TRUE;
241   - $this->myDebug("step 1: MaterielsController.isAuthorized()");
242   -
  242 + $this->myDebug("step 2A (specific): MaterielsController.isAuthorized(user)");
  243 + $this->myDebug("user is:", $userFromSession);
243 244 /* ICI C'EST OK
244 245 $toto="tititoto";
245 246 $this->set(compact('toto'));
... ... @@ -305,6 +306,8 @@ class MaterielsController extends AppController
305 306 //$toto="tititoto";
306 307 //$this->set(compact('toto'));
307 308  
  309 + $this->myDebug("step 2B (intermediaire): MaterielsController.isAuthorizedAction($role, $action, $id, user, $userCname)");
  310 + //$this->myDebug("- user is ", $user);
308 311  
309 312 switch ($action) {
310 313  
... ... @@ -662,7 +665,7 @@ class MaterielsController extends AppController
662 665 */
663 666 public function index()
664 667 {
665   - $this->myDebug("step 2: MaterielsController.index()");
  668 + $this->myDebug("step 3: MaterielsController.index()");
666 669  
667 670 $condition = '';
668 671 if (isset($this->request->getAttribute('params')['pass'][0])) {
... ... @@ -802,7 +805,7 @@ class MaterielsController extends AppController
802 805 */
803 806 public function view($id = null)
804 807 {
805   - $this->myDebug("step 2: MaterielsController.view()");
  808 + $this->myDebug("step 3: MaterielsController.view()");
806 809  
807 810 $materiel = $this->Materiels->get($id, [
808 811 'contain' => [
... ... @@ -950,7 +953,7 @@ class MaterielsController extends AppController
950 953 */
951 954 public function add_or_edit($is_add, $id=null, $valeurs=null, $erreurs=null)
952 955 {
953   - $this->myDebug("step 2: MaterielsController.add_or_edit()");
  956 + $this->myDebug("step 3: MaterielsController.add_or_edit()");
954 957  
955 958 $usersTable = TableRegistry::getTableLocator()->get('Users');
956 959  
... ...