Newer
Older
Guillaume Perréal
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
/*
* Copyright (C) 2015 IRSTEA
* All rights reserved.
*/
namespace Irstea\FileUploadBundle\Service;
use Irstea\FileUploadBundle\Controller\UploadController;
use Irstea\FileUploadBundle\Model\UploadedFileInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
/**
* Implémentation de FileUrlInterface utilisant les services de Symfony.
*
* @author Guillaume Perréal <guillaume.perreal@irstea.fr>
*/
class FileUrlGenerator implements FileUrlGeneratorInterface
{
/**
* @var UrlGeneratorInterface
*/
protected $urlGenerator;
/**
* @var CsrfTokenManagerInterface
*/
protected $tokenManager;
/**
* @param UrlGeneratorInterface $urlGenerator
* @param CsrfTokenManagerInterface $tokenManager
*/
public function __construct(UrlGeneratorInterface $urlGenerator, CsrfTokenManagerInterface $tokenManager)
{
$this->urlGenerator = $urlGenerator;
$this->tokenManager = $tokenManager;
}
/**
* {@inheritdoc}
*/
public function generate($idFile, $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)
{
$token = $this->tokenManager->getToken(UploadController::CSRF_INTENTION);
$url = $this->urlGenerator->generate(
'file_upload_get_content',
['id' => $idFile, 'token' => $token->getValue()],
$referenceType
);
return $url;
}
}