ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilObjFileBasedLMAccess Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Inheritance diagram for ilObjFileBasedLMAccess:
+ Collaboration diagram for ilObjFileBasedLMAccess:

Public Member Functions

 __construct ()
 
 _checkAccess (string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id=null)
 Checks whether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess) More...
 
- Public Member Functions inherited from ilObjectAccess
 _checkAccess (string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id=null)
 Checks whether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess) More...
 
 canBeDelivered (ilWACPath $ilWACPath)
 
 canBeDelivered (ilWACPath $ilWACPath)
 

Static Public Member Functions

static _getCommands ()
 get commands More...
 
static _determineStartUrl (int $a_id)
 
static _checkGoto (string $target)
 check whether goto script will succeed More...
 
static _lookupDiskUsage (int $a_id)
 Returns the number of bytes used on the harddisk by the learning module with the specified object id. More...
 
static _preloadData (array $obj_ids, array $ref_ids)
 Preload data. More...
 
static isInfoEnabled (int $obj_id)
 
- Static Public Member Functions inherited from ilObjectAccess
static _getCommands ()
 get commands More...
 
static _checkGoto (string $target)
 check whether goto script will succeed More...
 
static _isOffline (int $obj_id)
 Type-specific implementation of general status, has to be overwritten if object type does not support centralized offline handling. More...
 
static _preloadData (array $obj_ids, array $ref_ids)
 Preload data. More...
 

Static Public Attributes

static array $startfile = []
 

Protected Attributes

ilObjUser $user
 
ilLanguage $lng
 
ilRbacSystem $rbacsystem
 
ilAccessHandler $access
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 22 of file class.ilObjFileBasedLMAccess.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjFileBasedLMAccess::__construct ( )

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

32 {
33 global $DIC;
34
35 $this->user = $DIC->user();
36 $this->lng = $DIC->language();
37 $this->rbacsystem = $DIC->rbac()->system();
38 $this->access = $DIC->access();
39 }
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\Repository\access(), ILIAS\Repository\lng(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

Member Function Documentation

◆ _checkAccess()

ilObjFileBasedLMAccess::_checkAccess ( string  $cmd,
string  $permission,
int  $ref_id,
int  $obj_id,
?int  $user_id = null 
)

Checks whether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess)

Please do not check any preconditions handled by ilConditionHandler here. Also don't do any RBAC checks.

Reimplemented from ilObjectAccess.

Definition at line 41 of file class.ilObjFileBasedLMAccess.php.

41 : bool
42 {
44 $ilAccess = $this->access;
45
46 switch ($permission) {
47 case "read":
48
49 if (self::_determineStartUrl($obj_id) === "") {
51 return false;
52 }
53 break;
54 }
55 return true;
56 }
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
addInfoItem(string $a_type, string $a_text, string $a_data="")
add an info item to current info object

References $access, $lng, ilRBACAccessHandler\addInfoItem(), ilAccessInfo\IL_NO_OBJECT_ACCESS, and ilLanguage\txt().

+ Here is the call graph for this function:

◆ _checkGoto()

static ilObjFileBasedLMAccess::_checkGoto ( string  $target)
static

check whether goto script will succeed

Reimplemented from ilObjectAccess.

Definition at line 132 of file class.ilObjFileBasedLMAccess.php.

132 : bool
133 {
134 global $DIC;
135
136 $ilAccess = $DIC->access();
137
138 $t_arr = explode("_", $target);
139
140 if ($t_arr[0] !== "htlm" || ((int) $t_arr[1]) <= 0) {
141 return false;
142 }
143
144 if ($ilAccess->checkAccess("visible", "", $t_arr[1]) ||
145 $ilAccess->checkAccess("read", "", $t_arr[1])) {
146 return true;
147 }
148 return false;
149 }

References $DIC.

◆ _determineStartUrl()

static ilObjFileBasedLMAccess::_determineStartUrl ( int  $a_id)
static

Definition at line 74 of file class.ilObjFileBasedLMAccess.php.

74 : string
75 {
76 global $DIC;
77
78 static $startfile = [];
79 if (isset($startfile[$a_id])) {
80 return $startfile[$a_id];
81 }
82
83 $ilDB = $DIC->database();
84
85 $q = "SELECT startfile, rid FROM file_based_lm WHERE id = " . $ilDB->quote($a_id, "integer");
86 $set = $ilDB->query($q);
87 $rec = $ilDB->fetchAssoc($set);
88 $start_file = $rec["startfile"] ?? '';
89
90 // Migrated learning module
91 if (!empty($rec['rid'])) {
92 // check if the file is available in the container
93 $rid = $DIC->resourceStorage()->manageContainer()->find($rec['rid']);
94 if (!$rid) {
95 return $startfile[$a_id] = "";
96 }
97 $zip = $DIC->resourceStorage()->consume()->containerZIP($rid)->getZIP();
98 foreach ($zip->getFiles() as $file) {
99 if ($file === $start_file) {
100 return $startfile[$a_id] = $start_file;
101 }
102 }
103 return $startfile[$a_id] = "";
104 }
105
106 // Old learning module
107 $dir = realpath(__DIR__ . '/../../../../public/' . ilFileUtils::getWebspaceDir() . "/lm_data/lm_" . $a_id);
108
109 if (($start_file !== "") && (is_file($dir . "/" . $start_file))) {
110 return $startfile[$a_id] = str_replace(
111 realpath(__DIR__ . '/../../../../public/'),
112 "",
113 $dir . "/" . $start_file
114 );
115 }
116
117 if (is_file($dir . "/index.html")) {
118 return $startfile[$a_id] = str_replace(
119 realpath(__DIR__ . '/../../../../public/'),
120 "",
121 $dir . "/index.html"
122 );
123 }
124
125 if (is_file($dir . "/index.htm")) {
126 return $startfile[$a_id] = str_replace(realpath(__DIR__ . '/../../../../public/'), "", $dir . "/index.htm");
127 }
128
129 return $startfile[$a_id] = "";
130 }
static getWebspaceDir(string $mode="filesystem")
get webspace directory
$q
Definition: shib_logout.php:23

References $DIC, $ilDB, $q, $startfile, and ilFileUtils\getWebspaceDir().

Referenced by ilObjFileBasedLMListGUI\getProperties(), ilObjFileBasedLMGUI\getSettingsFormValues(), ilObjFileBasedLMGUI\getTabs(), and ilObjFileBasedLMGUI\initSettingsForm().

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

◆ _getCommands()

static ilObjFileBasedLMAccess::_getCommands ( )
static

get commands

this method returns an array of all possible commands/permission combinations

example: $commands = array ( array("permission" => "read", "cmd" => "view", "lang_var" => "show"), array("permission" => "write", "cmd" => "edit", "lang_var" => "edit"), );

Returns
array{permission?:string, cmd?:string, lang_var?:string, default?:bool}[]

Reimplemented from ilObjectAccess.

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

58 : array
59 {
60 return [
61 [
62 "permission" => "read", "cmd" => "view", "lang_var" => "show",
63 "default" => true
64 ],
65 ["permission" => "write", "cmd" => "edit", "lang_var" => "edit_content"],
66 ["permission" => "write", "cmd" => "properties", "lang_var" => "settings"]
67 ];
68 }
return true

References true.

Referenced by ilObjFileBasedLMListGUI\init().

+ Here is the caller graph for this function:

◆ _lookupDiskUsage()

static ilObjFileBasedLMAccess::_lookupDiskUsage ( int  $a_id)
static

Returns the number of bytes used on the harddisk by the learning module with the specified object id.

Definition at line 155 of file class.ilObjFileBasedLMAccess.php.

155 : int
156 {
157 $lm_data_dir = ilFileUtils::getWebspaceDir('filesystem') . "/lm_data";
158 $lm_dir = $lm_data_dir . DIRECTORY_SEPARATOR . "lm_" . $a_id;
159
160 return file_exists($lm_dir) ? ilFileUtils::dirsize($lm_dir) : 0;
161 }
static dirsize(string $directory)
get size of a directory or a file.

References ilFileUtils\dirsize(), and ilFileUtils\getWebspaceDir().

+ Here is the call graph for this function:

◆ _preloadData()

static ilObjFileBasedLMAccess::_preloadData ( array  $obj_ids,
array  $ref_ids 
)
static

Preload data.

Reimplemented from ilObjectAccess.

Definition at line 163 of file class.ilObjFileBasedLMAccess.php.

163 : void
164 {
165 global $DIC;
166
167 $ilDB = $DIC->database();
168
169 $q = "SELECT id, startfile FROM file_based_lm WHERE " .
170 $ilDB->in("id", $obj_ids, false, "integer");
171
172 $lm_set = $ilDB->query($q);
173 while ($rec = $ilDB->fetchAssoc($lm_set)) {
174 self::$startfile[$rec["id"]] = $rec["startfile"] . "";
175 }
176 }
$lm_set

References $DIC, $ilDB, $lm_set, and $q.

◆ isInfoEnabled()

static ilObjFileBasedLMAccess::isInfoEnabled ( int  $obj_id)
static

Definition at line 178 of file class.ilObjFileBasedLMAccess.php.

178 : bool
179 {
181 $obj_id,
183 true
184 );
185 }
static _lookupContainerSetting(int $a_id, string $a_keyword, ?string $a_default_value=null)

References ilContainer\_lookupContainerSetting(), and ilObjectServiceSettingsGUI\INFO_TAB_VISIBILITY.

Referenced by ilObjFileBasedLMListGUI\getInfoScreenStatus().

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

Field Documentation

◆ $access

ilAccessHandler ilObjFileBasedLMAccess::$access
protected

Definition at line 27 of file class.ilObjFileBasedLMAccess.php.

Referenced by _checkAccess().

◆ $lng

ilLanguage ilObjFileBasedLMAccess::$lng
protected

Definition at line 25 of file class.ilObjFileBasedLMAccess.php.

Referenced by _checkAccess().

◆ $rbacsystem

ilRbacSystem ilObjFileBasedLMAccess::$rbacsystem
protected

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

◆ $startfile

array ilObjFileBasedLMAccess::$startfile = []
static

Definition at line 29 of file class.ilObjFileBasedLMAccess.php.

Referenced by _determineStartUrl().

◆ $user

ilObjUser ilObjFileBasedLMAccess::$user
protected

Definition at line 24 of file class.ilObjFileBasedLMAccess.php.


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