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

W4 Express Java Discussion :

Problème profil multi-utilisateur


Sujet :

W4 Express Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 71
    Points : 47
    Points
    47
    Par défaut Problème profil multi-utilisateur
    Bonjour, j'ai suivi le tutoriel pour masquer une action mais cela ne fonctionne pas malgré la modification du code.

    Je suis relié à mysql.

    J'ai une classe membres avec refmembre(id, auto increment), login, mdp, nom, prenom, refrole et une classe roles avec refrole(id, auto increment) et role

    refrole de la classe membres est relationnel avec id de la classe membre

    Ex dans la classe roles :
    refrole - role
    1 - Administrateur
    2 - Membre

    J'ai ajouté deux marques spécifiques pour les actions
    ROLE_ADMINISTRATEUR
    ROLE_MEMBRE

    Ma première question est : comment supprimer une marque ou la modifier.
    D'autre part je ne trouve pas le xml où l'on voit les marques de l'action.

    Extrait du fichier JAVA de comportement de session.


    public boolean validateAction(LySession session, LyAction action, LyController controller)
    {
    int ROLE_MEMBRE = LyAction.getMark("ROLE_MEMBRE");
    int ROLE_ADMINISTRATEUR = LyAction.getMark("ROLE_ADMINISTRATEUR");

    if (action.hasMark(ROLE_MEMBRE))
    {
    // L'action a la marque spécifique ROLE_MEMBRE, autorisée si et seulement si l'utilisateur à le role membre
    LyObject user = session.getUser();

    if (user == null)
    return false;

    LyObject role = user.getRelationValue("refrole").getObject(0);

    if (role == null)
    return false;

    String roleName = role.getName();

    if ((!"Membre".equals(roleName)) && (!"Administrateur".equals(roleName)))
    return false;
    }
    if (action.hasMark(ROLE_ADMINISTRATEUR))
    {
    // L'action a la marque spécifique ROLE_ADMINISTRATEUR, autorisée si et seulement si l'utilisateur à le role administrateur
    LyObject user = session.getUser();

    if (user == null)
    return false;

    LyObject role = user.getRelationValue("refrole").getObject(0);

    if (role == null)
    return false;

    String roleName = role.getName();

    if (!"Administrateur".equals(roleName))
    return false;
    }

    return super.validateAction(session, action, controller);
    }

    public boolean enableAction(LySession session, LyAction action, LyController controller, LyObjectList objects, boolean showError) {
    if (!validateAction(session, action, controller))
    return false;
    return super.enableAction(session, action, controller, objects, showError);
    }


    Lorsue j'éxécute en SWING, pas de problème mais quand je me connecte avec un utilisateur ayant le rôle Membre je vois quand même l'action dont la marque spécifique ROLE_ADMINISTRATEUR est cochée et pas la marque ROLE_MEMBRE.

    Merci de votre aide.

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Le fait de faire un LyObject role = user.getRelationValue("refrole").getObject(0); implique forcément que vous ne testez que le premier rôle obtenu.
    Cela ne pose aucun souci si vous êtes certain que votre utilisateur ne possède qu'un seul rôle. Mais si votre utilisateur en possède plusieurs, l'algo n'est pas correcte.

    Perseide

Discussions similaires

  1. Profile multi-utilisateur
    Par omjfab dans le forum W4 Express
    Réponses: 0
    Dernier message: 06/03/2012, 11h05
  2. Problème Session Multi-Utilisateurs
    Par Hanoni dans le forum Struts 1
    Réponses: 7
    Dernier message: 29/09/2009, 09h17
  3. Réponses: 2
    Dernier message: 02/07/2009, 10h02
  4. Réponses: 2
    Dernier message: 11/07/2008, 14h07
  5. Problème de sauvegarde multi utilisateur
    Par tribaleur dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2006, 15h00

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