فهرست منبع

[TwigBundle] added the security context and the user as global variables when they are defined

Fabien Potencier 14 سال پیش
والد
کامیت
50809d2ae0
1فایلهای تغییر یافته به همراه19 افزوده شده و 0 حذف شده
  1. 19 0
      src/Symfony/Bundle/TwigBundle/Renderer/Renderer.php

+ 19 - 0
src/Symfony/Bundle/TwigBundle/Renderer/Renderer.php

@@ -4,6 +4,7 @@ namespace Symfony\Bundle\TwigBundle\Renderer;
 
 use Symfony\Component\Templating\Renderer\Renderer as BaseRenderer;
 use Symfony\Component\Templating\Storage\Storage;
+use Symfony\Component\Templating\Engine;
 
 /*
  * This file is part of the Symfony package.
@@ -27,6 +28,24 @@ class Renderer extends BaseRenderer
         $this->environment = $environment;
     }
 
+    /**
+     * {@inheritdoc}
+     */
+    public function setEngine(Engine $engine)
+    {
+        parent::setEngine($engine);
+
+        $container = $engine->getContainer();
+        if ($container->has('security.context')) {
+            $security = $container->get('security.context');
+            $this->environment->addGlobal('security', $security);
+
+            if ($user = $security->getUser()) {
+                $this->environment->addGlobal('user', $user);
+            }
+        }
+    }
+
     /**
      * Evaluates a template.
      *