legal.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. use \ChamiloSession as Session;
  3. // Language files that need to be included
  4. $language_file = array('create_course', 'course_info', 'admin');
  5. $cidReset = true;
  6. require_once '../inc/global.inc.php';
  7. $this_section = SECTION_COURSES;
  8. $course_code = isset($_REQUEST['course_code']) ? $_REQUEST['course_code'] : null;
  9. $session_id = isset($_REQUEST['session_id']) ? intval($_REQUEST['session_id']) : null;
  10. $user_id = api_get_user_id();
  11. if (empty($course_code)) {
  12. api_not_allowed();
  13. }
  14. $course_info = CourseManager::get_course_information($course_code);
  15. $course_legal = $course_info['legal'];
  16. // Build the form
  17. $form = new FormValidator('legal', 'GET', api_get_self().'?course_code='.$course_code.'&session_id='.$session_id);
  18. $form->addElement('header', get_lang('CourseLegalAgreement'));
  19. $form->addElement('label', null, $course_legal);
  20. $form->addElement('hidden', 'course_code', $course_code);
  21. $form->addElement('hidden', 'session_id', $session_id);
  22. $form->addElement('checkbox', 'accept_legal', null, get_lang('AcceptLegal'));
  23. $form->addElement('style_submit_button', null, get_lang('Accept'), 'class="save"');
  24. $variable = 'accept_legal_'.$user_id.'_'.$course_info['real_id'].'_'.$session_id;
  25. if ($form->validate()) {
  26. $accept_legal = $form->exportValue('accept_legal');
  27. if ($accept_legal == 1) {
  28. CourseManager::save_user_legal($user_id, $course_code, $session_id);
  29. if (api_check_user_access_to_legal($course_info['visibility'])) {
  30. Session::write($variable, true);
  31. }
  32. }
  33. }
  34. $user_pass_open_course = false;
  35. if (api_check_user_access_to_legal($course_info['visibility']) && Session::read($variable)) {
  36. $user_pass_open_course = true;
  37. }
  38. $url = api_get_course_url($course_code, $session_id);
  39. if (empty($session_id)) {
  40. if (CourseManager::is_user_subscribed_in_course($user_id, $course_code) || api_check_user_access_to_legal($course_info['visibility'])) {
  41. $user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_code);
  42. if ($user_accepted_legal || $user_pass_open_course) {
  43. //Redirect to course home
  44. header('Location: '.$url);
  45. exit;
  46. }
  47. } else {
  48. api_not_allowed();
  49. }
  50. } else {
  51. if (api_is_platform_admin()) {
  52. header('Location: '.$url);
  53. }
  54. $user_session_status = SessionManager::get_user_status_in_course_session($user_id, $course_code, $session_id);
  55. if (isset($user_session_status) || api_check_user_access_to_legal($course_info['visibility'])) {
  56. $user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_code, $session_id);
  57. if ($user_accepted_legal || $user_pass_open_course) {
  58. //Redirect to course session home
  59. header('Location: '.$url);
  60. exit;
  61. }
  62. } else {
  63. api_not_allowed();
  64. }
  65. }
  66. Display :: display_header($nameTools);
  67. $form->display();
  68. Display :: display_footer();