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 !!!
    Etienne Pallier
     

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
    Etienne Pallier
     
  • - 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
    Etienne Pallier
     

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, ...)
    Etienne Pallier
     

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, ...)
    Etienne Pallier
     

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 !!!
    Etienne Pallier
     

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
    Etienne Pallier
     

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
    Etienne Pallier
     
  • 	- 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
    Etienne Pallier
     

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
    Etienne Pallier
     

20 Apr, 2020

1 commit


16 Apr, 2020

2 commits


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
    	- ...
    Etienne Pallier
     

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
    	- ...
    Etienne Pallier
     

02 Apr, 2020

2 commits


01 Apr, 2020

1 commit


31 Mar, 2020

1 commit


27 Mar, 2020

1 commit


26 Mar, 2020

1 commit


25 Mar, 2020

1 commit


24 Mar, 2020

1 commit


23 Mar, 2020

2 commits


20 Mar, 2020

1 commit


16 Mar, 2020

1 commit


13 Mar, 2020

2 commits


12 Mar, 2020

3 commits


11 Mar, 2020

3 commits


10 Mar, 2020

2 commits


06 Mar, 2020

1 commit


28 Feb, 2020

1 commit


18 Feb, 2020

1 commit