ILIAS  trunk Revision v11.0_alpha-1749-g1a06bdef097
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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)
 

Data Fields

array Ö
 

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.

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

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)
+ 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.

Referenced by ilFileUtils\getASCIIFilename(), and prepareFileNameForConsumer().

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
+ Here is the caller graph for this function:

◆ isBlockedExtension()

ilFileServicesPolicy::isBlockedExtension ( string  $extension)

Implements ILIAS\ResourceStorage\Policy\FileNamePolicy.

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

References ILIAS\Repository\settings().

85  : bool
86  {
87  if ($this->settings->isByPassAllowedForCurrentUser()) {
88  return false;
89  }
90  return parent::isBlockedExtension($extension);
91  }
+ 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.

References $filename, and ascii().

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  }
$filename
Definition: buildRTE.php:78
+ 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"

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

◆ Ö

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

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


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