24 Jun, 2020
1 commit
23 Jun, 2020
1 commit
22 Jun, 2020
3 commits
-
- log level info, debug, et notice : disponible depuis la page Outils (tools) - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!!
-
Disponible depuis la page Outils (tools) seulement pour superadmin
-
- 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 !!!) - (manque encore les tests de vues) - 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...) - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 220 !! - ...
19 Jun, 2020
1 commit
-
(Materiels, Suivis, et Emprunts) mais aussi le controleur "quelconque" SurCategories (pour vérifier que ça marche aussi !!!) - 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...) - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 200 (pile poil) !!! - ajout champ 'nom' à la table emprunts => ajout d'un fichier sql pour la mise à jour - ...
17 Jun, 2020
1 commit
-
(Materiels, Suivis, Emprunts) - 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...) - 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 - ajout champ 'nom' à la table emprunts - ...
12 Jun, 2020
1 commit
-
- Tests génériques automatiques pour (presque) toutes les actions du controleur Materiels => OK - 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) - modifié Fixtures pour supprimer les 'id' explicites - bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived
10 Jun, 2020
6 commits
-
(v3.7.9.36)
-
- (test de toutes les actions de MaterielsController) => bientôt complet - Requete SQL pour répercuter tous les changements depuis avril !!! - 1ère version officielle mise en PROD depuis un bail (presque 2 mois)
-
(c'est très prometteur) (reste à ajouter les autres entités telles que Suivis, Emprunts, ...) et à tester le contenu des vues (view et index)
09 Jun, 2020
1 commit
05 Jun, 2020
2 commits
-
- bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!! - bugfix : isSameGroup - tous les tests actuels ok - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST() - 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
-
=> chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!! => on part des règles générales par défaut, puis on adapte si besoin, cool non ?
04 Jun, 2020
1 commit
-
(v 3.7.9.31) - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE - AMELIORATIONS DE LA PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
03 Jun, 2020
2 commits
-
=> /pages/acls ou /pages/acls/#nom_du_controleur => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
-
=> TOUS les tests passent sauf certains qui ne passent plus car les nouvelles conditions sont plus strictes (ils ont été temporairement désactivés en attendant réécriture plus générique qui viendra très vite) => On peut voir dynamiquement l'état actuel des autorisations via la page web "/autorisations" => Autorisations définies dans chaque controleur par setAuthorizations() qui initialise un tableau UNIQUE de AppController ($this->is_authorized_action) => La méthode isAuthorized() de chaque controleur appelle isAuthorizedAction() (de AppController) qui autorise ou pas l'action en fonction de ce tableau unique => Quand on veut changer une autorisation, il suffit de le faire UNE SEULE FOIS dans la méthode setAuthorizations() Cette autorisation sera alors prise en compte PARTOUT dans le code (code des actions, des vues, etc...) => L'initialisation des autorisations est faite (par la méthode setAuthorizationForAction() de AppController) dans un format standard, quelque soit l'autorisation, donc c'est très LISIBLE et facile à modifier - ajout de 2 très gros tests génériques pour les actions et les vues matos/index et matos/view en cours... (ce qui m'évitera plein de tests à la main)
30 May, 2020
1 commit
-
(enfin)
15 May, 2020
1 commit
-
- Renforcement tests suivis et emprunts (materiel validated only) et refactorisations - 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) - Ajout de la méthode complexe isManageableByUser() dans MaterielsController.php et dans Materiel.php - Ajout de la méthode getRelatedMateriel() dans AppController, très optimisée - Vers une unicité toujours plus grande des tests d'autorisation d'action (uniquement dans isAuthorized()) - Utilisation systématique et UNIQUE de la méthode isAuthorized() de CHAQUE controleur pour savoir si une action est autorisée ou pas - Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas => bcp plus centralisé qu'avant, et bcp plus clean et lisible => désormais TOUS les droits sont définis dans la SEULE méthode isAuthorized() de CHAQUE controleur et NULLE PART AILLEURS => 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 => FIN de la galère de la gestion des droits (acl) enfin, il aura fallu quelques années pour y parvenir !!!
11 May, 2020
2 commits
-
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
-
- Ajout d'un LOG applicatif dans le fichier /logs/debug.log pour toutes les actions importantes (add, edit, delete, ...) qui permet de savoir kiafekoi - Suppression des méthodes isAuthorizedAction() et isAuthorizedActionFor() car plus simple de ne garder QUE isAuthorizedAction() 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
07 May, 2020
1 commit
-
- shortcuts dans AppController (donc disponible pour TOUS les controleurs) : - $this->u = user courant - $this->e = entité courante - $this->e_id = id de l'entité courante - $this->a = action en cours - $this->c = controleur en cours (?) - $this->getEntity($id=null) // id=null si matos courant - harmonisation des noms de méthodes pour MaterielsController : - $this->isCreated($id=null) // id=null si matos courant - $this->belongsToUser($username, $id=null) // id=null si matos courant et $this->belongsToCurrentUser($id=null) // id=null si matos courant - $this->isSameGroupAsUser($userlogin, $id=null) // id=null si matos courant et $this->isSameGroupAsCurrentUser($id=null) // // id=null si matos courant - harmonisation des méthodes dans entité Materiel (Entity) : - is_created, is_validated, is_tobearchived, is_archived - belongsToUser($username) // owned or declared by user - isSameGroupAsUser($usergroup1, $usergroup2) // is same group as user groups - ... - poursuite généralisation utilisation de la fonction isAuthorizedAction() partout où on a besoin de connaitre les droits d'un user (view, index, ...)
05 May, 2020
1 commit
-
- LOG : ajout de messages log sur actions importantes (add, edit, delete, ...) - SIMPLIFICATION : Suppression des valeurs "N/A" (inutile et pose des problèmes) dans 4 tables : groupes_thematiques, groupes_metiers, sites, et type_documents => et remplacement des liens vers ces champs par NULL dans tables materiels, suivis, emprunts, et documents !!! - Utilisation __toString() pour afficher une entité rapidement avec echo $entity - bugfix ACLs isAuthorizedAction() de Materiels => début de généralisation de l'utilisation de cette fonction partout où on a besoin de connaitre les droits d'un user (view, index, ...)
04 May, 2020
1 commit
-
- Nouvelle variable $this->current_user_entity "globale" et héritée par tous les controleurs (car définie dans AppController.beforeFilter()) => cette variable est un objet Entity et donc avec des propriétés (virtuelles) pratiques permettant de faire par exemple : - $user->is_admin - $user->is_resp - $user->is_super mais aussi : - $user->is_admin_or_more() - $user->is_admin_or_less() - bugfix 3 TESTS !!!
30 Apr, 2020
1 commit
-
- ajout de l'option globale $this->SUPERADMIN_CAN_DO_EVERYTHING dans AppController (false par défaut) pour donner rapidement TOUS les droits à superadmin (juste passer à true) - regroupement des conditions d'accès des 3 actions ADD, EDIT, et DELETE car très semblables => remplacé 60 lignes par 10 !!! - Grosse simplification (et bugfixes !!) des conditions d'accès à la plupart des actions de MaterielsController => c'est bien plus clair à lire - Nouvelles règles ACL (conditions d'accès) sous forme de tableau $acl => en cours... => ce changement offre plusieurs avantages, et devrait notamment permettre de : - clarifier les conditions d'accès, - les rendre plus facilement modifiables - les rendre copiables d'une action à l'autre (et donc facilement réutilisables sans avoir à réécrire de code) - afficher une page web présentant automatiquement (dynamiquement) une synthèse claire de toutes les ACL, action par action, et profil par profil (ce qui permettra de se rendre compte plus facilement de l'état actuel des conditions d'accès) - Utilisation de $this->action et $this->action_id (...) de AppController.beforeFilter() un peu partout - Utilisation de $this->entity de AppController.beforeFilter() un peu partout pour simplifier et surtout éviter (bcp) les accès BD redondants - Optimisations pour éviter trop de requetes en BD et simplification des tests acl
29 Apr, 2020
2 commits
-
- factorisation d'une partie de add_or_edit() dans AppController (appelée par les add_or_edit() de chaque controleur spécifique) - Utilisation de $this->action et $this->action_id (...) de AppController.beforeFilter() un peu partout - Utilisation de $this->entity de AppController.beforeFilter() un peu partout pour si
-
- Ajout de $this->entity, $this->action et $this->action_id (...) dans beforeFilter() pour simplifier et optimiser la suite des traitements - simplification du isAuthorizedAction() de Materiels - Optimisations pour éviter trop de requetes en BD et simplification des tests acl - Meilleure gestion des aspects authentification et authorization - mon 1er View Helper dans src/View/Helper (MyButtonHelper) pour créer plus facilement des boutons !! : - migration des fonctions getActionButton() et displayElement() dans MyButtonHelper et remplacement progressif dans les vues
24 Apr, 2020
1 commit
-
- Meilleure gestion des aspects authentification et authorization (car je comprends mieux maintenant) - PagesController maintenant bien plus clean - mon 1er View Helper dans src/View/Helper (MyButtonHelper) pour créer plus facilement des boutons !! : - migration des fonctions getActionButton() et displayElement() dans MyButtonHelper et remplacement progressif dans les vues
20 Apr, 2020
1 commit
-
- Améliorations EMPRUNT - mon 1er View Helper dans src/View/Helper (MyButtonHelper) pour créer plus facilement des boutons !! - TOUTES les nombreuses sections Toggle javascript refactorisées en 5 lignes (show/hide) !! - Début d'utilisation du HELPER Html pour raccourcis d'écriture
16 Apr, 2020
2 commits
-
- 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) - nombreuses refactorisations, généralisations et améliorations du code javascript (bcp de refactorisation dans script.js)
09 Apr, 2020
1 commit
-
- ajout champ is_metro dans table type_suivis pour les types liés au module métrologie - Nombreuses simplifications (et bugfix) des VUES en enrichissant le controleur de Suivis (et de Materiels) - (les vues doivent toujours être le plus BETE, SIMPLE possibles, la complexité ne doit être QUE dans le controleur) - commentaires et repagination pour que le code soit LISIBLE !!!! - début d'utilisation des migrations de BD - ...
07 Apr, 2020
1 commit
-
- amélioration du code javascript - ajout champ "is_regular" dans table type_suivis pour déclarer les types des suivis réguliers (fréquence) ou irréguliers (date) - mise à jour vues suivi et type_suivis pour le champ "is_regular" - commentaires - début d'utilisation des migrations de BD - ...
02 Apr, 2020
2 commits
-
avec autocomplétion et autocorrection !! - le fournisseur est toujours en BD mais il est automatiquement ajouté si on en saisit un nouveau) - ça corrige aussi automatiquement si espaces en trop, y-compris les anciens déjà saisis - ... bref c'est miraculous !!!
01 Apr, 2020
1 commit
-
Le fournisseur est toujours en BD mais il est automatiquement ajouté si on en saisit un nouveau Ca corrige aussi automatiquement si espaces en trop, y-compris les anciens déjà saisis !!!
31 Mar, 2020
1 commit
-
par refactorisation des vues add et edit en 1 seule (add_edit) + Ajout de fournisseur possible