IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ALM Discussion :

Conception d'un système d'habilitation


Sujet :

ALM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Conception d'un système d'habilitation
    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.

    Solution 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
    Ajout d'un nouveau besoin
    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.

    Solution 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.
    Ajout d'un nouveau besoin
    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.

    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.
    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).

    Pensez-vous que ce soit une bonne approche ?

    Cordialement,

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour loxort

    Citation Envoyé par loxort Voir le message
    Ajout d'un nouveau besoin
    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.
    C'est possible, mais à condition de ne pas utiliser directement les droits des bases de données (GRANT/REVOKE) qui ne permettent pas une approche de ce type.
    Il faut pour cela rattacher les profils à des fonctions.
    Vous créez deux fonctions : supprimer_J et supprimer_X
    L'utilisateur U1 est rattaché au profil P1 qui a droit à la fonction supprimer_J
    L'utilisateur U2 est rattaché au profil P2 qui a droit à la fonction supprimer_X
    La fonction supprimer_J vérifiera que la création est du jour même, ce que ne fera pas la fonction supprimer_X



    Citation Envoyé par loxort Voir le message
    Ajout d'un nouveau besoin
    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.
    Même combat, il faut bien sûr ajouter un calendrier pour connaître les jours fériés et auquel accèderont les fonctions.



    Citation Envoyé par loxort Voir le message
    Pensez-vous que ce soit une bonne approche ?
    S'il y a un besoin fonctionnel avéré, pourquoi pas

Discussions similaires

  1. Conception d'un système qui permet d'ajouter des news
    Par Rockworld dans le forum Débuter
    Réponses: 5
    Dernier message: 04/01/2011, 20h15
  2. conception d'un système e-mailing
    Par itmak dans le forum E-Mailing
    Réponses: 2
    Dernier message: 22/10/2009, 11h39
  3. Conception d'un système multi-agent extensible
    Par behess dans le forum Design Patterns
    Réponses: 81
    Dernier message: 24/09/2009, 00h14
  4. Conception d'un système d'identification de mes visiteurs
    Par Tchupacabra dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 15/03/2008, 12h54
  5. [POO] Conception d'un système de template
    Par iwf-fr dans le forum Langage
    Réponses: 8
    Dernier message: 06/02/2007, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo