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