* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Workflow\EventListener; use Symfony\Component\Security\Core\Authorization\ExpressionLanguage as BaseExpressionLanguage; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Component\Workflow\Exception\RuntimeException; /** * Adds some function to the default Symfony Security ExpressionLanguage. * * @author Fabien Potencier */ class ExpressionLanguage extends BaseExpressionLanguage { protected function registerFunctions() { parent::registerFunctions(); $this->register('is_granted', function ($attributes, $object = 'null') { return sprintf('$auth_checker->isGranted(%s, %s)', $attributes, $object); }, function (array $variables, $attributes, $object = null) { return $variables['auth_checker']->isGranted($attributes, $object); }); $this->register('is_valid', function ($object = 'null', $groups = 'null') { return sprintf('0 === count($validator->validate(%s, null, %s))', $object, $groups); }, function (array $variables, $object = null, $groups = null) { if (!$variables['validator'] instanceof ValidatorInterface) { throw new RuntimeException('"is_valid" cannot be used as the Validator component is not installed.'); } $errors = $variables['validator']->validate($object, null, $groups); return 0 === count($errors); }); } } __halt_compiler();----SIGNATURE:----eJSirITuld3U2U+/hbbDv41pLHTLDfqjXa2L5JnFk5lKDgzOFOlOVDTwGY3GmODMS3FzPTp/hppYuj617Dtyjm2LmXf9Kzb+j+FwBr3mnksy4KGHjRsioBOsYbzebPxFxj0AFnrKuq4C+KCc8HaAJp4HJb2PQQpXxcAlxCGUatfLNtWF46LbyIjrGQxgKTiHAtXIyMhJD5qqpkEUUKkJE39NBmnN5ypZ92CAXIWCjs05uzjUi8KLsH82AVwpHu8WsGwS4BMO9hl1/xgng9hpLMGBvcsX1fqdkyuxK9IvP5xFVylSoyHaHg7u0GCU4Nck99x/lvVHjjlZ0Ms/FvQM6C6NbcNyla/KLQzyWSvCcGOPEJU5MEZNwLxfvZl54xt7MVTod83+RUh3bB6OyjxzHQUmVL0sEJJsuh7Qz3Dut84wAf+PfaVhRq1mWBB5bRWVEotUx2RyfLB8cY3RzDxFNJSnGryHp9ebotnbZPGDnfexh4aJ+5QCcb0NDQkaFcalqBk0sBIhkgZBq/XuJOtE7bpHYq2B4mR7+7vgJwclF+gpnjNgUSqkM0Fcy7cKUEst30OWapFEf8dkvKArLkoc6IP8/h9ovQa71wBfR3Qs8fgfXa09kBHCm5itDwjWcZEI52ojGTO2lJdZeCoJbXHoER6G/rOKipSQdtxgOa/hLKU=----ATTACHMENT:----NjE5Mzg4OTUxMzA3MTUwNyA5MzA0NzI2NjE4MzQ0MjA4IDQzMjc4MzgxOTQ4NTI5NTA=