ILIAS  release_8 Revision v8.19-1-g4e8f2f9140c
All Data Structures Namespaces Files Functions Variables Modules Pages
ilFileServicesPolicy Class Reference

Class ilFileServicesPolicy. More...

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

Public Member Functions

 __construct (ilFileServicesSettings $settings)
 
 prepareFileNameForConsumer (string $filename_with_extension)
 
 ascii (string $filename)
 
 isBlockedExtension (string $extension)
 
- Public Member Functions inherited from ILIAS\ResourceStorage\Policy\WhiteAndBlacklistedFileNamePolicy
 __construct (array $blacklisted=[], 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
 
ilFileServicesSettings $settings
 
ilFileServicesFilenameSanitizer $sanitizer
 
bool $bypass = null
 
- Protected Attributes inherited from ILIAS\ResourceStorage\Policy\WhiteAndBlacklistedFileNamePolicy
array $blacklisted = []
 
array $whitelisted = []
 

Private Attributes

array $umlaut_mapping
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilFileServicesPolicy::__construct ( ilFileServicesSettings  $settings)

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

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

51  {
52  $this->settings = $settings;
53  parent::__construct($this->settings->getBlackListedSuffixes(), $this->settings->getWhiteListedSuffixes());
54  $this->sanitizer = new ilFileServicesFilenameSanitizer($this->settings);
55  $this->as_ascii = $this->settings->isASCIIConvertionEnabled();
56  }
ilFileServicesSettings $settings
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 70 of file class.ilFileServicesPolicy.php.

References $ascii_filename.

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

70  : string
71  {
72  foreach ($this->umlaut_mapping as $src => $tgt) {
73  $filename = str_replace($src, $tgt, $filename);
74  }
75 
76  $ascii_filename = htmlentities($filename, ENT_NOQUOTES, 'UTF-8');
77  $ascii_filename = preg_replace('/\&(.)[^;]*;/', '\\1', $ascii_filename);
78  $ascii_filename = preg_replace('/[\x7f-\xff]/', '_', $ascii_filename);
79 
80  // OS do not allow the following characters in filenames: \/:*?"<>|
81  $ascii_filename = preg_replace(
82  '/[:\x5c\/\*\?\"<>\|]/',
83  '_',
85  );
86  return $ascii_filename;
87  }
$ascii_filename
Definition: metadata.php:378
$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 89 of file class.ilFileServicesPolicy.php.

References ILIAS\Repository\settings().

89  : bool
90  {
91  if ($this->settings->isByPassAllowedForCurrentUser()) {
92  return false;
93  }
94  return parent::isBlockedExtension($extension);
95  }
+ Here is the call graph for this function:

◆ prepareFileNameForConsumer()

ilFileServicesPolicy::prepareFileNameForConsumer ( string  $filename_with_extension)

Implements ILIAS\ResourceStorage\Policy\FileNamePolicy.

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

References $filename, and ascii().

58  : string
59  {
60  $filename = $this->sanitizer->sanitize(basename($filename_with_extension));
61  if ($this->as_ascii) {
62  $filename = $this->ascii($filename);
63  }
64  // remove all control characters, see https://mantis.ilias.de/view.php?id=34975
65  $filename = preg_replace('/&#.*;/U', '_', $filename, 1);
66 
67  return $filename;
68  }
$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 45 of file class.ilFileServicesPolicy.php.

◆ $bypass

bool ilFileServicesPolicy::$bypass = null
protected

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

◆ $file_admin_ref_id

int ilFileServicesPolicy::$file_admin_ref_id
protected

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

◆ $sanitizer

ilFileServicesFilenameSanitizer ilFileServicesPolicy::$sanitizer
protected

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

◆ $settings

ilFileServicesSettings ilFileServicesPolicy::$settings
protected

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

Referenced by __construct().

◆ $umlaut_mapping

array ilFileServicesPolicy::$umlaut_mapping
private
Initial value:
= [
"Ä" => "Ae"

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

◆ Ö

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

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


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