/** * * * @param * @return */ function checkAccessMobUsage($usage, $oid) { /** * @var $ilObjDataCache ilObjectDataCache */ global $ilObjDataCache; switch ($usage['type']) { case 'lm:pg': if ($oid > 0) { if ($this->checkAccessLM($oid, 'lm', $usage['id'])) { return true; } } break; case 'news': // media objects in news (media casts) include_once "./Modules/MediaCast/classes/class.ilObjMediaCastAccess.php"; include_once "./Services/News/classes/class.ilNewsItem.php"; if ($this->checkAccessObject($oid, 'mcst')) { return true; } elseif (ilObjMediaCastAccess::_lookupPublicFiles($oid) && ilNewsItem::_lookupVisibility($usage["id"]) == NEWS_PUBLIC) { return true; } break; case 'dcl:html': include_once "./Modules/DataCollection/classes/class.ilObjDataCollectionAccess.php"; include_once "./Services/Object/classes/class.ilObject2.php"; $ref_ids = ilObject2::_getAllReferences($oid); foreach ($ref_ids as $ref_id) { if (ilObjDataCollectionAccess::_checkAccess("view", "read", $ref_id, $oid)) { return true; } } break; case 'frm~:html': // $oid = userid foreach ($this->check_users as $user_id) { if ($ilObjDataCache->lookupType($oid) == 'usr' && $oid == $user_id) { return true; } } break; case 'qpl:pg': case 'qpl:html': // test questions if ($this->checkAccessTestQuestion($oid, $usage['id'])) { return true; } break; case 'gdf:pg': // special check for glossary terms if ($this->checkAccessGlossaryTerm($oid, $usage['id'])) { return true; } break; case 'sahs:pg': // check for scorm pages if ($this->checkAccessObject($oid, 'sahs')) { return true; } break; case 'prtf:pg': // special check for portfolio pages if ($this->checkAccessPortfolioPage($oid, $usage['id'])) { return true; } break; case 'blp:pg': // special check for blog pages if ($this->checkAccessBlogPage($oid, $usage['id'])) { return true; } break; default: // standard object check if ($this->checkAccessObject($oid)) { return true; } break; } return false; }
/** * * * @param * @return */ function checkAccessMobUsage($usage, $oid) { /** * @var $ilObjDataCache ilObjectDataCache */ global $ilObjDataCache; switch ($usage['type']) { case 'lm:pg': if ($this->checkAccessObject($oid, 'lm')) { return true; } /* as $usage['id'] (== page) is not processed anymore, we can use standard if ($oid > 0) { if ($this->checkAccessLM($oid, 'lm', $usage['id'])) { return true; } } */ break; case 'news': // media objects in news (media casts) include_once "./Modules/MediaCast/classes/class.ilObjMediaCastAccess.php"; include_once "./Services/News/classes/class.ilNewsItem.php"; if ($this->checkAccessObject($oid, 'mcst')) { return true; } elseif (ilObjMediaCastAccess::_lookupPublicFiles($oid) && ilNewsItem::_lookupVisibility($usage["id"]) == NEWS_PUBLIC) { return true; } break; /* see default case 'dcl:html': include_once("./Modules/DataCollection/classes/class.ilObjDataCollectionAccess.php"); include_once("./Services/Object/classes/class.ilObject2.php"); $ref_ids = ilObject2::_getAllReferences($oid); foreach($ref_ids as $ref_id) if(ilObjDataCollectionAccess::_checkAccess("view", "read", $ref_id, $oid)) return true; break; */ /* see default case 'dcl:html': include_once("./Modules/DataCollection/classes/class.ilObjDataCollectionAccess.php"); include_once("./Services/Object/classes/class.ilObject2.php"); $ref_ids = ilObject2::_getAllReferences($oid); foreach($ref_ids as $ref_id) if(ilObjDataCollectionAccess::_checkAccess("view", "read", $ref_id, $oid)) return true; break; */ case 'frm~:html': case 'exca~:html': // $oid = userid foreach ($this->check_users as $user_id) { if ($ilObjDataCache->lookupType($oid) == 'usr' && $oid == $user_id) { return true; } } break; case 'qpl:pg': case 'qpl:html': // test questions if ($this->checkAccessTestQuestion($oid, $usage['id'])) { return true; } break; case 'gdf:pg': // special check for glossary terms if ($this->checkAccessGlossaryTerm($oid, $usage['id'])) { return true; } break; case 'sahs:pg': // check for scorm pages if ($this->checkAccessObject($oid, 'sahs')) { return true; } break; case 'prtf:pg': // special check for portfolio pages if ($this->checkAccessPortfolioPage($oid, $usage['id'])) { return true; } break; case 'blp:pg': // special check for blog pages if ($this->checkAccessBlogPage($oid, $usage['id'])) { return true; } break; case 'lobj:pg': // special check for learning objective pages if ($this->checkAccessLearningObjectivePage($oid, $usage['id'])) { return true; } break; case 'impr:pg': include_once 'Services/Imprint/classes/class.ilImprint.php'; return ilImprint::isActive() || $this->checkAccessObject(SYSTEM_FOLDER_ID, 'adm'); case 'cstr:pg': default: // standard object check if ($this->checkAccessObject($oid)) { return true; } break; } return false; }