Fixing redirect.

skala
Julio Montoya 12 years ago
parent 17ceef621e
commit 98cc575e34
  1. 4
      main/inc/lib/usermanager.lib.php
  2. 56
      src/ChamiloLMS/Component/Auth/LoginSuccessHandler.php
  3. 5
      src/ChamiloLMS/Controller/UserPortalController.php

@ -2622,7 +2622,7 @@ class UserManager
//Courses in which we are subscribed out of any session
$tbl_user_course_category = Database :: get_main_table(TABLE_USER_COURSE_CATEGORY);
//INNER JOIN $tbl_user_course_category user_course_category
$personal_course_list_sql = "SELECT course.code,
course_rel_user.status course_rel_status,
course_rel_user.sort sort,
@ -2630,7 +2630,7 @@ class UserManager
FROM $tbl_course_user course_rel_user
INNER JOIN $tbl_course course
ON course.id = course_rel_user.c_id
INNER JOIN $tbl_user_course_category user_course_category
LEFT JOIN $tbl_user_course_category user_course_category
ON course_rel_user.user_course_cat = user_course_category.id
$join_access_url
WHERE course_rel_user.user_id = '".$user_id."' AND

@ -40,6 +40,9 @@ class LoginSuccessHandler implements AuthenticationSuccessHandlerInterface
/* Possible values: index.php, user_portal.php, main/auth/courses.php */
$pageAfterLogin = api_get_setting('page_after_login');
$user = $token->getUser();
$userId = $user->getUserId();
if ($this->security->isGranted('ROLE_STUDENT') && !empty($pageAfterLogin)) {
$url = null;
switch($pageAfterLogin) {
@ -53,9 +56,58 @@ class LoginSuccessHandler implements AuthenticationSuccessHandlerInterface
$url = api_get_path(WEB_PUBLIC_PATH).$pageAfterLogin;
break;
}
if (!empty($url)) {
$response = new RedirectResponse($url);
}
if (api_get_setting('go_to_course_after_login') == 'true') {
// Get the courses list
$personal_course_list = \UserManager::get_personal_session_course_list($userId);
$my_session_list = array();
$count_of_courses_no_sessions = 0;
$count_of_courses_with_sessions = 0;
foreach ($personal_course_list as $course) {
if (!empty($course['id_session'])) {
$my_session_list[$course['id_session']] = true;
$count_of_courses_with_sessions++;
} else {
$count_of_courses_no_sessions++;
}
}
$count_of_sessions = count($my_session_list);
if ($count_of_sessions == 1 && $count_of_courses_no_sessions == 0) {
$key = array_keys($personal_course_list);
$course_info = $personal_course_list[$key[0]];
$id_session = isset($course_info['id_session']) ? $course_info['id_session'] : 0;
$url = api_get_path(WEB_CODE_PATH).'session/index.php?session_id='.$id_session;
/*header('location:'.$url);
exit;*/
}
//var_dump($count_of_sessions,$count_of_courses_no_sessions );exit;
//if (!isset($_SESSION['coursesAlreadyVisited']) && $count_of_sessions == 0 && $count_of_courses_no_sessions == 1) {
if ($count_of_sessions == 0 && $count_of_courses_no_sessions == 1) {
$key = array_keys($personal_course_list);
$course_info = $personal_course_list[$key[0]];
$course_directory = $course_info['course_info']['path'];
$id_session = isset($course_info['id_session']) ? $course_info['id_session'] : 0;
$url = api_get_path(WEB_COURSE_PATH).$course_directory.'/index.php?id_session='.$id_session;
/*header('location:'.$url);
exit;*/
}
}
if (!empty($url)) {
$response = new RedirectResponse($url);
}
// Redirect the user to where they were before the login process begun.

@ -33,11 +33,6 @@ class UserPortalController extends CommonController
return $app->abort(403, 'Not allowed');
}
// Check if a user is enrolled only in one course for going directly to the course after the login.
if (api_get_setting('go_to_course_after_login') == 'true') {
$this->redirectAfterLogin();
}
// Main courses and session list
$items = null;
$type = str_replace('/', '', $type);

Loading…
Cancel
Save