33 $this->
user = $DIC->user();
34 $this->
lng = $DIC->language();
35 $this->rbacsystem = $DIC->rbac()->system();
36 $this->
access = $DIC->access();
41 public function _checkAccess(
string $cmd,
string $permission,
int $ref_id,
int $obj_id, ?
int $user_id = null): bool
88 $ilDB = $DIC->database();
91 if ($a_user_id == 0) {
95 if (isset(self::$lo_access[$a_ref_id])) {
96 $acc_rec[
"obj_id"] = self::$lo_access[$a_ref_id];
98 $q =
"SELECT * FROM lo_access WHERE " .
99 "usr_id = " .
$ilDB->quote($a_user_id,
"integer") .
" AND " .
100 "lm_id = " .
$ilDB->quote($a_ref_id,
"integer");
102 $acc_set =
$ilDB->query($q);
103 $acc_rec =
$ilDB->fetchAssoc($acc_set);
106 if (($acc_rec[
"obj_id"] ?? 0) > 0) {
108 $mtree =
new ilTree($lm_id);
109 $mtree->setTableNames(
'lm_tree',
'lm_data');
110 $mtree->setTreeTablePK(
"lm_id");
111 if ($mtree->isInTree($acc_rec[
"obj_id"])) {
112 return $acc_rec[
"obj_id"];
123 $ilAccess = $DIC->access();
125 $t_arr = explode(
"_", $target);
127 if (($t_arr[0] !=
"lm" && $t_arr[0] !=
"st" 128 && $t_arr[0] !=
"pg")
129 || ((
int) $t_arr[1]) <= 0) {
133 if ($t_arr[0] ==
"lm") {
134 if ($ilAccess->checkAccess(
"read",
"", $t_arr[1]) ||
135 $ilAccess->checkAccess(
"visible",
"", $t_arr[1])) {
139 if (($t_arr[2] ?? 0) > 0) {
140 $ref_ids = array($t_arr[2]);
147 foreach ($ref_ids as
$ref_id) {
149 if ($ilAccess->checkAccess(
"read",
"", $ref_id)) {
157 public static function _preloadData(array $obj_ids, array $ref_ids): void
161 $reading_time_manager = new \ILIAS\LearningModule\ReadingTime\ReadingTimeManager();
162 $reading_time_manager->loadData($obj_ids);
164 $ilDB = $DIC->database();
167 $q =
"SELECT obj_id, lm_id FROM lo_access WHERE " .
168 "usr_id = " .
$ilDB->quote(
$ilUser->getId(),
"integer") .
" AND " .
169 $ilDB->in(
"lm_id", $ref_ids,
false,
"integer");
170 $set =
$ilDB->query($q);
171 foreach ($ref_ids as $r) {
172 self::$lo_access[$r] = 0;
174 while ($rec =
$ilDB->fetchAssoc($set)) {
175 self::$lo_access[$rec[
"lm_id"]] = $rec[
"obj_id"];
addInfoItem(string $a_type, string $a_text, string $a_data="")
add an info item to current info object
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...
_checkAccess(string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id=null)
static _getAllReferences(int $id)
get all reference ids for object ID
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
static _lookupObjId(int $ref_id)
static lookupOfflineStatus(int $obj_id)
Lookup offline status using objectDataCache.
static isInfoEnabled(int $obj_id)
static _getLastAccessedPage(int $a_ref_id, int $a_user_id=0)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupContObjID(int $a_id)
get learning module id for lm object
const INFO_TAB_VISIBILITY
static _preloadData(array $obj_ids, array $ref_ids)
static _checkGoto(string $target)