Bonjour,
Je souhaite connaitre votre avis sur la conception d'un système de droits.
Exemple fictif sur la gestion d'un référentiel de personnes
La liste des actions possibles sur ce référentiel est :
- Ajouter une personne
- Modifier une personne
- Supprimer une personne
- Consulter une personne
Pour le moment, il existe un seul profil :
- Profil P1
Les habilitations du profil P1 sont l'ajout, la modification, la suppression et la consultation d'une fiche personne.
Ajout d'un nouveau besoinSolution envisagée
La solution la plus simple à mettre en œuvre est de décliner les quatre droits :
- DROIT_PERSONNE_AJOUTER
- DROIT_PERSONNE_MODIFIER
- DROIT_PERSONNE_SUPPRIMER
- DROIT_PERSONNE_MODIFIER
Au niveau du code, le traitement se poursuit si la condition est valide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Exemple : SI DROIT_PERSONNE_AJOUTER EST VRAI ALORS ... FIN SI
Je souhaite que l'utilisateur U1 puisse supprimer des personnes uniquement si la création a été effectuée le même jour. Pour supprimer un utilisateur avec une date de création plus ancienne, il devrait obtenir un profil de type P2.
Ajout d'un nouveau besoinSolution envisagée
Je pense à raffiner le droit DROIT_PERSONNE_SUPPRIMER :
- DROIT_PERSONNE_SUPPRIMER_CREATION_MEME_JOUR
- DROIT_PERSONNE_SUPPRIMER_CREATION_TOUS_JOURS
Ainsi, je paramètre les droits en fonction des profils puis réimpacte le code.
Je complexifie un peu de manière à ce que le profil P1 puisse ajouter, modifier et supprimer une personne uniquement les jours ouvrés. Lorsque le jour n'est pas ouvré, il peut cependant accéder au référentiel mais en lecture seule.
Or, à chaque évolution, cela fait de nombreux impacts dans le code même si le système est entièrement paramétrable par la suite (tant que la liste des droits ne bouge pas).Solution envisagée
De même avec l'évolution au point 2, j'ai pensé à découper les droits :
- DROIT_PERSONNE_AJOUTER_JOUR_OUVRE
- DROIT_PERSONNE_AJOUTER_JOUR_NON_OUVRE
- DROIT_PERSONNE_SUPPRIMER_JOUR_OUVRE_CREATION_MEME_JOUR
etc.
Pensez-vous que ce soit une bonne approche ?
Cordialement,
Partager