| Viewing file:  SecurityExtension.php (1.36 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php
 /*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
 
 namespace Symfony\Bridge\Twig\Extension;
 
 use Symfony\Component\Security\Acl\Voter\FieldVote;
 use Symfony\Component\Security\Core\SecurityContextInterface;
 
 /**
 * SecurityExtension exposes security context features.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
 class SecurityExtension extends \Twig_Extension
 {
 private $context;
 
 public function __construct(SecurityContextInterface $context = null)
 {
 $this->context = $context;
 }
 
 public function isGranted($role, $object = null, $field = null)
 {
 if (null === $this->context) {
 return false;
 }
 
 if (null !== $field) {
 $object = new FieldVote($object, $field);
 }
 
 return $this->context->isGranted($role, $object);
 }
 
 /**
 * {@inheritdoc}
 */
 public function getFunctions()
 {
 return array(
 new \Twig_SimpleFunction('is_granted', array($this, 'isGranted')),
 );
 }
 
 /**
 * Returns the name of the extension.
 *
 * @return string The extension name
 */
 public function getName()
 {
 return 'security';
 }
 }
 
 |