Public Member Functions

ilObjContentObjectAccess Class Reference

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

Detailed Description

Definition at line 35 of file class.ilObjContentObjectAccess.php.


Member Function Documentation

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)

Parameters:
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)
Returns:
boolean true, if everything is ok

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

Parameters:
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:


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