}
//Params
$arParams["CHAPTER_DETAIL_TEMPLATE"] = strlen($arParams["CHAPTER_DETAIL_TEMPLATE"]) > 0 ? $arParams["CHAPTER_DETAIL_TEMPLATE"] : "chapter.php?CHAPTER_ID=#CHAPTER_ID#";
$arParams["LESSON_DETAIL_TEMPLATE"] = strlen($arParams["LESSON_DETAIL_TEMPLATE"]) > 0 ? $arParams["LESSON_DETAIL_TEMPLATE"] : "lesson.php?LESSON_ID=#LESSON_ID#";
$arParams["SELF_TEST_TEMPLATE"] = strlen($arParams["SELF_TEST_TEMPLATE"]) > 0 ? $arParams["SELF_TEST_TEMPLATE"] : "self.php?LESSON_ID=#LESSON_ID#";
$arParams["TESTS_LIST_TEMPLATE"] = strlen($arParams["TESTS_LIST_TEMPLATE"]) > 0 ? $arParams["TESTS_LIST_TEMPLATE"] : "course/test_list.php?COURSE_ID=#COURSE_ID#";
$arParams["TEST_DETAIL_TEMPLATE"] = strlen($arParams["TEST_DETAIL_TEMPLATE"]) > 0 ? $arParams["TEST_DETAIL_TEMPLATE"] : "course/test.php?COURSE_ID=#COURSE_ID#&TEST_ID=#TEST_ID#";
$arParams["COURSE_DETAIL_TEMPLATE"] = strlen($arParams["COURSE_DETAIL_TEMPLATE"]) > 0 ? $arParams["COURSE_DETAIL_TEMPLATE"] : "course/index.php?COURSE_ID=#COURSE_ID#";
//Check permissions
$arParams["CHECK_PERMISSIONS"] = isset($arParams["CHECK_PERMISSIONS"]) && $arParams["CHECK_PERMISSIONS"] == "N" ? "N" : "Y";
$arParams["COURSE_ID"] = isset($arParams["COURSE_ID"]) && intval($arParams["COURSE_ID"]) > 0 ? intval($arParams["COURSE_ID"]) : intval($_REQUEST["COURSE_ID"]);
if ($arParams['CHECK_PERMISSIONS'] !== 'N') {
    $linkedLessonId = CCourse::CourseGetLinkedLesson($arParams["COURSE_ID"]);
    try {
        $arPermissionsParams = array('lesson_id' => $linkedLessonId);
        $isAccessible = CLearnAccessMacroses::CanUserViewLessonContent($arPermissionsParams);
    } catch (Exception $e) {
        $isAccessible = false;
        // access denied
    }
    if (!$isAccessible) {
        ShowError(GetMessage('LEARNING_COURSE_DENIED'));
        return;
        exit;
    }
}
$rsCourse = CCourse::GetList(array(), array("ID" => $arParams["COURSE_ID"], "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "SITE_ID" => LANG, "CHECK_PERMISSIONS" => 'N'));
if (!($arCourse = $rsCourse->GetNext())) {
    ShowError(GetMessage("LEARNING_COURSE_DENIED"));
    return;
}
Beispiel #2
0
         }
     }
 }
 $linkedLessonId = false;
 if ($arParams["COURSE_ID"] > 0) {
     $linkedLessonId = CCourse::CourseGetLinkedLesson($arParams["COURSE_ID"]);
 }
 if ($arParams["CHECK_PERMISSIONS"] !== 'N') {
     $isAccessible = false;
     try {
         if ($lessonID > 0) {
             $arPermissionsParams = array('COURSE_ID' => $arParams['COURSE_ID'], 'LESSON_ID' => $lessonID);
             $isAccessible = CLearnAccessMacroses::CanUserViewLessonAsPublic($arPermissionsParams, $allowAccessViaLearningGroups = false);
         } elseif ($linkedLessonId !== false) {
             $arPermissionsParams = array('lesson_id' => $linkedLessonId);
             $isAccessible = CLearnAccessMacroses::CanUserViewLessonContent($arPermissionsParams, $allowAccessViaLearningGroups = false);
         }
     } catch (Exception $e) {
         $isAccessible = false;
         // access denied
     }
     $arResult['LEARNING_GROUP_ACTIVE_FROM'] = false;
     $arResult['LEARNING_GROUP_ACTIVE_TO'] = false;
     $arResult['LEARNING_GROUP_CHAPTERS_ACTIVE_FROM'] = false;
     if (!$isAccessible) {
         if ($linkedLessonId !== false) {
             $arGroupsPeriods = CLearnAccessMacroses::getActiveLearningGroupsPeriod($linkedLessonId, $USER->getId());
             if ($arGroupsPeriods['IS_EXISTS']) {
                 $isAccessible = true;
                 CLearnParsePermissionsFromFilter::registerAvailableCourse($linkedLessonId);
                 $arResult['LEARNING_GROUP_ACTIVE_FROM'] = $arGroupsPeriods['ACTIVE_FROM'];
Beispiel #3
0
$arParams["CHECK_PERMISSIONS"] = isset($arParams["CHECK_PERMISSIONS"]) && $arParams["CHECK_PERMISSIONS"] == "N" ? "N" : "Y";
$arParams["COURSE_ID"] = isset($arParams["COURSE_ID"]) && intval($arParams["COURSE_ID"]) > 0 ? intval($arParams["COURSE_ID"]) : intval($_REQUEST["COURSE_ID"]);
// was: if($this->StartResultCache(false, $USER->GetGroups()))
if ($this->StartResultCache(false, CLearnAccess::GetAccessSymbolsHashForSiteUser())) {
    //Module
    if (!CModule::IncludeModule("learning")) {
        $this->AbortResultCache();
        ShowError(GetMessage("LEARNING_MODULE_NOT_FOUND"));
        return;
    }
    if ($arParams['CHECK_PERMISSIONS'] !== 'N') {
        $isAccessible = false;
        $linkedLessonId = CCourse::CourseGetLinkedLesson($arParams["COURSE_ID"]);
        if ($linkedLessonId !== false) {
            try {
                $isAccessible = CLearnAccessMacroses::CanUserViewLessonContent(array('lesson_id' => $linkedLessonId));
            } catch (Exception $e) {
                $isAccessible = false;
                // access denied
            }
        }
        if (!$isAccessible) {
            ShowError(GetMessage('LEARNING_COURSE_DENIED'));
            return;
            exit;
        }
    }
    //Course
    $rsCourse = CCourse::GetList(array(), array("ID" => $arParams["COURSE_ID"], "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "SITE_ID" => LANG, "CHECK_PERMISSIONS" => 'N'));
    if (!($arCourse = $rsCourse->GetNext())) {
        $this->AbortResultCache();