/**
  * Checks wether 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.
  *
  * @param	string		$a_cmd			command (not permission!)
  * @param	string		$a_permission	permission
  * @param	int			$a_ref_id		reference id
  * @param	int			$a_obj_id		object id
  * @param	int			$a_user_id		user id (if not provided, current user is taken)
  *
  * @return	boolean		true, if everything is ok
  */
 function _checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id = "")
 {
     global $ilAccess;
     switch ($a_permission) {
         case 'visible':
         case 'read':
             include_once './Modules/CourseReference/classes/class.ilObjCourseReference.php';
             $target_ref_id = ilObjCourseReference::_lookupTargetRefId($a_obj_id);
             if (!$ilAccess->checkAccessOfUser($a_user_id, $a_permission, $a_cmd, $target_ref_id)) {
                 return false;
             }
             break;
     }
     return true;
 }