ILIAS  release_7 Revision v7.30-3-g800a261c036
ILIAS\Modules\Test\AccessFileUploadPreview Class Reference
+ Inheritance diagram for ILIAS\Modules\Test\AccessFileUploadPreview:
+ Collaboration diagram for ILIAS\Modules\Test\AccessFileUploadPreview:

Public Member Functions

 __construct (ilDBInterface $database, ilAccess $access, ?Incident $incident=null, $references_of=[ilObject::class, '_getAllReferences'], $type_of=[ilObject::class, '_lookupType'])
 
 isPermitted (string $path)
 
 refIdPermitted ($ref_id)
 
 isPermitted (string $path)
 

Private Member Functions

 questionId (string $path)
 
 objectId (int $question_id)
 

Private Attributes

 $database
 
 $access
 
 $incident
 
 $references_of
 
 $type_of
 

Detailed Description

Definition at line 32 of file AccessFileUploadPreview.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Modules\Test\AccessFileUploadPreview::__construct ( ilDBInterface  $database,
ilAccess  $access,
?Incident  $incident = null,
  $references_of = [ilObject::class, '_getAllReferences'],
  $type_of = [ilObject::class, '_lookupType'] 
)

Member Function Documentation

◆ isPermitted()

ILIAS\Modules\Test\AccessFileUploadPreview::isPermitted ( string  $path)
Returns
Result<bool>

Implements ILIAS\Modules\Test\SimpleAccess.

Definition at line 66 of file AccessFileUploadPreview.php.

66 : Result
67 {
68 $question_id = $this->questionId($path);
69 if (!$question_id) {
70 return new Error('Not a question image path of test questions.');
71 }
72
73 $object_id = $this->objectId($question_id);
74 if (!$object_id) {
75 return new Ok(false);
76 }
77
78 $permitted = $this->incident->any([$this, 'refIdPermitted'], ($this->references_of)($object_id));
79
80 return new Ok($permitted);
81 }

References ILIAS\Modules\Test\AccessFileUploadPreview\objectId(), and ILIAS\Modules\Test\AccessFileUploadPreview\questionId().

+ Here is the call graph for this function:

◆ objectId()

ILIAS\Modules\Test\AccessFileUploadPreview::objectId ( int  $question_id)
private

Definition at line 108 of file AccessFileUploadPreview.php.

108 : ?int
109 {
110 $object_id = $this->database->fetchAssoc($this->database->queryF(
111 'SELECT obj_fi FROM qpl_questions WHERE question_id = %s',
113 [$question_id]
114 ))['obj_fi'] ?? null;
115
116 return $object_id ? (int) $object_id : null;
117 }

References ilDBConstants\T_INTEGER.

Referenced by ILIAS\Modules\Test\AccessFileUploadPreview\isPermitted().

+ Here is the caller graph for this function:

◆ questionId()

ILIAS\Modules\Test\AccessFileUploadPreview::questionId ( string  $path)
private

Definition at line 98 of file AccessFileUploadPreview.php.

98 : ?int
99 {
100 $results = [];
101 if (!preg_match(':/assessment/qst_preview/\d+/(\d+)/fileuploads/([^/]+)$:', $path, $results)) {
102 return null;
103 }
104
105 return (int) $results[1];
106 }
$results

References $results.

Referenced by ILIAS\Modules\Test\AccessFileUploadPreview\isPermitted().

+ Here is the caller graph for this function:

◆ refIdPermitted()

ILIAS\Modules\Test\AccessFileUploadPreview::refIdPermitted (   $ref_id)
Parameters
int | numeric-string$ref_id

Definition at line 86 of file AccessFileUploadPreview.php.

86 : bool
87 {
88 $ref_id = (int) $ref_id;
89 $type = ($this->type_of)($ref_id, true);
90
91 switch ($type) {
92 case 'qpl': return $this->access->checkAccess('read', '', $ref_id);
93 case 'tst': return $this->access->checkAccess('write', '', $ref_id);
94 default: return false;
95 }
96 }
$type

References $type, and ILIAS\Modules\Test\AccessFileUploadPreview\$type_of.

Field Documentation

◆ $access

ILIAS\Modules\Test\AccessFileUploadPreview::$access
private

◆ $database

ILIAS\Modules\Test\AccessFileUploadPreview::$database
private

◆ $incident

ILIAS\Modules\Test\AccessFileUploadPreview::$incident
private

◆ $references_of

ILIAS\Modules\Test\AccessFileUploadPreview::$references_of
private

◆ $type_of

ILIAS\Modules\Test\AccessFileUploadPreview::$type_of
private

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