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

Symfony PHP Discussion :

Tester les droits à la volée d'un user Hierarchical Roles non pris en compte


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Par défaut Tester les droits à la volée d'un user Hierarchical Roles non pris en compte
    Hello

    J'utilise les rôles hiérarchiques dans mon sf 2.6
    Ca fonctionne quand je me logue

    mais ca ne fonctionne pas si je veux tester de manière dynamique le rôle d'un utilisateur
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $user = $em->getRepository('AcIntranetUserBundle:User')->find(2);
    $checker = $this->get('security.authorization_checker');
     
    //ici le fait de passer $user ne change rien sf regarde les droits du user connecté !
    if ($this->isGranted('ROLE_INDICATEUR_CPAS', $user)) {
     
    }
    //ici ne va pas chercher la  Hierarchical Roles  dans mon security
    if($user->hasRole('ROLE_INTRANET')) {               
    }
    Ma class User

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    use FOS\UserBundle\Model\User as BaseUser;
     
    /**
     * @ORM\Entity()
     * @ORM\Table(name="users")
     */
    class User extends BaseUser {
     
    }
    Mon security.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ROLE_INTRANET_ADMIN: [ROLE_INTRANET]
    Comment dois je procéder

    Merci

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Salut,

    isGranted() n'est à utiliser que pour le user courant : ça ne sert à rien de lui passer un user puisque ce n'est pas l'objet user qui est inspecté mais le token. C'est d'ailleurs pour cette raison qu'il faut régénérer le token (ou se déco-reco) lorsqu'on affecte un nouveau rôle pour que le isGranted passe avec le nouveau rôle.

    hasRole() ne doit pas être utilisé pour gérer l'accès d'un utilisateur à une ressource : car il ne fait que vérifier la présence d'un rôle, sans parcourir la hiérarchie en effet.

    Conclusion : fais-toi un service custom (ou vois s'il en existe déjà un quelque part) qui va parser ton role tree pour vérifier la présence d'un rôle en tenant compte de la hiérarchie pour un user donné.

    ++

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Par défaut
    Je m'y attendais

    C'est dommage la hiérarchie perd tout son sens

    Est-ce que si je mets en place les ACL ca résoudrait mon problème ?

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Probablement, mais je ne peux pas t'aider sur ce sujet : je n'ai jamais testé.

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/10/2012, 18h45
  2. Réponses: 1
    Dernier message: 13/11/2011, 23h24
  3. Réponses: 4
    Dernier message: 15/10/2007, 16h33
  4. Tester les droits d'un fichier
    Par Blo0d4x3 dans le forum Linux
    Réponses: 5
    Dernier message: 13/11/2006, 21h24
  5. Tester les droits en écriture sur une table en VBA ?
    Par yerome60 dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 21h43

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