ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilSecureTokenSrcBuilder.php
Go to the documentation of this file.
1 <?php
18 declare(strict_types=1);
19 
26 
31 {
33 
34  public function __construct(
35  private Services $file_delivery,
36  ) {
37  $this->inline = new InlineSrcBuilder($file_delivery);
38  }
39 
40  public function getRevisionURL(
41  Revision $revision,
42  bool $signed = true,
43  float $valid_for_at_least_minutes = 60.0,
44  string $filename = null
45  ): string {
46  // get stream from revision
47  $stream = $revision->maybeStreamResolver()?->getStream();
48 
49  return (string) $this->file_delivery->buildTokenURL(
50  $stream,
51  $filename ?? $revision->getTitle(),
52  Disposition::INLINE,
53  $GLOBALS['ilUser']->getId() ?? 0,
54  (int) (ceil($valid_for_at_least_minutes / 60))
55  );
56  }
57 
58  public function getFlavourURLs(Flavour $flavour, bool $signed = true): \Generator
59  {
60  foreach ($flavour->getStreamResolvers() as $stream_resolver) {
61  $stream = $stream_resolver->getStream();
62  if ($stream_resolver->isInMemory() || $stream->getMetadata()['uri'] === 'php://memory') {
63  // must deliver as data uri
64  yield $this->inline->buildDataURLFromStream($stream);
65  } else {
66  yield (string) $this->file_delivery->buildTokenURL(
67  $stream,
68  '',
69  Disposition::INLINE,
70  $GLOBALS['ilUser']->getId() ?? 0,
71  1
72  );
73  }
74  }
75  }
76 
77 }
$GLOBALS["DIC"]
Definition: wac.php:31
$filename
Definition: buildRTE.php:78
__construct(private Services $file_delivery,)
$file_delivery
Definition: deliver.php:15
getFlavourURLs(Flavour $flavour, bool $signed=true)
getRevisionURL(Revision $revision, bool $signed=true, float $valid_for_at_least_minutes=60.0, string $filename=null)