Inheritance diagram for ilObjContentObjectAccess:
Collaboration diagram for ilObjContentObjectAccess:Public Member Functions | |
| _checkAccess ($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id="") | |
| checks wether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess) | |
| _lookupOnline ($a_id) | |
| check wether learning module is online | |
| _getLastAccessedPage ($a_ref_id, $a_user_id="") | |
| get last accessed page | |
Definition at line 35 of file class.ilObjContentObjectAccess.php.
| ilObjContentObjectAccess::_checkAccess | ( | $ | a_cmd, | |
| $ | a_permission, | |||
| $ | a_ref_id, | |||
| $ | a_obj_id, | |||
| $ | a_user_id = "" | |||
| ) |
checks wether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess)
| string | $a_cmd command (not permission!) | |
| string | $a_permission permission | |
| int | $a_ref_id reference id | |
| int | $a_obj_id object id | |
| int | $a_user_id user id (if not provided, current user is taken) |
Reimplemented from ilObjectAccess.
Definition at line 49 of file class.ilObjContentObjectAccess.php.
References $ilAccess, $ilUser, $lng, $rbacsystem, _getLastAccessedPage(), and _lookupOnline().
{
global $ilUser, $lng, $rbacsystem, $ilAccess;
if ($a_user_id == "")
{
$a_user_id = $ilUser->getId();
}
switch ($a_cmd)
{
case "view":
if(!ilObjContentObjectAccess::_lookupOnline($a_obj_id)
&& !$rbacsystem->checkAccessOfUser($a_user_id,'write',$a_ref_id))
{
$ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
return false;
}
break;
case "continue":
// no continue command for anonymous user
if ($ilUser->getId() == ANONYMOUS_USER_ID)
{
$ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("lm_no_continue_for_anonym"));
return false;
}
if(!ilObjContentObjectAccess::_lookupOnline($a_obj_id)
&& !$rbacsystem->checkAccessOfUser($a_user_id,'write',$a_ref_id))
{
$ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
return false;
}
if (ilObjContentObjectAccess::_getLastAccessedPage($a_ref_id,$a_user_id) <= 0)
{
$ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("not_accessed_yet"));
return false;
}
break;
case "info":
if(!ilObjContentObjectAccess::_lookupOnline($a_obj_id))
{
$ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
}
else
{
$ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("online"));
}
break;
}
switch ($a_permission)
{
case "visible":
if (!ilObjContentObjectAccess::_lookupOnline($a_obj_id) &&
(!$rbacsystem->checkAccessOfUser($a_user_id,'write', $a_ref_id)))
{
$ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
return false;
}
break;
}
return true;
}
Here is the call graph for this function:| ilObjContentObjectAccess::_getLastAccessedPage | ( | $ | a_ref_id, | |
| $ | a_user_id = "" | |||
| ) |
get last accessed page
| int | $a_obj_id content object id | |
| int | $a_user_id user object id |
Definition at line 146 of file class.ilObjContentObjectAccess.php.
References $ilUser, $lm_id, $q, and ilObject::_lookupObjId().
Referenced by _checkAccess(), ilObjLearningModuleListGUI::initItem(), and ilObjDlBookListGUI::initItem().
{
global $ilDB, $ilUser;
if ($a_user_id == "")
{
$a_user_id = $ilUser->getId();
}
$q = "SELECT * FROM lo_access WHERE ".
"usr_id = ".$ilDB->quote($a_user_id)." AND ".
"lm_id = ".$ilDB->quote($a_ref_id);
$lm_id = ilObject::_lookupObjId($a_ref_id);
$acc_set = $ilDB->query($q);
if ($acc_rec = $acc_set->fetchRow(DB_FETCHMODE_ASSOC))
{
$mtree = new ilTree($lm_id);
$mtree->setTableNames('lm_tree','lm_data');
$mtree->setTreeTablePK("lm_id");
if ($mtree->isInTree($acc_rec["obj_id"]))
{
return $acc_rec["obj_id"];
}
}
return 0;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjContentObjectAccess::_lookupOnline | ( | $ | a_id | ) |
check wether learning module is online
Definition at line 129 of file class.ilObjContentObjectAccess.php.
References $q, and ilUtil::yn2tf().
Referenced by _checkAccess(), ilObjLearningModuleListGUI::getProperties(), and ilObjDlBookListGUI::getProperties().
{
global $ilDB;
$q = "SELECT * FROM content_object WHERE id = '".$a_id."'";
$lm_set = $ilDB->query($q);
$lm_rec = $lm_set->fetchRow(DB_FETCHMODE_ASSOC);
return ilUtil::yn2tf($lm_rec["online"]);
}
Here is the call graph for this function:
Here is the caller graph for this function:
1.7.1