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 :

Redirection automatique pour les utilisateurs connectés


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 22
    Par défaut Redirection automatique pour les utilisateurs connectés
    Bonjour,

    J'utilise le FOSBundle et j'aimerai empêcher aux utilisateurs connectés d'accéder au formulaire d'authentification.

    Voici mon 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
     
    security:
        encoders:
                FOS\UserBundle\Model\UserInterface: sha512
     
        providers:
                fos_userbundle:
                    id: fos_user.user_provider.username
                in_memory:
                    memory: ~
     
        firewalls:
                dev:
                    pattern: ^/(_(profiler|wdt))/
                    security: false
                main:
                    pattern: .*
                    provider: main
                    form_login:
                        provider: fos_userbundle
                        csrf_provider: security.csrf.token_manager
                        default_target_path: admin_session
                        use_forward: false
                        #login_path: login
                        #check_path: login_check
                    remember_me:
                        key:            %secret%
                        lifetime:       3600
                        path:           /
                        domain:         ~
                    logout: true
                    anonymous: true
    L'authentification passe très bien mais je peux toujours visualiser le formulaire à partir de l'url /login
    comment faire ?

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Il te faut préciser le rôle de ton user ROLE_USER, ROLE_ADMIN, ROLE_X ... et mettre cette directive dans ton Yaml :

    security.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        access_control:
            # this is a catch-all for the admin area
            # additional security lives in the controllers
            - { path: ^/admin, roles: ROLE_ADMIN }
    Bon dev, A+

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 22
    Par défaut
    C'est déjà fait mais y a toujours l'accès au form login alors que je suis déjà connecté, y a pas de redirection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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 }

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut des directives, des attributs ...
    Salut,
    Si j'ai bien compris tu souhaite que seulement toi puisse accéder a un formulaire, et tu n'a pas de rôle précis pour l'utiliser avec un rôle dont ton utilisateur seul est affecter.
    Soit tu te créer un nouveau rôle que tu remplace dans ton Yaml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    access_control:
            - { path: ^/login, role: ROLE_PERSO_AFFECTER_A_TON_UTILISATEUR_SEULEMENT }
            - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/admin, role: ROLE_ADMIN }
    Soit tu fait une restriction en utilisant l'attribut ip local ou distante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    security:
        # ...
        access_control:
            - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
            - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/admin, role: ROLE_ADMIN }
    Bonne soirée.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 22
    Par défaut
    Non je veux que n'importe qui puisse accéder au formulaire sauf que si quelqu'un est authentifié faut lui empêcher l'accès au formulaire d'authentification car ce n'est pas nécessaire puisqu'il est déjà connecté.

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    et il accède comment au formulaire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    condition if NOT user connecté
       affiche le lien vers formulaire
    endif
     
    condition if NOT user connecté
        formulaire
    endif

    je te laisse cherché la syntaxe exacte, c'est facile !! google est ton ami

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/03/2013, 10h43
  2. Réponses: 3
    Dernier message: 22/07/2010, 14h56
  3. [AC-2003] Code pour afficher les utilisateurs connectés à une BDD
    Par LionelDM dans le forum IHM
    Réponses: 2
    Dernier message: 07/01/2010, 17h04
  4. Requête pour les utilisateurs connectés
    Par managbe dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/08/2009, 23h15
  5. un script pour recuperer les utilisateurs connectés sur une machine
    Par s-ehtp dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 04/04/2008, 14h17

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