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 :

@Security + is_granted qui ne fonctionne pas


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut @Security + is_granted qui ne fonctionne pas
    salut a tous,

    je ne comprends pas pourquoi cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Security("is_granted('ROLE_USER') and user === ad.getAuthor")
    me retourne une erreur :

    Notice: Undefined property: App\Entity\Ad::$getAuthor
    Alors que j'ai bien un champ Author dans mon entité !

    Je veux sécuriser l’accès a la modification d'une annonce. Si cette annonce appartient bien a l'utilisateur connecté alors l’accès est autorisé.

    Merci a vous.

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Salut,

    Je n'ai pas assez de code pour te répondre. Mais essaie déjà avec les parenthèses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     @Security("is_granted('ROLE_USER') and user === ad.getAuthor()")

    PS: Comment as-tu fait pour que cela n'explose pas avec le mot clé "ad"? Moi, je suis obligé de passer "object" Tu peux me montrer ton contrôleur ou du moins les déclarations (sans le corps des méthodes) ?

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    incroyable, je viens de passer 45min a regarder cette ligne sans voir que j'ai oublié les parenthèse ! c'est dingue je suis fou de rage

    que dire a part .. merci.

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Oui, ça arrive. Il faut en général bien relire le message. Ce qui m'a mis la puce à l'oreille, c'est le mot "property" alors que tu fais appel à une méthode.

    Pour me remercier, tu peux répondre à mon Post Scriptum dans mon message précédent !

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par Alexandre T Voir le message
    Pour me remercier, tu peux répondre à mon Post Scriptum dans mon message précédent !
    lequel ? je ne trouve pas de post Scriptum, donne l'url

  6. #6
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Citation Envoyé par Alexandre T Voir le message
    Salut,

    Je n'ai pas assez de code pour te répondre. Mais essaie déjà avec les parenthèses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     @Security("is_granted('ROLE_USER') and user === ad.getAuthor()")

    PS: Comment as-tu fait pour que cela n'explose pas avec le mot clé "ad"? Moi, je suis obligé de passer "object" Tu peux me montrer ton contrôleur ou du moins les déclarations (sans le corps des méthodes) ?
    Lol Voilà !

    Comment as-tu fait pour que cela n'explose pas avec le mot clé "ad"? Moi, je suis obligé d'utiliser le mot-clé "object" et c'est franchement pas clair !

  7. #7
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Opps pardon j'avais pas vu lol

    oui bien-sûr tiens :

    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
     
        /**
         * @Route("/{slug}/edit", name="ad_edit", methods={"GET","POST"})
         * 
         * @Security("is_granted('ROLE_USER') and user === ad.getAuthor()")
         */
        public function edit(Request $request, Ad $ad): Response
        {
            $form = $this->createForm(AdType::class, $ad);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $this->getDoctrine()->getManager()->flush();
     
                $this->addFlash(
                    'info',
                    'Votre annonce vient d\'être modifiée avec succés.'
                );
     
                return $this->redirectToRoute('ad_index');
            }
     
            return $this->render('ad/edit.html.twig', [
                'ad' => $ad,
                'form' => $form->createView(),
            ]);
        }
    la méthode connait ad car je le passe en paramètre Ad $ad, je pense que c'est ça..

  8. #8
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Ah je viens de comprendre !

    En effet, j'utilise object avec ApiPlatform et je ne peux pas changer, il n'accepte que cette valeur. Du coup, j'ai considéré par erreur que pour une action de n'importe quel contrôleur, c'était la même chose ! Bon bah, j'ai appris un truc qui va clarifier mes codes !

    Merci !

  9. #9
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    heureux d'avoir pu éclaircir ton code, en tt cas ça fait plaisir pour une fois que c'est l'inverse j'avais envie de l’écrire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  2. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

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