|
@@ -3,6 +3,7 @@
|
|
|
namespace Packagist\WebBundle\Twig;
|
|
|
|
|
|
use Packagist\WebBundle\Model\ProviderManager;
|
|
|
+use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
|
|
|
|
|
|
class PackagistExtension extends \Twig_Extension
|
|
|
{
|
|
@@ -10,10 +11,13 @@ class PackagistExtension extends \Twig_Extension
|
|
|
* @var ProviderManager
|
|
|
*/
|
|
|
private $providerManager;
|
|
|
+ /** @var CsrfTokenManagerInterface */
|
|
|
+ private $csrfTokenManager;
|
|
|
|
|
|
- public function __construct(ProviderManager $providerManager)
|
|
|
+ public function __construct(ProviderManager $providerManager, CsrfTokenManagerInterface$csrfTokenManager)
|
|
|
{
|
|
|
$this->providerManager = $providerManager;
|
|
|
+ $this->csrfTokenManager = $csrfTokenManager;
|
|
|
}
|
|
|
|
|
|
public function getTests()
|
|
@@ -29,7 +33,14 @@ class PackagistExtension extends \Twig_Extension
|
|
|
{
|
|
|
return array(
|
|
|
new \Twig_SimpleFilter('prettify_source_reference', [$this, 'prettifySourceReference']),
|
|
|
- new \Twig_SimpleFilter('gravatar_hash', [$this, 'generateGravatarHash'])
|
|
|
+ new \Twig_SimpleFilter('gravatar_hash', [$this, 'generateGravatarHash']),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getFunctions()
|
|
|
+ {
|
|
|
+ return array(
|
|
|
+ new \Twig_SimpleFunction('csrf_token', [$this, 'getCsrfToken']),
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -70,4 +81,9 @@ class PackagistExtension extends \Twig_Extension
|
|
|
{
|
|
|
return md5(strtolower($email));
|
|
|
}
|
|
|
+
|
|
|
+ public function getCsrfToken($name)
|
|
|
+ {
|
|
|
+ return $this->csrfTokenManager->getToken($name)->getValue();
|
|
|
+ }
|
|
|
}
|