From 4d3b1fd795df6039eb887a9ef7fcbb435e31772d Mon Sep 17 00:00:00 2001 From: KhanhIceTea Date: Mon, 27 Jun 2016 17:36:18 +0700 Subject: [PATCH] Fix CSRF Token --- src/Sifoni/Controller/Base.php | 2 +- src/Sifoni/Engine.php | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Sifoni/Controller/Base.php b/src/Sifoni/Controller/Base.php index d02fdc4..d7dd913 100644 --- a/src/Sifoni/Controller/Base.php +++ b/src/Sifoni/Controller/Base.php @@ -78,6 +78,6 @@ public function isFormValid($action = '', $token_name = '_token') { $token = new CsrfToken($action, $this->request->get($token_name)); - return $this->app['form.csrf_provider']->isTokenValid($token); + return $this->app['csrf.token_manager']->isTokenValid($token); } } diff --git a/src/Sifoni/Engine.php b/src/Sifoni/Engine.php index dfbae18..31204d3 100644 --- a/src/Sifoni/Engine.php +++ b/src/Sifoni/Engine.php @@ -16,6 +16,8 @@ use Sifoni\Provider\SessionServiceProvider; use Sifoni\Provider\HttpCacheServiceProvider; use Monolog\Logger; +use Twig_SimpleFunction; +use Twig_Environment; class Engine { @@ -188,6 +190,17 @@ private function registerServices() if ($app['enabled_csrf']) { $app->register(new CsrfServiceProvider()); + + if ($app['enabled_twig']) { + $app['twig'] = $app->extend('twig', function (Twig_Environment $twig, $app) { + $csrf_token = new Twig_SimpleFunction('csrf_token', function ($token_id) use ($app) { + return $app['csrf.token_manager']->getToken($token_id); + }); + $twig->addFunction($csrf_token); + + return $twig; + }); + } } if ($app['enabled_capsule']) {