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

 PHP Discussion :

probleme avec les roles


Sujet :

PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut probleme avec les roles
    Bonjour,

    Je suis en train de suivre un tutoriel sur le net (fosuserbundle ) et à un moment donné je n'obtient pas le résultat escompté.

    Dans mon contrôleur je fait un test sur le fait que l’utilisateur est connecté. Si il est connecté en tant que client il doit être redirigé sur la page client si il est connecté en tant qu'admin il est dirigé
    vers admin..hors quant je me connecte que ce soit en client ou admin ça me redirige vers la page admin, si j'ai le rôle client dans la barre d'info de symfony ça me dirige quant même sur la page admin

    par contre si je vais sur la page client en tant que client c 'est ok
    si je vais sur la page admin en tant que client il me fait un access denied ( donc c'est ok)

    si je me connecte en tant que admin c'est ok , j'ai bien accès aux page admin et client.

    c'est la méthode "showUserAction" dans mon contrôleur
    de me diriger vers tel ou tel page selon le rôle qui ne marche pas

    mon fichier security.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    security:
        encoders:
            FOS\UserBundle\Model\UserInterface: bcrypt
     
        role_hierarchy:
            ROLE_ADMIN: ROLE_USER
            ROLE_SUPER_ADMIN: ROLE_ADMIN
     
        providers:
            fos_userbundle:
                id: fos_user.user_provider.username
     
        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                pattern: ^/
                form_login:
                    provider: fos_userbundle
                    csrf_token_generator: security.csrf.token_manager
                    # if you are using Symfony < 2.8, use the following config instead:
                    # csrf_provider: form.csrf_provider
     
                logout:       true
                anonymous:    true
     
     
        access_control:
            - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/admin/, role: ROLE_ADMIN }
            - { path: ^/client/, role: ROLE_USER }
    mon controlleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    namespace AppBundle\Controller;
     
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
     
     
    class DefaultController extends Controller
    {
        /**
         * @Route("/", name="homepage")
         * il n'y a aucune condition d'acces à cette page
         */
        public function indexAction()
        {
     
            return $this->render('homepage.html.twig');
        }
     
        /**
         * @return \Symfony\Component\HttpFoundation\Response
         *
         * @Route("/admin/", name="admin_page")
         */
     
        public function adminPageAction()
        {
     
            return $this->render('admin.html.twig');
        }
     
        /**
         * @return \Symfony\Component\HttpFoundation\Response
         *
         * @Route("/client/", name="client_page")
         */
     
        public function clientPageAction()
        {
     
            return $this->render('client.html.twig');
        }
     
        /**
         * @return \Symfony\Component\HttpFoundation\Response
         *
         * @Route("/login_ok", name="login_ok")
         *
         * @Security("has_role('ROLE_USER')")
         */
     
        public function showInfoUserAction()
        {
     
            return $this->render('login_success.html.twig');
        }
     
        /**
         * @Route("/user/", name="user_info")
         *
         * @Security("is_granted('IS_AUTHENTICATED_FULLY')")
         *
         */
     
        public function showUserAction()
        {
            if($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN'));{
            return $this->render('admin.html.twig');
        }
     
            if($this->get('security.authorization_checker')->isGranted('ROLE_USER'));{
            return $this->render('client.html.twig');
        }
     
        }
    un exemple d'une page twig ( rien de particulier )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {% extends "base.html.twig" %}
     
    {% block body %}
        <h1>Page Client</h1>
     
        <p><a href="{{ path('fos_user_security_logout') }}">Se déconnecter</a></p>
     
    {% endblock body %}
    merci pour les pistes..

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     public function showUserAction()
     {
            if($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN'))  {  return $this->render('admin.html.twig');  }
            else {   return $this->render('client.html.twig'); }
    }

Discussions similaires

  1. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  2. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  3. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 12h32
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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