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 confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    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 émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    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