/** * 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()); } }