ILIAS  trunk Revision v11.0_alpha-1769-g99a433fe2dc
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\Test\Access\AccessFileUploadPreview Class Reference
+ Inheritance diagram for ILIAS\Test\Access\AccessFileUploadPreview:
+ Collaboration diagram for ILIAS\Test\Access\AccessFileUploadPreview:

Public Member Functions

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

Private Member Functions

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

Private Attributes

ilDBInterface $database
 
ilAccessHandler $access
 
Incident $incident
 
Closure $references_of
 
Closure $type_of
 

Detailed Description

Definition at line 34 of file AccessFileUploadPreview.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Test\Access\AccessFileUploadPreview::__construct ( ilDBInterface  $database,
ilAccessHandler  $access,
?Incident  $incident = null,
  $references_of = [ilObject::class,
'_getAllReferences']  ,
  $type_of = [ilObject::class,
'_lookupType']   
)
Parameters
Closure(int)list<int> $references_of
Closure(int,bool)string $type_of

Definition at line 48 of file AccessFileUploadPreview.php.

References ILIAS\Test\Access\AccessFileUploadPreview\$access, ILIAS\Test\Access\AccessFileUploadPreview\$database, and ILIAS\Repository\access().

54  {
55  $this->database = $database;
56  $this->access = $access;
57  $this->incident = $incident ?? new Incident();
58  $this->references_of = Closure::fromCallable($references_of);
59  $this->type_of = Closure::fromCallable($type_of);
60  }
+ Here is the call graph for this function:

Member Function Documentation

◆ isPermitted()

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

Implements ILIAS\Test\Access\SimpleAccess.

Definition at line 62 of file AccessFileUploadPreview.php.

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

62  : Result
63  {
64  $question_id = $this->questionId($path);
65  if (!$question_id) {
66  return new Error('Not a question image path of test questions.');
67  }
68 
69  $object_id = $this->objectId($question_id);
70  if (!$object_id) {
71  return new Ok(false);
72  }
73 
74  $permitted = $this->incident->any([$this, 'refIdPermitted'], ($this->references_of)($object_id));
75 
76  return new Ok($permitted);
77  }
$path
Definition: ltiservices.php:29
+ Here is the call graph for this function:

◆ objectId()

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

Definition at line 101 of file AccessFileUploadPreview.php.

References ILIAS\Repository\int(), null, and ilDBConstants\T_INTEGER.

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

101  : ?int
102  {
103  $object_id = $this->database->fetchAssoc($this->database->queryF(
104  'SELECT obj_fi FROM qpl_questions WHERE question_id = %s',
106  [$question_id]
107  ))['obj_fi'] ?? null;
108 
109  return $object_id ? (int) $object_id : null;
110  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ questionId()

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

Definition at line 91 of file AccessFileUploadPreview.php.

References $results, and null.

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

91  : ?int
92  {
93  $results = [];
94  if (!preg_match(':/assessment/qst_preview/\d+/(\d+)/fileuploads/([^/]+)$:', $path, $results)) {
95  return null;
96  }
97 
98  return (int) $results[1];
99  }
$path
Definition: ltiservices.php:29
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$results
+ Here is the caller graph for this function:

◆ refIdPermitted()

ILIAS\Test\Access\AccessFileUploadPreview::refIdPermitted ( int  $ref_id)

Definition at line 79 of file AccessFileUploadPreview.php.

References $ref_id, ILIAS\Test\Access\AccessFileUploadPreview\$type_of, and ILIAS\Repository\access().

79  : bool
80  {
81  $ref_id = $ref_id;
82  $type = ($this->type_of)($ref_id, true);
83 
84  switch ($type) {
85  case 'qpl': return $this->access->checkAccess('read', '', $ref_id);
86  case 'tst': return $this->access->checkAccess('write', '', $ref_id);
87  default: return false;
88  }
89  }
$ref_id
Definition: ltiauth.php:65
+ Here is the call graph for this function:

Field Documentation

◆ $access

ilAccessHandler ILIAS\Test\Access\AccessFileUploadPreview::$access
private

◆ $database

ilDBInterface ILIAS\Test\Access\AccessFileUploadPreview::$database
private

◆ $incident

Incident ILIAS\Test\Access\AccessFileUploadPreview::$incident
private

Definition at line 38 of file AccessFileUploadPreview.php.

◆ $references_of

Closure ILIAS\Test\Access\AccessFileUploadPreview::$references_of
private

Definition at line 40 of file AccessFileUploadPreview.php.

◆ $type_of

Closure ILIAS\Test\Access\AccessFileUploadPreview::$type_of
private

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