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