J'utilise SILEX et je ne peux pas utiliser la fonction IS_GRANTED dans un modèle. Je ne trouve rien dans les documents sur la raison pour laquelle cela ne fonctionne pas. Toute astuce?
5 Réponses :
Apparemment, j'avais besoin d'ajouter les composants Symfony / Bridge également:
Ajoutez ceci au compositeur.json et mettez à jour. P>
"symfony/twig-bridge": "2.1.*",
Et bien que je ne puisse pas le trouver, cela devrait être la façon dont vous ajoutez une brindille à SILEX. Twig-Bridge comprendra automatiquement Twig / Twig.
J'ai dû utiliser cette solution de contournement (je ne sais pas encore pas encore si des inconvénients)
Naabys, avez-vous trouvé une autre solution plutôt que d'utiliser cela?
Eh bien, pas encore, mais je travaille réellement sur un autre projet SILEX où je vais essayer une autre façon de le faire. Je vous tiens au courant
J'ai fini par utiliser le vôtre mais configurez ma candidature différemment - si vous êtes intéressé, voici un lien < / a> pour mon architecture actuelle.
Il semble être bon travail. Et vous avez utilisé ma licence préférée! ;) Fourchue.
Selon le Symfony \ Composant \ Security \ Core \ SecurityContexTorface code> Nous devons fournir le deuxième paramètre que les droits que nous essayons d'évaluer. Le deuxième paramètre sera envoyé à l'électeur (par exemple, un utilisateur)
Le problème est probablement causé par l'ordre d'enregistrement de cours. La commande doit être SecurityServiceProvider puis démarrer votre application puis l'enregistrement TwigServiceProvider. TwigServiceProvider vérifie l'application $ [«Sécurité»] à configurer Twig Securitextension. Ainsi commander compte
Si vous utilisez les composants Symfony 2.6, il devient $function = new Twig_SimpleFunction('is_granted', function($role,$object = null) use ($app){
return $app['security.authorization_checker']->isGranted($role,$object);
});
$app['twig']->addFunction($function);