/**
  * checks wether a user may invoke a command or not
  * (this method is called by ilAccessHandler::checkAccess)
  *
  * @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 $ilUser, $lng, $rbacsystem, $ilAccess, $ilias;
     if ($a_user_id == "") {
         $a_user_id = $ilUser->getId();
     }
     switch ($a_cmd) {
         case "info":
             include_once './Modules/ILinc/classes/class.ilObjiLincCourse.php';
             if (ilObjiLincCourse::_isMember($a_user_id, $a_ref_id)) {
                 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("info_is_member"));
             } else {
                 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("info_is_not_member"));
             }
             break;
         case 'join':
             include_once './Modules/ILinc/classes/class.ilObjiLincCourse.php';
             if (ilObjiLincCourse::_isMember($a_user_id, $a_ref_id)) {
                 return false;
             }
             break;
     }
     switch ($a_permission) {
         case "visible":
             include_once './Modules/ILinc/classes/class.ilObjiLincCourse.php';
             if (!($activated = ilObjiLincCourse::_isActivated($a_obj_id))) {
                 $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
             } else {
                 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("online"));
             }
             if (!$ilias->getSetting("ilinc_active")) {
                 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("ilinc_server_not_active"));
             }
             if (!$rbacsystem->checkAccessOfUser($a_user_id, 'write', $a_ref_id) and !$activated) {
                 return false;
             }
             break;
     }
     return true;
 }
 /**
  * checks wether a user may invoke a command or not
  * (this method is called by ilAccessHandler::checkAccess)
  *
  * @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 $ilUser, $lng, $rbacsystem, $ilAccess, $ilias;
     $user_id = $ilUser->getId();
     $class_id = $a_ref_id;
     $course_ref_id = $a_obj_id;
     $class_arr = $a_user_id;
     //var_dump($a_cmd,$a_permission,$a_ref_id,$a_obj_id,$a_user_id);
     /** ATTENTION
      * ref_id contains ilinc classroom id
      * obj_id contains ILIAS ref_id of iLinc Seminar
      * user_id contains online status of classroom
      */
     switch ($a_cmd) {
     }
     switch ($a_permission) {
         case 'join':
             // Cannot join closed classrooms
             if (!$class_arr['alwaysopen']) {
                 return false;
             }
             // non members cannot join
             include_once './Modules/ILinc/classes/class.ilObjiLincCourse.php';
             if (!ilObjiLincCourse::_isMember($user_id, $a_ref_id)) {
                 return false;
             }
             break;
         case "write":
         case "delete":
             if (!$rbacsystem->checkAccessOfUser($user_id, 'write', $a_ref_id, "ilca")) {
                 return false;
             }
             break;
     }
     return true;
 }