ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilFileServicesPolicy Class Reference

Class ilFileServicesPolicy. More...

+ Inheritance diagram for ilFileServicesPolicy:
+ Collaboration diagram for ilFileServicesPolicy:

Public Member Functions

 __construct (protected ilFileServicesSettings $settings)
 
 prepareFileNameForConsumer (string $filename_with_extension)
 
 ascii (string $filename)
 
 isBlockedExtension (string $extension)
 
- Public Member Functions inherited from ILIAS\ResourceStorage\Policy\WhiteAndBlacklistedFileNamePolicy
 __construct (protected array $blacklisted=[], protected array $whitelisted=[])
 WhiteAndBlacklistedFileNamePolicy constructor. More...
 
 isValidExtension (string $extension)
 
 isBlockedExtension (string $extension)
 
 check (string $extension)
 
 check (string $extension)
 
 isValidExtension (string $extension)
 
 isBlockedExtension (string $extension)
 
 prepareFileNameForConsumer (string $filename_with_extension)
 

Protected Attributes

int $file_admin_ref_id
 
bool $as_ascii = true
 
ilFileServicesFilenameSanitizer $sanitizer
 
bool $bypass = null
 

Private Attributes

array $umlaut_mapping
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilFileServicesPolicy::__construct ( protected ilFileServicesSettings  $settings)

Definition at line 46 of file class.ilFileServicesPolicy.php.

47 {
48 parent::__construct($this->settings->getBlackListedSuffixes(), $this->settings->getWhiteListedSuffixes());
49 $this->sanitizer = new ilFileServicesFilenameSanitizer($this->settings);
50 $this->as_ascii = $this->settings->isASCIIConvertionEnabled();
51 }
Class ilFileServicesFilenameSanitizer.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc

References ILIAS\GlobalScreen\Provider\__construct(), and ILIAS\Repository\settings().

+ Here is the call graph for this function:

Member Function Documentation

◆ ascii()

ilFileServicesPolicy::ascii ( string  $filename)

Definition at line 65 of file class.ilFileServicesPolicy.php.

65 : string
66 {
67 foreach ($this->umlaut_mapping as $src => $tgt) {
68 $filename = str_replace($src, $tgt, $filename);
69 }
70
71 $ascii_filename = htmlentities($filename, ENT_NOQUOTES, 'UTF-8');
72 $ascii_filename = preg_replace('/\&(.)[^;]*;/', '\\1', $ascii_filename);
73 $ascii_filename = preg_replace('/[\x7f-\xff]/', '_', (string) $ascii_filename);
74
75 // OS do not allow the following characters in filenames: \/:*?"<>|
76 $ascii_filename = preg_replace(
77 '/[:\x5c\/\*\?\"<>\|]/',
78 '_',
79 (string) $ascii_filename
80 );
81 return $ascii_filename;
82 }
$filename
Definition: buildRTE.php:78

References $filename.

Referenced by prepareFileNameForConsumer().

+ Here is the caller graph for this function:

◆ isBlockedExtension()

ilFileServicesPolicy::isBlockedExtension ( string  $extension)

Reimplemented from ILIAS\ResourceStorage\Policy\WhiteAndBlacklistedFileNamePolicy.

Definition at line 85 of file class.ilFileServicesPolicy.php.

85 : bool
86 {
87 if ($this->settings->isByPassAllowedForCurrentUser()) {
88 return false;
89 }
90 return parent::isBlockedExtension($extension);
91 }

References ILIAS\Repository\settings().

+ Here is the call graph for this function:

◆ prepareFileNameForConsumer()

ilFileServicesPolicy::prepareFileNameForConsumer ( string  $filename_with_extension)

Implements ILIAS\ResourceStorage\Policy\FileNamePolicy.

Definition at line 53 of file class.ilFileServicesPolicy.php.

53 : string
54 {
55 $filename = $this->sanitizer->sanitize(basename($filename_with_extension));
56 if ($this->as_ascii) {
57 $filename = $this->ascii($filename);
58 }
59 // remove all control characters, see https://mantis.ilias.de/view.php?id=34975
60 $filename = preg_replace('/&#.*;/U', '_', $filename, 1);
61
62 return $filename;
63 }

References $filename, and ascii().

+ Here is the call graph for this function:

Field Documentation

◆ $as_ascii

bool ilFileServicesPolicy::$as_ascii = true
protected

Definition at line 42 of file class.ilFileServicesPolicy.php.

◆ $bypass

bool ilFileServicesPolicy::$bypass = null
protected

Definition at line 44 of file class.ilFileServicesPolicy.php.

◆ $file_admin_ref_id

int ilFileServicesPolicy::$file_admin_ref_id
protected

Definition at line 41 of file class.ilFileServicesPolicy.php.

◆ $sanitizer

ilFileServicesFilenameSanitizer ilFileServicesPolicy::$sanitizer
protected

Definition at line 43 of file class.ilFileServicesPolicy.php.

◆ $umlaut_mapping

array ilFileServicesPolicy::$umlaut_mapping
private
Initial value:
= [
"Ä" => "Ae",
"Ö" => "Oe",
"Ü" => "Ue",
"ä" => "ae",
"ö" => "oe",
"ü" => "ue",
"é" => "e",
"è" => "e",
"é" => "e",
"ê" => "e",
"ß" => "ss"
]

Definition at line 28 of file class.ilFileServicesPolicy.php.


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