ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilQtiMatImageSecurity Class Reference
+ Collaboration diagram for ilQtiMatImageSecurity:

Public Member Functions

 __construct (ilQTIMatimage $imageMaterial)
 
 getImageMaterial ()
 
 setImageMaterial ($imageMaterial)
 
 validate ()
 
 sanitizeLabel ()
 

Protected Member Functions

 getDetectedMimeType ()
 
 setDetectedMimeType ($detectedMimeType)
 
 validateContent ()
 
 validateLabel ()
 
 determineMimeType ($content)
 
 determineFileExtension ($label)
 

Protected Attributes

 $imageMaterial
 
 $detectedMimeType
 

Detailed Description

Definition at line 14 of file class.ilQtiMatImageSecurity.php.

Constructor & Destructor Documentation

◆ __construct()

ilQtiMatImageSecurity::__construct ( ilQTIMatimage  $imageMaterial)

Definition at line 26 of file class.ilQtiMatImageSecurity.php.

27 {
28 $this->setImageMaterial($imageMaterial);
29
30 if( !strlen($this->getImageMaterial()->getRawContent()) )
31 {
32 throw new ilQtiException('cannot import image without content');
33 }
34
36 $this->determineMimeType($this->getImageMaterial()->getRawContent())
37 );
38 }
setDetectedMimeType($detectedMimeType)

References determineMimeType(), getImageMaterial(), setDetectedMimeType(), and setImageMaterial().

+ Here is the call graph for this function:

Member Function Documentation

◆ determineFileExtension()

ilQtiMatImageSecurity::determineFileExtension (   $label)
protected

Definition at line 151 of file class.ilQtiMatImageSecurity.php.

152 {
153 list($dirname, $basename, $extension, $filename) = array_values( pathinfo($label) );
154 return $extension;
155 }
$filename
Definition: buildRTE.php:89

References $filename.

Referenced by validateLabel().

+ Here is the caller graph for this function:

◆ determineMimeType()

ilQtiMatImageSecurity::determineMimeType (   $content)
protected

Definition at line 146 of file class.ilQtiMatImageSecurity.php.

147 {
148 return ilFileUtils::lookupContentMimeType($content);
149 }
static lookupContentMimeType($content)

References ilFileUtils\lookupContentMimeType().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDetectedMimeType()

ilQtiMatImageSecurity::getDetectedMimeType ( )
protected
Returns
string

Definition at line 59 of file class.ilQtiMatImageSecurity.php.

References $detectedMimeType.

Referenced by validateContent(), and validateLabel().

+ Here is the caller graph for this function:

◆ getImageMaterial()

ilQtiMatImageSecurity::getImageMaterial ( )
Returns
ilQTIMatimage

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

References $imageMaterial.

Referenced by __construct(), sanitizeLabel(), validateContent(), and validateLabel().

+ Here is the caller graph for this function:

◆ sanitizeLabel()

ilQtiMatImageSecurity::sanitizeLabel ( )

Definition at line 135 of file class.ilQtiMatImageSecurity.php.

136 {
137 $label = $this->getImageMaterial()->getLabel();
138
139 $label = basename($label);
140 $label = ilUtil::stripSlashes($label);
141 $label = ilUtil::getASCIIFilename($label);
142
143 $this->getImageMaterial()->setLabel($label);
144 }
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References ilUtil\getASCIIFilename(), getImageMaterial(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ setDetectedMimeType()

ilQtiMatImageSecurity::setDetectedMimeType (   $detectedMimeType)
protected
Parameters
string$detectedMimeType

Definition at line 67 of file class.ilQtiMatImageSecurity.php.

68 {
69 $this->detectedMimeType = $detectedMimeType;
70 }

References $detectedMimeType.

Referenced by __construct().

+ Here is the caller graph for this function:

◆ setImageMaterial()

ilQtiMatImageSecurity::setImageMaterial (   $imageMaterial)
Parameters
ilQTIMatimage$imageMaterial

Definition at line 51 of file class.ilQtiMatImageSecurity.php.

52 {
53 $this->imageMaterial = $imageMaterial;
54 }

References $imageMaterial.

Referenced by __construct().

+ Here is the caller graph for this function:

◆ validate()

ilQtiMatImageSecurity::validate ( )

Definition at line 72 of file class.ilQtiMatImageSecurity.php.

73 {
74 if( !$this->validateLabel() )
75 {
76 return false;
77 }
78
79 if( !$this->validateContent() )
80 {
81 return false;
82 }
83
84 return true;
85 }

References validateContent(), and validateLabel().

+ Here is the call graph for this function:

◆ validateContent()

ilQtiMatImageSecurity::validateContent ( )
protected

Definition at line 87 of file class.ilQtiMatImageSecurity.php.

88 {
89 if($this->getImageMaterial()->getImagetype() && !assQuestion::isAllowedImageMimeType($this->getImageMaterial()->getImagetype()) )
90 {
91 return false;
92 }
93
95 {
96 return false;
97 }
98
99 if ($this->getImageMaterial()->getImagetype())
100 {
101 $declaredMimeType = assQuestion::fetchMimeTypeIdentifier($this->getImageMaterial()->getImagetype());
103
104 if( $declaredMimeType != $detectedMimeType )
105 {
106 // since ilias exports jpeg declared pngs itself, we skip this validation ^^
107 // return false;
108
109 /* @var ilComponentLogger $log */
110 $log = $GLOBALS['DIC'] ? $GLOBALS['DIC']['ilLog'] : $GLOBALS['ilLog'];
111 $log->log(
112 'QPL: imported image with declared mime ('.$declaredMimeType.') '
113 .'and detected mime ('.$detectedMimeType.')'
114 );
115 }
116 }
117
118 return true;
119 }
static fetchMimeTypeIdentifier($contentTypeString)
static isAllowedImageMimeType($mimeType)
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276

References $detectedMimeType, $GLOBALS, $log, assQuestion\fetchMimeTypeIdentifier(), getDetectedMimeType(), getImageMaterial(), and assQuestion\isAllowedImageMimeType().

Referenced by validate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validateLabel()

ilQtiMatImageSecurity::validateLabel ( )
protected

Definition at line 121 of file class.ilQtiMatImageSecurity.php.

122 {
123 if ($this->getImageMaterial()->getUri())
124 {
125 $extension = $this->determineFileExtension($this->getImageMaterial()->getUri());
126 }
127 else
128 {
129 $extension = $this->determineFileExtension($this->getImageMaterial()->getLabel());
130 }
131
133 }
static isAllowedImageFileExtension($mimeType, $fileExtension)

References determineFileExtension(), getDetectedMimeType(), getImageMaterial(), and assQuestion\isAllowedImageFileExtension().

Referenced by validate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $detectedMimeType

ilQtiMatImageSecurity::$detectedMimeType
protected

◆ $imageMaterial

ilQtiMatImageSecurity::$imageMaterial
protected

Definition at line 19 of file class.ilQtiMatImageSecurity.php.

Referenced by getImageMaterial(), and setImageMaterial().


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