Bonjour,
Je croyais avoir bien fait mais il y a quelque chose qui m'échappe, je m'explique.
Dans mon application j'ai 2 types d'utilisateurs : client et supplier qui ont chacun un ROLE_CLIENT ou un ROLE_SUPPLIER. (il y a aussi admin, mais je n'en parle pas ici...)
Quand je me connecte avec un client dans la webtoolbar, je vois son role qui est : [ROLE_CLIENT, ROLE_USER]
Et si je me connecte avec un supplier le role est : [ROLE_SUPPLIER, ROLE_USER]
Donc je me dit jusque là c'est bon.
Dans mon sécurity.yml j'ai mis comme hierarchy :
J'utilise les annotations pour ma security dans les controlleurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 role_hierarchy: ROLE_ADMIN: [ROLE_CLIENT, ROLE_SUPPLIER]
J'ai écrit une action dont la signature est :
donc pour moi seul un client peut exécuter cette action. Or si je me connecte avec un supplier je peux sans problème exécuter l'action.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /** * Assure le téléchargement de fichier simple * @param \ENT\DatabaseBundle\Entity\File $file * @return \Symfony\Component\HttpFoundation\Response * @Secure(roles="ROLE_CLIENT") */ public function downloadAction(File $file) {
Aurais-je oublié quelque chose ?
Merci de votre aide.
Partager