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

Interfaces Graphiques en Java Discussion :

Repartition de roles utilisateurs en Java


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut Repartition de roles utilisateurs en Java
    Bonjour, mon probleme est le suivant:

    Je developpe un application stand alone Java. C'est un GUI pas trop complexe, mais quand meme fonctionnel. Mon appli interagit avec une base de donne MySQL. C'est une appli destiner pour les cliniques et les hopitaux.

    Compte tenu que ds une clinique ou un hopital travail un grand nombre de gens, avec des specialites differentes, mon appli au moment de l'authorisation(ou au moment du login en d'autres mots) doit selon la personne lui attribuer des droits d'acces aux certaines parties ou certaines fonctionnalites de l'application(c.a.d du menu utilisateurs).

    Alors comment organiser un systeme d'ajouts de nouveau role, d'attribution a ce role des droits d'acces a certaines fonctionnalites de l'appli afin de ne pas avoir a verifier ds le code le role, pour faire "disable" de certaines fonctionnalites du menu.

    En d'autres mots, je veux que l'application elle meme sache que donner a lutilisateur qui vient d'acceder a son menu selon son role. Les roles pour chaque utilisateurs seron accessibles via une BD.

    Je peut par exemple creer une table ds MySQL, avec des roles et des fonctionnalites pour chaque role, comme ca des qu'on y entre son nom et mot de passe, le systeme obtient automatiquement le role courant et regardera ensuite ds la table les fonctionnalites du role courant. Mais alors comment faire le lien entre un champ ds une BD et un menu?

    En d'autres mots comment faire le mapping entre des donnes ds une table de BD et une fonctionnalite?

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Welcome on software architecture design !

    Donc ton appli tu la divise en couches:
    - Application superviseur=responsabilités communes à toute les applications
    - BD et persistance
    - Model de Données
    - Business et son interopérabilité
    - Presentation=ton IHM, ou tes IHM (WAP, WEB, Stand alone=SWING)
    - Communication (lorsque nécessaire)

    on trouve des aspects qui viennent pourrir ton code, comme l'internationnalisation, la sécurité, le bug tracking et bien sur les droits et préférences utilisateur. Tu peux utiliser la programmation orienté aspect, mais c'est une autre histoire.

    Tout ton problème vient de bien délimiter les couches et sous couches et leurs responsabilitées.

    Perso j'ai tendance à produire une couche "User" qui prend en charge des responsabilité qui concernent l'utilisateur du logiciel (droits et préférences)
    Tu lui pose un UserManager=pattern facade + singleton et tu l'interroge sur son niveau de droit. Après dans ton code t'es bon pour des if ceci if cela
    Vouloir faire plus astucieux serait sans doute un raisonnement abscond dans le sens ou tu aura sans doute besoin d'une granularité très fine au niveau des droits. C'est à dire que tu ne peux pas simplement retirer un panel ou un menu, mais peut etre aussi modifier la couleur du texte, etc...

    Voilà bon courage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut
    eeuuhh...c'est impressionant ce que vous avez ecris mais je voudrais avoir une reponse un peu plus concrete, j'avoue que j'ai pas compris grand chose dans tout ca .

  4. #4
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut
    Déjà, si ce n'est pas déjà fait, je te conseille fortement d'utiliser Hibernate pour interagir avec ta base de données.
    Je suis en train de réaliser un logiciel scientifique en Java (calculs de perfo.), et j'ai à peu près les mêmes obligations que les tiennes.


    Mon conseil : tu créer tes privilèges dans ta table Users (ensembles des utilisateurs) et ensuite tu déclenches ou non certaines actions ou évènements selon le login.
    Grâce à Hibernate, tu peux le faire simplement puisque les éléments de ta base de données sont alors des objets dits "persistants".

    Exemple : pour différencier les administrateurs de la base des autres utilisateurs, tu crées un champs "droit_administration" dans ta table Users.
    Si c'est oui, alors l'administrateur aura tous les droits de suppression, création, modification sur la table via une JTable ou un Jtree par exemple ; dans l'autre cas, l'utilisateur ne pourra qu'observer la table, puisque tu n'afficheras aucune possibilité d'action pour lui.

    Bon courage pour ton appli.

    PS : je panse de plus qu'un CardLayout pourrait être intéressant pour ton programme, avec un enchaînement séquentiel des panneaux.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut
    j'ai deja penser a Hibernate...mais je me suis dit que serai trop complexe.

    En fait je pense que j'ai pas tres bien exposer mon pb...le truc c'est que je veux attribuer differents access a certains elements de mon interface...par exemple un JTextField pourra etre disable pour certains et enable pour d'autres...et cette information concernant l'etat de JTextField est gardee ds un BD.
    Maintenant je sais pas...ds une appli il pourra y etre jusqu'a une centaines d'elements, s'il faudra pour chaque elements faire un mapping via hibernate...je trouve que serai trop trop lourd en consomation de resources non?

Discussions similaires

  1. JGuard LDAP et roles utilisateurs
    Par Leopardi dans le forum Sécurité
    Réponses: 0
    Dernier message: 15/05/2009, 02h50
  2. gestion des roles utilisateur
    Par EAKOM dans le forum Seam
    Réponses: 2
    Dernier message: 28/03/2009, 12h39
  3. [JBoss Portal] Tester role utilisateur
    Par natoine dans le forum Portails
    Réponses: 1
    Dernier message: 22/10/2008, 23h01
  4. [Débutant] Jointure Role/Utilisateur
    Par issou dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/12/2006, 14h15
  5. [ STRUTS ] [ Tomcat Role] accéder en java
    Par MrMaze dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 05/08/2004, 10h35

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