/**
  * 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;
 }
 /**
  * Get item properties
  *
  * @return	array		array of property arrays:
  *						"alert" (boolean) => display as an alert property (usually in red)
  *						"property" (string) => property name
  *						"value" (string) => property value
  */
 function getProperties()
 {
     global $lng, $ilias, $rbacsystem;
     $props = array();
     include_once "./Modules/ILinc/classes/class.ilObjiLincCourse.php";
     if (!ilObjiLincCourse::_isActivated($this->obj_id)) {
         $props[] = array("alert" => true, "property" => $lng->txt("status"), "value" => $lng->txt("offline"));
     }
     if (!$ilias->getSetting("ilinc_active")) {
         $props[] = array("alert" => false, "property" => $lng->txt("ilinc_remark"), "value" => $lng->txt("ilinc_server_not_active"));
     }
     // Display cost centers if active
     if ($ilias->getSetting("ilinc_akclassvalues_active") and $rbacsystem->checkAccess("write", $this->ref_id)) {
         $akclassvalues = ilObjiLincCourse::_getAKClassValues($this->obj_id);
         $value = "";
         if (!empty($akclassvalues[0])) {
             $value = $akclassvalues[0];
             $property = $lng->txt("ilinc_akclassvalue");
             if (!empty($akclassvalues[1])) {
                 $value .= " / " . $akclassvalues[1];
                 $property = $lng->txt("ilinc_akclassvalues");
             }
         } elseif (!empty($akclassvalues[1])) {
             $value = $akclassvalues[1];
             $property = $lng->txt("ilinc_akclassvalue");
         } else {
             $property = $lng->txt("ilinc_akclassvalues");
             $value = $lng->txt("ilinc_no_akclassvalues");
         }
     }
     $props[] = array("alert" => false, "property" => $property, "value" => $value);
     return $props;
 }
 /**
  * updates class room on ilinc server
  *
  * @access	public
  */
 public function updateClassroom()
 {
     $this->initSettingsForm('edit');
     if ($this->form_gui->checkInput()) {
         $this->object->setTitle($this->form_gui->getInput('title'));
         $this->object->setDescription($this->form_gui->getInput('desc'));
         $this->object->setDocentId($this->form_gui->getInput('instructoruserid'));
         $this->object->setStatus($this->form_gui->getInput('alwaysopen'));
         if (!$this->object->update()) {
             $this->ilErr->raiseError($this->object->getErrorMsg(), $this->ilErr->MESSAGE);
         }
         ilUtil::sendInfo($this->getResultMsg(), true);
         $this->ctrl->redirectByClass('ilobjilinccoursegui');
     } else {
         if ($this->ilias->getSetting('ilinc_akclassvalues_active')) {
             $icrs_obj_id = ilObject::_lookupObjectId($this->parent);
             include_once 'Modules/ILinc/classes/class.ilObjiLincCourse.php';
             $akclassvalues = ilObjiLincCourse::_getAKClassValues($icrs_obj_id);
             $_POST['akclassvalue1'] = $akclassvalues[0];
             $_POST['akclassvalue2'] = $akclassvalues[1];
         }
         $this->form_gui->setValuesByPost();
         return $this->tpl->setVariable('ADM_CONTENT', $this->form_gui->getHtml());
     }
 }