Gestion des droits d'affichage d'un écran pour tout type d'application

Description

Cette source définit un ensemble de classes qui permettent de gérer la connexion d'un utilisateur à l'application et l'affichage d'un écran par un utilisateur.

Cette source est utilisable par une application Swing aussi bien que par une application en jsf ou en Struts voir même pour une application en ligne de commandes.

Je donne un exemple d'utilisation pour Swing.

Source / Exemple :


package fr.julien.gestiondroits.gestionnaire;

import fr.julien.gestiondroits.services.IMemorisationUtilisateurService;
import fr.julien.gestiondroits.services.IMessagesErreurService;
import fr.julien.gestiondroits.services.IUtilisateurDAO;
import fr.julien.gestiondroits.utilisateur.Utilisateur;

/**

  • <b>GestionnaireIdentifiants est la classe qui permet de gérer l'identification d'un utilisateur</b>
  • <p>
  • Cette classe permet de vérifier qu'un utilisateur peut se connecter à l'application. Pour cela,
  • on doit fournir :
  • <ul>
  • <li>Un identifiant de connexion</li>
  • <li>Un mot de passe</li>
  • <li>La classe permettant de récupérer un utilisateur</li>
  • <li>Le service de mémorisation d'un utilisateur</li>
  • <li>Le service générant les messages d'erreur</li>
  • </ul>
  • </p>
  • <p>
  • Cette classe possède une méthode permettant de savoir si les identifiants
  • de connexion que l'utilisateur a entré sont valides.
  • </p>
  • <p>
  • Lorsque cette classe est créée, elle essaye de récupérer l'utilisateur correspondant
  • au login entré dans la base de données, puis elle compare le mot de passe de l'utilisateur
  • au mot de passe entré et s'ils sont identiques alors le service de mémorisation est appelé pour
  • enregistrer l'utilisateur.
  • </p>
  • <p>
  • Si une information est incorrecte, le servide de gestion des erreurs est appelé pour afficher
  • un message d'erreur.
  • </p>
  • @author Julien
  • @version 1.0
*
  • /
public class GestionnaireIdentifiants { /**
  • Booleen permettant de savoir si l'utilsateur a bien été connecté
  • /
private boolean valide; /**
  • <b>Constructeur de GestionnaireIdentifiants</b>
  • Ce constructeur vérifie si les informations de connexion sont correctes et si
  • c'est le cas, il enregistre l'utilisateur via le service de mémorisation et sinon,
  • un message d'erreur est affiché via le service d'affichage des erreurs.
  • @param login
  • L'identifiant entré par l'utilisateur
  • @param password
  • Le mot de passe entré par l'utilisateur
  • @param base
  • La classe permettant de récupérer un utilisateur par son nom
  • @param serviceMemorisation
  • Le service d'enregistrement de l'utilisateur
  • @param serviceErreurs
  • Le service d'affichage des messages d'erreur
  • /
public GestionnaireIdentifiants(String login, String password, IUtilisateurDAO base, IMemorisationUtilisateurService serviceMemorisation, IMessagesErreurService serviceErreurs) { valide=false; Utilisateur utilisateur = base.getUtilisateurByLogin(login); if(utilisateur!=null){ if(password.equals(utilisateur.getPassword())){ serviceMemorisation.setUtilisateur(utilisateur); valide=true; } else { serviceErreurs.passwordIncorrect(); } } else { serviceErreurs.identifiantInconnu(); } } /**
  • Fonction permettant de savoir si l'utilisteur a été enregisté (si les
  • informations d'identification entrées étaient correctes)
  • @return vrai si l'utilisateur a été enregistré
  • /
public boolean isValide(){ return valide; } } package fr.julien.gestiondroits.gestionnaire; import java.util.List; import fr.julien.gestiondroits.droit.Droit; import fr.julien.gestiondroits.fenetre.InterfaceGraphique; import fr.julien.gestiondroits.services.IMemorisationUtilisateurService; import fr.julien.gestiondroits.services.IMessagesErreurService; import fr.julien.gestiondroits.utilisateur.Utilisateur; /**
  • <b>GestionnaireDroits est la classe qui permet de gérer l'accès aux fenetres de l'application</b>
  • <p>
  • Cette classe permet de vérifier qu'un utilisateur peut afficher un écran de l'application,
  • pour celà on doit fournir :
  • <ul>
  • <li>La fenêtre de l'application concernée</li>
  • <li>Le service de mémorisation permettant de récupérer l'utilisateur</li>
  • <li>La service de gestion des messages d'erreur</li>
  • </ul>
  • </p>
  • <p>
  • Cette classe possède une méthode permettant de savoir si l'utilisateur peut
  • accéder ou non à l'écran concerné
  • </p>
  • <p>
  • Lorsque cette classe est créée, elle vérifie que tous les droits requis pour
  • afficher l'écran se trouvent soit dans les droits de l'utilisateur soit dans les
  • droits du groupe de l'utilisateur. Si ce n'est pas le cas, le service d'affichage
  • des erreurs est appelé pour afficher un message d'erreur.
  • </p>
  • @author Julien
  • @version 1.0
*
  • /
public class GestionnaireDroits { /**
  • Booleen permettant de savoir si l'utilisateur peut afficher la fenêtre
  • /
private boolean autorise; /**
  • <b>Constructeur de GestionnaireDroits</b>
  • Lorsque ce constructeur est appelé, il vérifie que tous les droits
  • requis pour afficher l'écran sont soit dans les droits de l'utilisateur
  • soit dans ceux de son groupe. Si ce n'est pas le cas un message d'erreur
  • est affiché via le service d'affichage des messages
  • @param fenetre
  • La fenêtre à afficher
  • @param serviceUtilisateur
  • Le service de mémorisation des utilisateurs
  • @param erreurs
  • Le service d'affichage des erreurs
  • /
public GestionnaireDroits(InterfaceGraphique fenetre, IMemorisationUtilisateurService serviceUtilisateur, IMessagesErreurService erreurs) { autorise=false; Utilisateur utilisateur = serviceUtilisateur.getUtilisateur(); List<Droit> droitsRequis = fenetre.getDroitsRequis(); for(Droit d : droitsRequis){ if(utilisateur.getDroits().contains(d) || ((utilisateur.getGroupe()!=null) && utilisateur.getGroupe().getDroits().contains(d))){ autorise=true; } } if(!autorise){ erreurs.droitsInsuffisants(); } } /**
  • Fonction permettant de savoir si l'utilisateur peut accéder ou non
  • à l'écran
  • @return vrai si l'utilisateur peut afficher l'écran
  • /
public boolean isAccesAutorise(){ return autorise; } }

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.