SecurityExtension.php 827B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace JMS\SecurityExtraBundle\Twig;
  3. use JMS\SecurityExtraBundle\Security\Authorization\Expression\Expression;
  4. use Symfony\Component\Security\Core\SecurityContextInterface;
  5. class SecurityExtension extends \Twig_Extension
  6. {
  7. private $context;
  8. public function __construct(SecurityContextInterface $context)
  9. {
  10. $this->context = $context;
  11. }
  12. public function getFunctions()
  13. {
  14. return array(
  15. 'is_expr_granted' => new \Twig_Function_Method($this, 'isExprGranted', array(
  16. 'is_safe' => true,
  17. )),
  18. );
  19. }
  20. public function isExprGranted($expr, $object = null)
  21. {
  22. return $this->context->isGranted(array(new Expression($expr)), $object);
  23. }
  24. public function getName()
  25. {
  26. return 'jms_security_extra';
  27. }
  28. }