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 :

Problème d'utilisation d'un UserRepository personnel


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 15
    Par défaut Problème d'utilisation d'un UserRepository personnel
    Bonjour à tous,

    Je développe actuellement un site sous Symfony2. Je rencontre un problème avec la mise en place de la sécurité. En effet, j'aimerai restreindre l'accès à une partie "membre" afin que seuls les utilisateurs stockés en base de données puissent y accéder. J'ai donc suivi le tutoriel fourni par le Symfony cookbook (http://symfony.com/fr/doc/current/co..._provider.html).

    Mais lorsque je teste, l'erreur
    EntityRepository must implement UserInterface
    survient. J'ai pourtant créé mon propre "MembreRepository" qui implémente bien UserInterface. J'ai également indiqué à Doctrine d'utiliser MembreRepository (donc celui que j'ai créé) grâce à l'annotation @ORM\Entity(repositoryClass="Design\InitializrBundle\Entity\MembreRepository") dans mon entité.

    D'après ce que j'en comprend, il semblerait que Doctrine ignore simplement cette annotation et utilise son UserRepository par défaut..

    Quelqu'un aurait-il une idée pour m'aider à résoudre ou au moins à comprendre ce problème?

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    Il me semble bien qu'il existe des routing automatique qui partent du principe que la classe repository d'une Entity est bien le nom de l'entité + Repository et le tout attaché.

    Ca me parait bizarre et sujet à incompréhension de fournir un repository avec un nom différent. Mais il est également vraiment que Doctrine nous demande notre avis donc c'est sujet à incompréhension.

    Enfin même si ca ne répond pas exactement à ta question essai quand même de ne rien changer à ton code mise à part le nom afin de voir si le problème viens bien de là peut-être...

  3. #3
    Membre éprouvé
    Ingénieur d'études et de développement
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et de développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Par défaut
    Bonjour,

    fais voir ton security.yml stp

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 15
    Par défaut
    Salut,

    @miltone : Mon repository hérite directement de EntityRepository donc le renommer n'a pas changé grand chose, le même message d'erreur survient

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    # app/config/config.yml
    security:
        firewalls:
            dev:
                pattern:  ^/(_(profiler|wdt)|css|images|js)/
                security: false
     
            secured_area:
                pattern:    ^/
                anonymous: ~
                http_basic:
                    realm: "Secured Demo Area"
                form_login:
                    login_path:  /site/login
                    check_path:  /site/login_check
                    provider: chain_provider
                logout:
                    path:   /site/logout
                    target: /site/accueil
     
        # indique les roles necessaires pour acceder aux url indiquees
        access_control:
            - { path: ^/site/membre, roles: ROLE_USER }
            - { path: ^/site/admin, roles: ROLE_ADMIN }
            - { path: ^/site/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
     
     
        # indique la hierarchie des roles	
        role_hierarchy:
            ROLE_ADMIN:       ROLE_USER
            ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
     
        # les fournisseurs d'entite ou seront recuperes les utilisateurs et
        # l'administrateur
        providers:
            chain_provider:
                chain :
                    providers: [in_memory, user_db]
            user_db:
                entity: { class: Design\InitializrBundle\Entity\Membre }
            in_memory:
                memory:
                    users:
                        admin: { password: kitten, roles: 'ROLE_ADMIN' }
     
        # encodeurs utiliser pour chiffrer les mots de passe
        encoders:
            Symfony\Component\Security\Core\User\User: plaintext
            Design\InitializrBundle\Entity\Membre: sha512

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 15
    Par défaut
    Salut,

    Une idée quelqu'un ? Car j'avoue ne pas vraiment savoir quoi faire...
    En parcourant un peu plus la doc, je me suis dit que mon erreur venait peut être d'un oubli de déclaration de mon Repository dans les services?

    Voici mon fichier services.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # src/Design/InitializrBundle/Resources/config/services.yml
    parameters:
        design_initializr.membrerepository.class: Design\InitializrBundle\Entity\MembreRepository
     
    services:
        design_initializr.membrerepository:
            class: %design_initializr.membrerepository.class%
    Et mon security.yml avec le service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    security:
        #...
        providers:
            chain_provider:
                chain :
                    providers: [in_memory, user_db]
            user_db:
                id: design_initializr.membrerepository
                #entity: { class: Design\InitializrBundle\Entity\Membre }
            in_memory:
                memory:
                    users:
                        admin: { password: pass, roles: 'ROLE_ADMIN' }
        #...
    Une autre erreur survient maintenant, je n'arrive plus à lancer la commande cache:clear ...

    Si personne n'a d'idée je vais simplement recommencer la partie sécurité de 0, mais j'aimerais quand même essayer de comprendre mon erreur

    Cordialement

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    que te signal l'erreur du cache:clear ?

Discussions similaires

  1. [RTFEditorKit] Problème d'utilisation
    Par jean.lamy dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 21/10/2004, 18h30
  2. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  3. [cvs] problèmes d'utilisation
    Par gromite dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/06/2004, 17h41
  4. Problème: Requête utilisant NOT IN
    Par fages dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/05/2004, 10h18
  5. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44

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