diff --git a/main/admin/course_intro_pdf_import.php b/main/admin/course_intro_pdf_import.php index 6994756d6b..46ef0d82e6 100644 --- a/main/admin/course_intro_pdf_import.php +++ b/main/admin/course_intro_pdf_import.php @@ -41,7 +41,6 @@ if ($_POST['formSent']) { } else { $errors = import_pdfs($courses, $subDir); if (count($errors) == 0) { - // save_data($courses); error_log('Course intros imported successfully in '.__FILE__.', line '.__LINE__); } } @@ -153,7 +152,6 @@ function import_pdfs($file, $subDir = '/') { error_log($parts[0].' is not a course, apparently'); $errors[] = array('Line' => 0, 'Code' => $parts[0], 'Title' => $parts[0].' - '.get_lang('CodeDoesNotExists')); } - error_log($parts[0]); $i++; //found at least one entry that is not a dir or a . } if ($i == 0) { diff --git a/main/auth/set_temp_password.php b/main/auth/set_temp_password.php new file mode 100644 index 0000000000..f399c13d70 --- /dev/null +++ b/main/auth/set_temp_password.php @@ -0,0 +1,59 @@ +addElement('header', get_lang('CourseRequiresPassword')); +$form->addElement('hidden', 'course_id', $course_id); +$form->addElement('hidden', 'session_id', $session_id); +$form->addElement('password', 'course_password', null, get_lang('Password')); +$form->addElement('style_submit_button', null, get_lang('Accept'), 'class="save"'); + +if ($form->validate()) { + $form_values = $form->exportValues(); + if ($form_values['course_password'] === $course_info['registration_code']) { + Session::write('course_password_'.$course_info['real_id'], true); + header('Location: '.api_get_course_url($course_info['code'], $session_id)); + exit; + } else { + $tpl->assign('error_message', Display::display_error_message(get_lang('CourseRegistrationCodeIncorrect'), true, true)); + } +} + +$tpl->assign('form', $form->toHtml()); +$content = $tpl->get_template('auth/set_temp_password.tpl'); +$tpl->assign('content', $tpl->fetch($content)); +$tpl->display_one_col_template(); + diff --git a/main/inc/local.inc.php b/main/inc/local.inc.php index 172a0b8c00..326088f36d 100644 --- a/main/inc/local.inc.php +++ b/main/inc/local.inc.php @@ -1136,18 +1136,29 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) } if (!$is_platformAdmin) { - if (!$is_courseMember && isset($_course['registration_code']) && !empty($_course['registration_code'])) { - $is_courseMember = false; - $is_courseAdmin = false; - $is_courseTutor = false; - $is_courseCoach = false; - $is_sessionAdmin = false; - $is_allowed_in_course = false; + if (!$is_courseMember && + isset($_course['registration_code']) && + !empty($_course['registration_code']) && + !Session::read('course_password_'.$_course['real_id'], false) + ) { + // if we are here we try to access to a course requiring password + if ($is_allowed_in_course) { + // the course visibility allows to access the course + // with a password + $url = api_get_path(WEB_CODE_PATH).'auth/set_temp_password.php?course_id='.$_course['real_id'].'&session_id='.$session_id; + header('Location: '.$url); + exit; + } else { + $is_courseMember = false; + $is_courseAdmin = false; + $is_courseTutor = false; + $is_courseCoach = false; + $is_sessionAdmin = false; + $is_allowed_in_course = false; + } } - } - + } // check the session visibility - // check the session visibility if ($is_allowed_in_course == true) { //if I'm in a session diff --git a/main/template/default/auth/set_temp_password.tpl b/main/template/default/auth/set_temp_password.tpl new file mode 100644 index 0000000000..842b92b8ff --- /dev/null +++ b/main/template/default/auth/set_temp_password.tpl @@ -0,0 +1,4 @@ +{% if error_message %} +{{ error_message }} +{% endif %} +{{form}}