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 :

Portée de l'identification d'un utilisateur avec FOSUserBundle


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut Portée de l'identification d'un utilisateur avec FOSUserBundle
    Bonjour, je me forme actuellement au framework Symfony2 et je bloque sur un point.

    Mon application est découpée en deux zones :
    - La zone site vitrine (racine du site)
    - la zone admin (/admin)

    J'ai installer le bundle de FOS en suivant un tuto trouvé sur un autre site, et voici la config (security.yml) que j'ai :
    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
    security:
        encoders:
            "FOS\UserBundle\Model\UserInterface": sha512
     
        role_hierarchy:
            ROLE_AMI:         ROLE_USER
            ROLE_CLIENT:      ROLE_USER
            ROLE_EDITEUR:     ROLE_USER
            ROLE_ADMIN:       [ROLE_USER, ROLE_EDITEUR]
            ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_EDITEUR, ROLE_ADMIN]
     
        providers:
            fos_userbundle:
                id: fos_user.user_manager
     
        firewalls:
            dev:
                pattern:  ^/(_(profiler|wdt)|css|images|js)/
                security: false
     
            # Firewall pour les pages de connexion, inscription, et récupération de mot de passe
            login:
                pattern:   ^/admin/(login$|register|resetting)  # Les adresses de ces pages sont login, register et resetting
                anonymous: true
     
            admin:
                pattern: ^/admin
                form_login:                 
                    provider:    fos_userbundle  
                    check_path: /admin/login_check
                    login_path: /admin/login
                    always_use_default_target_path: true
                    default_target_path: /admin/
                logout:
                    path:   /admin/logout
                    target: /
                anonymous:       false
                remember_me:
                    key:         %secret%
     
            # Firewall principal pour le reste de notre site
            main:
                pattern: ^/ 
                anonymous:       true
                #logout:          true
                #http_basic:
                #    realm: "Secured Demo Area"
     
        access_control:
            #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
            #- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
    Mon problème est le suivant :
    Pour me connecter à la zone admin pas de souci, tout marche trés bien.
    En revanche, ce que je souhaiterais, c'est que lorsque l'on navigue sur le site vitrine et si on est connecté à l'admin on voient apparaitre un bouton "modifier l'article". Sauf que là sa coince : J'ai beau être connecté à l'admin, sur le front j'apparais toujours comme anonyme.

    Comment remédier a cette situation et permettre au utilisateurs authentifiés d'être reconnus sur le front tout en laissant la possibilité aux anonymes d'accéder au front mais pas à l'admin ?

    Voila j'espère avoir été clair,
    Merci d'avance,
    Fabien

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,
    Tu n'as pas accés à l'utilisateur dans twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {% if is_granted('ROLE_ADMIN') %}
        <a href="...">Delete</a>
    {% endif %}
    Sinon tu peux peut-être modifier ta config pour que le firewall englobe tout le site mais que l'access control ne soit que sur l'url admin/*
    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
     
    security:
    ...........................
        firewalls:
           ...................
            main:
                pattern: ^/
                form_login:                 
                    provider:    fos_userbundle  
                    .....................
                security:       false
                anonymous:       true
    ........................................
     
        access_control:
            - { path: ^/admin, roles:ROLE_ADMIN }

Discussions similaires

  1. Recherche template de site avec identification pour les utilisateurs
    Par davidkungfu dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 04/08/2010, 21h18
  2. Réponses: 2
    Dernier message: 01/12/2005, 17h49
  3. Gestion utilisateurs avec droits
    Par dr_look dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 27/04/2005, 17h03
  4. Accés multi utilisateurs avec fstab
    Par Sun3clipse dans le forum Administration système
    Réponses: 2
    Dernier message: 26/08/2004, 16h49
  5. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 13h27

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