Commit 382bc7dd277704d4e57deb24e553649da35d2abd
Exists in
master
and in
1 other branch
Merge dev branch into master branch (vv3.7.9.54)
Showing
4 changed files
with
162 additions
and
69 deletions
Show diff stats
README.md
... | ... | @@ -54,13 +54,10 @@ Logiciel testé et validé sur les configurations suivantes : |
54 | 54 | VERSION ACTUELLE |
55 | 55 | |
56 | 56 | Date: 03/07/2020 |
57 | -Version: 3.7.9.53 | |
57 | +Version: 3.7.9.54 | |
58 | 58 | Author: EP |
59 | 59 | Commentaire: |
60 | - - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php | |
61 | - - Changement stratégie find matériels, liste des Propriétaire : ce n'est plus la liste des gens qui ont au moins 1 materiel, mais la liste de tous les utilisateurs (tout le ldap) | |
62 | - - Bugfix suivis : type suivi doit être obligatoire !!! | |
63 | - - Désactivé tests en php5 sur SurCategories à cause erreur Template file "Surcategories/index.ctp" is missing (General.php line 1101) | |
60 | + - Bugfix test SurCategories : devrait maintenant marcher sur php5 et php7 | |
64 | 61 | |
65 | 62 | - Amélioration page /pages/acls |
66 | 63 | - Tests génériques automatiques pour (presque) toutes les actions de (presque) tous les controleurs principaux (Materiels, Suivis, Emprunts, Users) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi !!!) |
... | ... | @@ -104,6 +101,9 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
104 | 101 | |
105 | 102 | ----------------------------------------------------------------------------------------------------------- |
106 | 103 | |
104 | +03/07/2020 v3.7.9.53 (EP) | |
105 | + - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php | |
106 | + | |
107 | 107 | 30/06/2020 v3.7.9.51-52 (EP) |
108 | 108 | - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel |
109 | 109 | => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci) |
... | ... | @@ -115,21 +115,13 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
115 | 115 | |
116 | 116 | 29/06/2020 v3.7.9.50 (EP) |
117 | 117 | - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED) |
118 | - - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc... | |
119 | - - Nombreuses refactorisations dans les tests | |
120 | 118 | |
121 | 119 | 26/06/2020 v3.7.9.48-49 (EP) |
122 | 120 | - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). |
123 | - - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/ | |
124 | - - Nombreuses refactorisations | |
125 | 121 | |
126 | 122 | 25/06/2020 v3.7.9.43-47 (EP) |
127 | 123 | - TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action) |
128 | 124 | à partir d'UN UNIQUE matériel de test qui est modifié à souhait pour essayer de représenter tous les grands cas possibles |
129 | - - bugfix printLabel() : impression etiquette ne marchait plus !! | |
130 | - - Amélioration page /pages/acls | |
131 | - - bugfixes : ce test, plus status-to-be-archived => status-tobearchived, plus SurcategoriesController => SurCategoriesController | |
132 | - - ... | |
133 | 125 | |
134 | 126 | 23/06/2020 v3.7.9.40-42 (EP) |
135 | 127 | - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, notice, error...) : disponible depuis la page Outils (/pages/logs) |
... | ... | @@ -139,51 +131,27 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
139 | 131 | 19/06/2020 v3.7.9.39 (EP) |
140 | 132 | - TEST1 : Ajout d'un 1er très gros test générique automatique pour (presque) TOUTES les actions de (presque) TOUS les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi, et j'ai bien fait car il est spécial ne serait-ce que de par son nom !!!) |
141 | 133 | - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) |
142 | - - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 200 (pile poil) !!! | |
143 | - - ajout champ 'nom' à la table emprunts => ajout d'un fichier sql pour la mise à jour | |
144 | - - ... | |
145 | - | |
146 | -17/06/2020 v3.7.9.38 (EP) | |
147 | - - Tests génériques automatiques pour (presque) toutes les actions de tous les controleurs principaux (Materiels, Suivis, Emprunts) | |
148 | - - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) | |
149 | - - L'ajout d'un suivi, emprunt, ou document n'est plus autorisé SANS préciser l'id du matériel concerné, ce qui est logique | |
150 | - - ... | |
151 | 134 | |
152 | 135 | 12/06/2020 v3.7.9.37 (EP) |
153 | - - Tests génériques automatiques pour (presque) toutes les actions du controleur Materiels => OK | |
154 | 136 | - Amélioré l'action materiels/print_label_ruban (impression etiquette) : un peu plus conforme au standard, un peu moins bidouille qu'avant, et surtout plus besoin de la finir par un "sale" "exit" => donc on peut maintenant la tester, et c'est ce qui a été fait ! (elle est pas encore total nickel mais bon c'est mieux qu'avant) |
155 | 137 | - modifié Fixtures pour supprimer les 'id' explicites |
156 | 138 | - bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived |
157 | 139 | |
158 | -10/06/2020 v3.7.9.36 (EP) | |
159 | - - Bugfixes pages tools-sm (autres listes), etiqueteuses, acls, suivis (plus de groupes) | |
160 | - | |
161 | 140 | 10/06/2020 v3.7.9.35 (EP) |
162 | 141 | - Requete SQL pour répercuter tous les changements depuis avril !!! |
163 | 142 | - 1ère version officielle mise en PROD depuis un bail (presque 2 mois) |
164 | 143 | |
165 | 144 | 05/06/2020 v3.7.9.33 (EP) |
166 | 145 | - bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!! |
167 | - - bugfix : isSameGroup | |
168 | - - tous les tests actuels ok | |
169 | 146 | - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST() |
170 | 147 | => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!! |
171 | 148 | => on part des règles générales par défaut, puis on adapte si besoin, cool non ? |
172 | 149 | - Vues view (déjà fait avant) et index : les boutons d'action (éditer, valider, supprimer...) s'affichent désormais en fonction des autorisations centralisées |
173 | 150 | |
174 | -05/06/2020 v3.7.9.32 (EP) | |
175 | - - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO | |
176 | - => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!! | |
177 | - => on part des règles générales par défaut, puis on adapte si besoin, cool non ? | |
178 | - | |
179 | -04/06/2020 v3.7.9.31 (EP) | |
151 | +04/06/2020 v3.7.9.30-31 (EP) | |
180 | 152 | - MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation |
181 | 153 | - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES |
182 | 154 | - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE |
183 | - - AMELIORATIONS DE LA PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) | |
184 | - => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple) | |
185 | - | |
186 | -03/06/2020 v3.7.9.30 (EP) | |
187 | 155 | - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) |
188 | 156 | => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple) |
189 | 157 | |
... | ... | @@ -199,12 +167,6 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
199 | 167 | quelque soit l'autorisation, donc c'est très LISIBLE et facile à modifier |
200 | 168 | |
201 | 169 | 15/05/2020 v3.7.9.28 (EP) |
202 | - - Renforcement tests suivis et emprunts (materiel validated only) et refactorisations | |
203 | - - ajout de 2 très gros tests qui tuent des vues matos/index et matos/view en cours... (ce qui m'évitera plein de tests à la main) | |
204 | - - Ajout de la méthode complexe isManageableByUser() dans MaterielsController.php et dans Materiel.php | |
205 | - - Ajout de la méthode getRelatedMateriel() dans AppController, très optimisée | |
206 | - - Vers une unicité toujours plus grande des tests d'autorisation d'action (uniquement dans isAuthorized()) | |
207 | - - Utilisation systématique et UNIQUE de la méthode isAuthorized() de CHAQUE controleur pour savoir si une action est autorisée ou pas | |
208 | 170 | - Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas |
209 | 171 | => bcp plus centralisé qu'avant, et bcp plus clean et lisible |
210 | 172 | => désormais TOUS les droits sont définis dans la SEULE méthode isAuthorized() de CHAQUE controleur et NULLE PART AILLEURS |
... | ... | @@ -256,12 +218,9 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
256 | 218 | - GROS bugfix check dates : uniformisation du format date partout (vues et DatePicker.js et code javascript) => dd/mm/aaaa (au lieu de dd-mm-aa) |
257 | 219 | - nombreuses refactorisations, généralisations et améliorations du code javascript (bcp de refactorisation dans script.js) |
258 | 220 | |
259 | -09/04/2020 Version 3.7.9.17 (EP) | |
260 | - Amelioration Suivis (3) : | |
221 | +09/04/2020 Version 3.7.9.16-17 (EP) | |
222 | + Amelioration Suivis : | |
261 | 223 | - ajout champ is_metro dans table type_suivis pour les types liés au module métrologie |
262 | - | |
263 | -07/04/2020 Version 3.7.9.16 (EP) | |
264 | - Amelioration Suivis (2) : | |
265 | 224 | - ajout champ "is_regular" dans table type_suivis pour déclarer les types de suivis réguliers (fréquence) ou irréguliers (date) |
266 | 225 | - début d'utilisation des migrations de BD |
267 | 226 | |
... | ... | @@ -292,15 +251,13 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
292 | 251 | SUIVIS : Amélioration et nombreux Bugfixes !!! (1) |
293 | 252 | - ajout intitulé comme titre |
294 | 253 | |
295 | -23/03/2020 Version 3.7.9.7 (EP) | |
254 | +23/03/2020 Version 3.7.9.6-7 (EP) | |
296 | 255 | DOCS LIÉS : Amélioration de la gestion des docs attachés (3) |
297 | 256 | - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables |
257 | + - Amélioration et nombreux bugfixes de la gestion des docs attachés (2) | |
298 | 258 | |
299 | -20/03/2020 Version 3.7.9.6 (EP) | |
300 | - DOCS LIÉS : Amélioration et nombreux bugfixes de la gestion des docs attachés (2) | |
301 | - | |
302 | -16/03/2020 Version 3.7.9.5 (EP) | |
303 | - Premiers bugfixes du nouveau site responsive (1 à 5) | |
259 | +16/03/2020 Version 3.7.9.1-5 (EP) | |
260 | + Premiers bugfixes du nouveau site responsive | |
304 | 261 | |
305 | 262 | 11/03/2020 Version 3.7.9.0 (EP) |
306 | 263 | NOUVELLE VERSION RESPONSIVE validée et installée officiellement à l'IRAP et au CRAL (mobile ready) |
... | ... | @@ -340,6 +297,119 @@ CHANGEMENTS DANS LE DÉTAIL (pas forcément visibles, parfois très importants m |
340 | 297 | |
341 | 298 | ----------------------------------------------------------------------------------------------------------- |
342 | 299 | |
300 | +03/07/2020 v3.7.9.53-54 (EP) | |
301 | + - Bugfix test SurCategories : devrait maintenant marcher sur php5 et php7 | |
302 | + - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php | |
303 | + - Changement stratégie find matériels, liste des Propriétaire : ce n'est plus la liste des gens qui ont au moins 1 materiel, mais la liste de tous les utilisateurs (tout le ldap) | |
304 | + - Bugfix suivis : type suivi doit être obligatoire !!! | |
305 | + | |
306 | +30/06/2020 v3.7.9.51-52 (EP) | |
307 | + - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel | |
308 | + => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci) | |
309 | + => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !! | |
310 | + - Bugfix test de ces mêmes actions (mal testées avant) | |
311 | + - L'ajout (/add) d'un suivi, emprunt, ou doc doit toujours se faire avec l'id de l'entité parente associée (en général materiel id) | |
312 | + => (/add/id) sinon refus | |
313 | + - ... | |
314 | + | |
315 | +29/06/2020 v3.7.9.50 (EP) | |
316 | + - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED) | |
317 | + - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc... | |
318 | + - Nombreuses refactorisations dans les tests | |
319 | + | |
320 | +26/06/2020 v3.7.9.48-49 (EP) | |
321 | + - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). | |
322 | + - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/ | |
323 | + - Nombreuses refactorisations | |
324 | + | |
325 | +25/06/2020 v3.7.9.43-47 (EP) | |
326 | + - TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action) | |
327 | + à partir d'UN UNIQUE matériel de test qui est modifié à souhait pour essayer de représenter tous les grands cas possibles | |
328 | + - bugfix printLabel() : impression etiquette ne marchait plus !! | |
329 | + - Amélioration page /pages/acls | |
330 | + - bugfixes : ce test, plus status-to-be-archived => status-tobearchived, plus SurcategoriesController => SurCategoriesController | |
331 | + - ... | |
332 | + | |
333 | +23/06/2020 v3.7.9.40-42 (EP) | |
334 | + - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, notice, error...) : disponible depuis la page Outils (/pages/logs) | |
335 | + - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus | |
336 | + - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!! | |
337 | + | |
338 | +19/06/2020 v3.7.9.39 (EP) | |
339 | + - TEST1 : Ajout d'un 1er très gros test générique automatique pour (presque) TOUTES les actions de (presque) TOUS les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi, et j'ai bien fait car il est spécial ne serait-ce que de par son nom !!!) | |
340 | + - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) | |
341 | + - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 200 (pile poil) !!! | |
342 | + - ajout champ 'nom' à la table emprunts => ajout d'un fichier sql pour la mise à jour | |
343 | + - ... | |
344 | + | |
345 | +17/06/2020 v3.7.9.38 (EP) | |
346 | + - Tests génériques automatiques pour (presque) toutes les actions de tous les controleurs principaux (Materiels, Suivis, Emprunts) | |
347 | + - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) | |
348 | + - L'ajout d'un suivi, emprunt, ou document n'est plus autorisé SANS préciser l'id du matériel concerné, ce qui est logique | |
349 | + - ... | |
350 | + | |
351 | +12/06/2020 v3.7.9.37 (EP) | |
352 | + - Tests génériques automatiques pour (presque) toutes les actions du controleur Materiels => OK | |
353 | + - Amélioré l'action materiels/print_label_ruban (impression etiquette) : un peu plus conforme au standard, un peu moins bidouille qu'avant, et surtout plus besoin de la finir par un "sale" "exit" => donc on peut maintenant la tester, et c'est ce qui a été fait ! (elle est pas encore total nickel mais bon c'est mieux qu'avant) | |
354 | + - modifié Fixtures pour supprimer les 'id' explicites | |
355 | + - bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived | |
356 | + | |
357 | +10/06/2020 v3.7.9.36 (EP) | |
358 | + - Bugfixes pages tools-sm (autres listes), etiqueteuses, acls, suivis (plus de groupes) | |
359 | + | |
360 | +10/06/2020 v3.7.9.35 (EP) | |
361 | + - Requete SQL pour répercuter tous les changements depuis avril !!! | |
362 | + - 1ère version officielle mise en PROD depuis un bail (presque 2 mois) | |
363 | + | |
364 | +05/06/2020 v3.7.9.33 (EP) | |
365 | + - bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!! | |
366 | + - bugfix : isSameGroup | |
367 | + - tous les tests actuels ok | |
368 | + - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST() | |
369 | + => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!! | |
370 | + => on part des règles générales par défaut, puis on adapte si besoin, cool non ? | |
371 | + - Vues view (déjà fait avant) et index : les boutons d'action (éditer, valider, supprimer...) s'affichent désormais en fonction des autorisations centralisées | |
372 | + | |
373 | +05/06/2020 v3.7.9.32 (EP) | |
374 | + - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO | |
375 | + => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!! | |
376 | + => on part des règles générales par défaut, puis on adapte si besoin, cool non ? | |
377 | + | |
378 | +04/06/2020 v3.7.9.31 (EP) | |
379 | + - MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation | |
380 | + - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES | |
381 | + - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE | |
382 | + - AMELIORATIONS DE LA PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) | |
383 | + => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple) | |
384 | + | |
385 | +03/06/2020 v3.7.9.30 (EP) | |
386 | + - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) | |
387 | + => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple) | |
388 | + | |
389 | +03/06/2020 v3.7.9.29 (EP) | |
390 | + - NOUVEAU SYSTEME D'AUTORISATION DES ACTIONS => CENTRALISÉ et testé OK | |
391 | + => TOUS les tests passent sauf certains qui ne passent plus car les nouvelles conditions sont plus strictes | |
392 | + (ils ont été temporairement désactivés en attendant réécriture plus générique qui viendra très vite) | |
393 | + => Autorisations définies dans chaque controleur par setAuthorizations() qui initialise un tableau UNIQUE de AppController ($this->is_authorized_action) | |
394 | + => La méthode isAuthorized() de chaque controleur appelle isAuthorizedAction() (de AppController) qui autorise ou pas l'action en fonction de ce tableau unique | |
395 | + => Quand on veut changer une autorisation, il suffit de le faire UNE SEULE FOIS dans la méthode setAuthorizations() | |
396 | + Cette autorisation sera alors prise en compte PARTOUT dans le code (code des actions, des vues, etc...) | |
397 | + => L'initialisation des autorisations est faite (par la méthode setAuthorizationForAction() de AppController) dans un format standard, | |
398 | + quelque soit l'autorisation, donc c'est très LISIBLE et facile à modifier | |
399 | + | |
400 | +15/05/2020 v3.7.9.28 (EP) | |
401 | + - Renforcement tests suivis et emprunts (materiel validated only) et refactorisations | |
402 | + - ajout de 2 très gros tests qui tuent des vues matos/index et matos/view en cours... (ce qui m'évitera plein de tests à la main) | |
403 | + - Ajout de la méthode complexe isManageableByUser() dans MaterielsController.php et dans Materiel.php | |
404 | + - Ajout de la méthode getRelatedMateriel() dans AppController, très optimisée | |
405 | + - Vers une unicité toujours plus grande des tests d'autorisation d'action (uniquement dans isAuthorized()) | |
406 | + - Utilisation systématique et UNIQUE de la méthode isAuthorized() de CHAQUE controleur pour savoir si une action est autorisée ou pas | |
407 | + - Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas | |
408 | + => bcp plus centralisé qu'avant, et bcp plus clean et lisible | |
409 | + => désormais TOUS les droits sont définis dans la SEULE méthode isAuthorized() de CHAQUE controleur et NULLE PART AILLEURS | |
410 | + => si on veut changer un droit d'accès quelconque, on ne le change QUE là. Ouf, on respire, c'est bien plus cohérent et maintenable qu'avant | |
411 | + => FIN de la galère de la gestion des droits (acl) enfin, il aura fallu quelques années pour y parvenir !!! | |
412 | + | |
343 | 413 | 11/05/2020 v3.7.9.27 (EP) |
344 | 414 | - Ajout d'un LOG applicatif dans le fichier /logs/debug.log pour toutes les actions importantes (add, edit, delete, ...) qui permet de savoir kiafekoi |
345 | 415 | - Suppression des méthodes isAuthorizedAction() et isAuthorizedActionFor() car plus simple de ne garder QUE isAuthorized() en la modifiant un peu... => du coup, c'est désormais cette SEULE méthode (dans CHAQUE controleur) qui décide de l'accès ou non à une action selon le profil utilisateur | ... | ... |
tests/TestCase/Controller/General.php
... | ... | @@ -11,6 +11,7 @@ use App\Controller\MaterielsController; |
11 | 11 | use App\Controller\SuivisController; |
12 | 12 | //use App\Controller\SurCategoriesController; |
13 | 13 | use Cake\Http\Exception\NotImplementedException; |
14 | +use Cake\Utility\Inflector; | |
14 | 15 | |
15 | 16 | //use App\Controller\MaterielsController; |
16 | 17 | |
... | ... | @@ -693,29 +694,43 @@ class General extends TestCase { |
693 | 694 | |
694 | 695 | |
695 | 696 | protected function inflectEntityName($entities_name) { |
696 | - $entities_name = strtolower($entities_name); | |
697 | + //$entities_name = strtolower($entities_name); | |
697 | 698 | switch ($entities_name) { |
699 | + case 'Materiel': $entities_name = 'Matériel'; break; | |
700 | + case 'Materiels': $entities_name = 'Matériels'; break; | |
698 | 701 | |
702 | + case 'User': $entities_name = 'Utilisateur'; break; | |
703 | + case 'Users': $entities_name = 'Utilisateurs'; break; | |
704 | + | |
705 | + case 'SurCategorie': $entities_name = 'Domaine'; break; | |
706 | + case 'SurCategories': $entities_name = 'Domaines'; break; | |
707 | + | |
708 | + /* | |
699 | 709 | case 'materiel': $entities_name = 'matériel'; break; |
700 | 710 | case 'materiels': $entities_name = 'matériels'; break; |
701 | 711 | |
702 | 712 | case 'user': $entities_name = 'utilisateur'; break; |
703 | 713 | case 'users': $entities_name = 'utilisateurs'; break; |
704 | 714 | |
705 | - case 'surcategorie': $entities_name = 'domaine'; break; | |
706 | - case 'surcategories': $entities_name = 'domaines'; break; | |
715 | + case 'sur-categorie': $entities_name = 'domaine'; break; | |
716 | + case 'sur-categories': $entities_name = 'domaines'; break; | |
717 | + */ | |
707 | 718 | } |
708 | 719 | // Par défaut, aucun changement (ex: 'suivis' => 'suivis') |
709 | - return $entities_name; | |
720 | + //return $entities_name; | |
721 | + return lcfirst($entities_name); | |
710 | 722 | } |
711 | 723 | |
712 | 724 | |
713 | 725 | protected function _checkNbEntitiesInIndexViewIsAsExpected($entities_name,$nbentities_expected) { |
714 | 726 | //$this->get('/materiels/index'); |
727 | + //$entities_name = Inflector::dasherize($entities_name); | |
728 | + //debug("entities1 $entities_name"); | |
715 | 729 | $this->get("/$entities_name/index"); |
716 | 730 | //debug($_SESSION);return; |
717 | 731 | $this->assertResponseOk(); |
718 | 732 | $entities_name = $this->inflectEntityName($entities_name); |
733 | + //debug("entities2 $entities_name"); | |
719 | 734 | $this->assertResponseContains("Liste des $entities_name ($nbentities_expected)", "Le nombre d'entités dans la vue 'index' est incorrect"); |
720 | 735 | } |
721 | 736 | |
... | ... | @@ -737,6 +752,8 @@ class General extends TestCase { |
737 | 752 | // Force le rechargement des entités materiel en BD (car on les modifie en cours de route) |
738 | 753 | //AppController::forceReload(); |
739 | 754 | $entities_name = $this->getEntitiesName(); |
755 | + //debug("entities0 $entities_name"); | |
756 | + | |
740 | 757 | $IS_MATERIEL = ($entities_name=='Materiels'); |
741 | 758 | //debug("entities_name is $entities_name"); |
742 | 759 | |
... | ... | @@ -1009,9 +1026,12 @@ class General extends TestCase { |
1009 | 1026 | //debug($this->_flashMessages); |
1010 | 1027 | |
1011 | 1028 | //$entities = 'materiels'; |
1012 | - $entities_name = strtolower($this->getEntitiesName()); | |
1029 | + //$entities_name = strtolower($this->getEntitiesName()); | |
1030 | + //$entities_name = Inflector::dasherize($this->getEntitiesName()); | |
1031 | + $entities_name = $this->getEntitiesName(); | |
1013 | 1032 | //$entities_name = $this->getEntitiesName(); |
1014 | - $IS_MATERIEL = ($entities_name=='materiels'); | |
1033 | + //$IS_MATERIEL = ($entities_name=='materiels'); | |
1034 | + $IS_MATERIEL = ($entities_name=='Materiels'); | |
1015 | 1035 | |
1016 | 1036 | //$getpost = in_array($action, ['add','add_by_copy','edit','delete', 'statusCreated']) ? 'post' : 'get'; |
1017 | 1037 | //$getpost = in_array($action, ['view', 'index', 'find', 'printLabelRuban']) ? 'get':'post'; |
... | ... | @@ -1058,7 +1078,8 @@ class General extends TestCase { |
1058 | 1078 | if ($SHOULD_BE_SUCCESS) { |
1059 | 1079 | $flash_message = null; |
1060 | 1080 | $this->assertResponseSuccess(); |
1061 | - if ($entities_name=='materiels' && $action=='printLabelRuban') { | |
1081 | + //if ($entities_name=='materiels' && $action=='printLabelRuban') { | |
1082 | + if ($entities_name=='Materiels' && $action=='printLabelRuban') { | |
1062 | 1083 | /* |
1063 | 1084 | $this->assertFileResponse('inventirap_label.label', 'pas de fichier généré'); |
1064 | 1085 | $this->assertHeader('Content-type', 'application/xml'); |
... | ... | @@ -1098,6 +1119,7 @@ class General extends TestCase { |
1098 | 1119 | case 'add_by_copy': |
1099 | 1120 | $expected_flash_message .= 'ajouté'; |
1100 | 1121 | // Vérifier la conséquence de l'action : 1 entité de plus |
1122 | + //debug("entities_name4 is $entities_name"); | |
1101 | 1123 | $this->_checkNbEntitiesInIndexViewIsAsExpected($entities_name, $nbentities+1); |
1102 | 1124 | break; |
1103 | 1125 | |
... | ... | @@ -1190,7 +1212,8 @@ class General extends TestCase { |
1190 | 1212 | protected function _testActionDeleteEntity($role) { |
1191 | 1213 | $action = 'delete'; |
1192 | 1214 | |
1193 | - $entities_name = strtolower($this->getEntitiesName()); | |
1215 | + //$entities_name = strtolower($this->getEntitiesName()); | |
1216 | + $entities_name = $this->getEntitiesName(); | |
1194 | 1217 | |
1195 | 1218 | $this->d("*******************"); |
1196 | 1219 | $this->d(" CONTROLEUR $entities_name, ACTION $action, ROLE $role"); | ... | ... |
tests/TestCase/Controller/MaterielsControllerTest.php
... | ... | @@ -1943,7 +1943,7 @@ class MaterielsControllerTest extends General { |
1943 | 1943 | // On doit faire ceci (qui appelle l'action index) pour que la variable $_SESSION existe !!! |
1944 | 1944 | // et donc aussi le USER authentifié ci-dessus avec authAs() |
1945 | 1945 | $nbentities = $this->getNbEntitiesExpectedInIndexView(); |
1946 | - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities); | |
1946 | + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities); | |
1947 | 1947 | //debug($_SESSION);return; |
1948 | 1948 | // pas NULL why ? |
1949 | 1949 | // On sauvegarde le user courant |
... | ... | @@ -2046,7 +2046,7 @@ class MaterielsControllerTest extends General { |
2046 | 2046 | // et donc aussi le USER authentifié ci-dessus avec authAs() |
2047 | 2047 | $nbentities = $this->getNbEntitiesExpectedInIndexView(); |
2048 | 2048 | //debug($_SESSION); // NULL why ? |
2049 | - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities); | |
2049 | + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities); | |
2050 | 2050 | //debug($_SESSION);return; |
2051 | 2051 | // pas NULL why ? |
2052 | 2052 | // On sauvegarde le user courant |
... | ... | @@ -2503,7 +2503,7 @@ class MaterielsControllerTest extends General { |
2503 | 2503 | $this->authAs('SUPER'); |
2504 | 2504 | // Nb materiels au départ dans la BD |
2505 | 2505 | $nbentities = $this->getNbEntitiesExpectedInIndexView(); |
2506 | - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities); | |
2506 | + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities); | |
2507 | 2507 | // Données minimum à "poster" pour créer un nouveau matériel |
2508 | 2508 | $data = $this->getNewEntityWithAllMandatoryFields(); |
2509 | 2509 | |
... | ... | @@ -2514,7 +2514,7 @@ class MaterielsControllerTest extends General { |
2514 | 2514 | $action = 'add'; |
2515 | 2515 | $this->_doActionAndCheckResult($action, null, $SUCCESS=true, $data); |
2516 | 2516 | $nbentities++; |
2517 | - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities); | |
2517 | + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities); | |
2518 | 2518 | // On récupère ce dernier matériel créé from BD |
2519 | 2519 | $m = $this->Materiels->find()->last(); |
2520 | 2520 | $id = $m->id; |
... | ... | @@ -2608,7 +2608,7 @@ class MaterielsControllerTest extends General { |
2608 | 2608 | $this->_doActionAndCheckResult('edit', $id, $SUCCESS=true, [ 'nom_responsable' => 'user1 SUPER' ]); |
2609 | 2609 | $this->_doActionAndCheckResult($action, $id, $SUCCESS=true); |
2610 | 2610 | $nbentities--; |
2611 | - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities); | |
2611 | + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities); | |
2612 | 2612 | |
2613 | 2613 | } |
2614 | 2614 | ... | ... |
tests/TestCase/Controller/SurCategoriesControllerTest.php
... | ... | @@ -112,7 +112,7 @@ class SurCategoriesControllerTest extends General |
112 | 112 | * |
113 | 113 | * @dataProvider dataProviderActionsAndRoles4 |
114 | 114 | * |
115 | - * @requires PHP 7 | |
115 | + * @requires PHP 5.6 | |
116 | 116 | * (https://phpunit.readthedocs.io/fr/latest/incomplete-and-skipped-tests.html#sauter-des-tests-en-utilisant-requires) |
117 | 117 | */ |
118 | 118 | public function testAuthorizationsForAllActionsOnSurCategories($action, $role_short, $role_long) { | ... | ... |