public function compilePreconditions(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     if (!empty($function->args)) {
         throw new InvalidArgumentException(sprintf('The ' . $this->getName() . '() function does not accept any arguments, but got "%s".', var_export($function->args, true)));
     }
     $compiler->verifyItem('token', 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\TokenInterface');
 }
コード例 #2
0
 private function addParameterMapping(ExpressionCompiler $compiler)
 {
     $name = $compiler->nextName();
     $indexName = $compiler->nextName();
     $paramName = $compiler->nextName();
     $compiler->setAttribute('parameter_mapping_name', $name)->writeln("\${$name} = array();")->write("foreach (")->compileInternal(new VariableExpression('object'))->writeln("->reflection->getParameters() as \${$indexName} => \${$paramName}) {")->indent()->writeln("\${$name}[\${$paramName}->name] = \${$indexName};")->outdent()->writeln("}\n");
 }
コード例 #3
0
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $compiler->compileInternal(new VariableExpression('permission_evaluator'))->write('->hasPermission(')->compileInternal(new VariableExpression('token'))->write(', ')->compileInternal($function->args[0])->write(', ');
     if ($function->args[1] instanceof ConstantExpression) {
         $compiler->write(var_export(strtoupper($function->args[1]->value), true) . ')');
         return;
     }
     $compiler->write('strtoupper(')->compileInternal($function->args[1])->write('))');
 }
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $compiler->compileInternal(new VariableExpression('permission_evaluator'))->write('->hasPermission(')->compileInternal(new VariableExpression('token'))->write(", new Symfony\\Component\\Security\\Acl\\Domain\\ObjectIdentity(")->compileInternal($function->args[0])->write(", -1), ");
     if ($function->args[1] instanceof ConstantExpression) {
         $compiler->write(var_export(strtoupper($function->args[1]->value), true) . ')');
         return;
     }
     $compiler->write('strtoupper(')->compileInternal($function->args[1])->write('))');
 }
コード例 #5
0
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $compiler->write("(");
     $first = true;
     foreach ($function->args as $arg) {
         if (!$first) {
             $compiler->write(" || ");
         }
         $first = false;
         $compiler->write("isset({$this->rolesExpr}[")->compileInternal($arg)->write("])");
     }
     $compiler->write(")");
 }
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $compiler->compileInternal(new VariableExpression('container'))->write('->get(' . var_export($this->serviceId, true) . ')')->write('->' . $this->methodName . '(');
     $first = true;
     foreach ($function->args as $arg) {
         if (!$first) {
             $compiler->write(', ');
         }
         $first = false;
         $compiler->compileInternal($arg);
     }
     $compiler->write(')');
 }
コード例 #7
0
 public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr)
 {
     if (isset($this->serviceMap[$expr->name])) {
         $compiler->write("\$context['container']->get('{$this->serviceMap[$expr->name]}'");
         if ($expr->allowNull) {
             $compiler->write(", " . ContainerInterface::NULL_ON_INVALID_REFERENCE);
         }
         $compiler->write(")");
         return;
     }
     if (isset($this->parameterMap[$expr->name])) {
         $compiler->write("\$context['container']->getParameter('{$this->parameterMap[$expr->name]}')");
         return;
     }
     parent::compile($compiler, $expr);
 }
コード例 #8
0
 public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr)
 {
     if ('permitAll' === $expr->name) {
         $compiler->write('true');
         return;
     }
     if ('denyAll' === $expr->name) {
         $compiler->write('false');
         return;
     }
     if ($expr->allowNull) {
         $compiler->write("(isset(\$context['{$expr->name}']) ? ");
     }
     $compiler->write("\$context['{$expr->name}']");
     if ($expr->allowNull) {
         $compiler->write(" : null)");
     }
 }
コード例 #9
0
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $argName = $compiler->attributes['arg_name'];
     $compiler->write("\${$argName} !== null");
 }
コード例 #10
0
 public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr)
 {
     $compiler->write('!(')->compileInternal($expr->expr)->write(')');
 }
コード例 #11
0
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $compiler->write("!")->compileInternal(new VariableExpression('trust_resolver'))->write("->isAnonymous(\$context['token'])");
 }
コード例 #12
0
 public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr)
 {
     $compiler->write("(")->compileInternal($expr->left)->write(") " . $this->getOperator() . " (")->compileInternal($expr->right)->write(")");
 }
コード例 #13
0
 public function compile(ExpressionCompiler $compiler, FunctionExpression $function)
 {
     $compiler->write("isset({$this->rolesExpr}[")->compileInternal($function->args[0])->write("])");
 }