35 lines
		
	
	
		
			817 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			817 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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';
 | 
						|
    }
 | 
						|
} |