<?php namespace JMS\SecurityExtraBundle\Twig; use JMS\SecurityExtraBundle\Security\Authorization\Expression\Expression; use Symfony\Component\Security\Core\SecurityContextInterface; class SecurityExtension extends \Twig_Extension { private $context; public function __construct(SecurityContextInterface $context) { $this->context = $context; } public function getFunctions() { return array( 'is_expr_granted' => new \Twig_Function_Method($this, 'isExprGranted', array( 'is_safe' => true, )), ); } public function isExprGranted($expr, $object = null) { return $this->context->isGranted(array(new Expression($expr)), $object); } public function getName() { return 'jms_security_extra'; } }