ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ilSecureTokenSrcBuilder Class Reference
+ Inheritance diagram for ilSecureTokenSrcBuilder:
+ Collaboration diagram for ilSecureTokenSrcBuilder:

Public Member Functions

 __construct (private FileDeliveryServices $file_delivery)
 
 getRevisionURL (Revision $revision, bool $signed=true, float $valid_for_at_least_minutes=60.0, ?string $filename=null)
 
 getRevisionURLWithoutIsolation (Revision $revision, float $valid_for_at_least_minutes=60.0, ?string $filename=null)
 
 getFlavourURLs (Flavour $flavour, bool $signed=true)
 
 getRevisionURL (Revision $revision, bool $signed=true, float $valid_for_at_least_minutes=60.0, ?string $filename=null)
 
 getRevisionURLWithoutIsolation (Revision $revision, float $valid_for_at_least_minutes=60.0, ?string $filename=null)
 Signed URL delivered from the ILIAS domain instead of the content domain of User Content Isolation. More...
 
 getFlavourURLs (Flavour $flavour, bool $signed=true)
 

Private Attributes

InlineSrcBuilder $inline
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilSecureTokenSrcBuilder::__construct ( private FileDeliveryServices  $file_delivery)

Definition at line 34 of file class.ilSecureTokenSrcBuilder.php.

36 {
37 $this->inline = new InlineSrcBuilder($file_delivery);
38 }

Member Function Documentation

◆ getFlavourURLs()

ilSecureTokenSrcBuilder::getFlavourURLs ( Flavour  $flavour,
bool  $signed = true 
)
Exceptions

RuntimeException if signing is not possible or failed, but was requested with $signed = true

Implements ILIAS\ResourceStorage\Consumer\SrcBuilder.

Definition at line 75 of file class.ilSecureTokenSrcBuilder.php.

75 : \Generator
76 {
77 try {
78 global $DIC;
79
81 ->resourceStorage()
82 ->manage()
83 ->getResource($flavour->getResourceId())
84 ->getSpecificRevision($flavour->getRevision())
85 ?->getInformation()
86 ->getTitle() ?? '';
87
88 $frindly_name = preg_replace(
89 '/[^a-zA-Z0-9-_]/',
90 '',
91 strtolower($flavour->getDefinition()->getInternalName())
92 );
93 } catch (Throwable) {
94 $filename = '';
95 $frindly_name = 'fl';
96 }
97
98
99 foreach ($flavour->getStreamResolvers() as $i => $stream_resolver) {
100 $stream = $stream_resolver->getStream();
101 if ($stream_resolver->isInMemory() || $stream->getMetadata()['uri'] === 'php://memory') {
102 // must deliver as data uri
103 yield $this->inline->buildDataURLFromStream($stream);
104 } else {
105
106 yield (string) $this->file_delivery->buildTokenURL(
107 $stream,
108 $frindly_name . '_' . $i . '_' . $filename,
109 Disposition::INLINE,
110 $GLOBALS['ilUser']->getId() ?? 0,
111 1
112 );
113 }
114 }
115 }
$filename
Definition: buildRTE.php:78
global $DIC
Definition: shib_login.php:26
$GLOBALS["DIC"]
Definition: wac.php:66

References $DIC, $filename, $GLOBALS, ILIAS\ResourceStorage\Flavour\Flavour\getDefinition(), ILIAS\Survey\Mode\getId(), ILIAS\ResourceStorage\Flavour\Flavour\getResourceId(), ILIAS\ResourceStorage\Flavour\Flavour\getRevision(), and ILIAS\ResourceStorage\Flavour\Flavour\getStreamResolvers().

+ Here is the call graph for this function:

◆ getRevisionURL()

ilSecureTokenSrcBuilder::getRevisionURL ( Revision  $revision,
bool  $signed = true,
float  $valid_for_at_least_minutes = 60.0,
?string  $filename = null 
)
Parameters
string | null$filename
Exceptions

RuntimeException if signing is not possible or failed, but was requested with $signed = true

Implements ILIAS\ResourceStorage\Consumer\SrcBuilder.

Definition at line 40 of file class.ilSecureTokenSrcBuilder.php.

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 }

◆ getRevisionURLWithoutIsolation()

ilSecureTokenSrcBuilder::getRevisionURLWithoutIsolation ( Revision  $revision,
float  $valid_for_at_least_minutes = 60.0,
?string  $filename = null 
)
Deprecated:
see {
See also
SrcBuilder::getRevisionURLWithoutIsolation()}

Implements ILIAS\ResourceStorage\Consumer\SrcBuilder.

Definition at line 61 of file class.ilSecureTokenSrcBuilder.php.

65 : string {
66 return (string) $this->file_delivery->buildTokenURLWithoutIsolation(
67 $revision->maybeStreamResolver()?->getStream(),
68 $filename ?? $revision->getTitle(),
69 Disposition::INLINE,
70 $GLOBALS['ilUser']->getId() ?? 0,
71 (int) (ceil($valid_for_at_least_minutes / 60))
72 );
73 }

Field Documentation

◆ $inline

InlineSrcBuilder ilSecureTokenSrcBuilder::$inline
private

Definition at line 32 of file class.ilSecureTokenSrcBuilder.php.


The documentation for this class was generated from the following file: