ILIAS  trunk Revision v5.2.0beta1-34132-g2d4d73d4a0
ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor Class Reference

Class WhitelistExtensionPreProcessor. More...

+ Inheritance diagram for ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor:
+ Collaboration diagram for ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor:

Public Member Functions

 __construct (array $whitelist)
 WhitelistExtensionPreProcessor constructor. More...
 
 process (FileStream $stream, Metadata $metadata)
 

Private Member Functions

 isWhitelisted (string $filename)
 

Private Attributes

array $whitelist
 

Detailed Description

Class WhitelistExtensionPreProcessor.

PreProcessor which allows only whitelisted file extensions.

Author
Nicolas Schäfli ns@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch
Since
5.3
Version
1.0.0

Definition at line 32 of file WhitelistExtensionPreProcessor.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor::__construct ( array  $whitelist)

WhitelistExtensionPreProcessor constructor.

Example: ['jpg', 'svg', 'png']

Matches: example.jpg example.svg example.png

No Match: example.apng example.png.exe ...

Parameters

Definition at line 58 of file WhitelistExtensionPreProcessor.php.

References ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor\$whitelist.

Member Function Documentation

◆ isWhitelisted()

ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor::isWhitelisted ( string  $filename)
private

Definition at line 77 of file WhitelistExtensionPreProcessor.php.

Referenced by ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor\process().

77  : bool
78  {
79  $extensions = explode('.', $filename);
80 
81  $extension = count($extensions) === 1 ? '' : end($extensions);
82 
83  return in_array(strtolower($extension), $this->whitelist);
84  }
$filename
Definition: buildRTE.php:78
+ Here is the caller graph for this function:

◆ process()

ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor::process ( FileStream  $stream,
Metadata  $metadata 
)

Implements ILIAS\FileUpload\Processor\PreProcessor.

Definition at line 67 of file WhitelistExtensionPreProcessor.php.

References ILIAS\FileUpload\DTO\Metadata\getFilename(), ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor\isWhitelisted(), ILIAS\FileUpload\DTO\ProcessingStatus\OK, and ILIAS\FileUpload\DTO\ProcessingStatus\REJECTED.

67  : ProcessingStatus
68  {
69  if ($this->isWhitelisted($metadata->getFilename())) {
70  return new ProcessingStatus(ProcessingStatus::OK, 'Extension complies with whitelist.');
71  }
72 
73  return new ProcessingStatus(ProcessingStatus::REJECTED, 'Extension don\'t complies with whitelist.');
74  }
const REJECTED
Upload got rejected by a processor.
+ Here is the call graph for this function:

Field Documentation

◆ $whitelist

array ILIAS\FileUpload\Processor\WhitelistExtensionPreProcessor::$whitelist
private

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