Fixed page_after_login by role - refs #5266

skala
Yannick Warnier 13 years ago
parent 78bc751fe7
commit b54576879c
  1. 37
      main/inc/lib/redirect.class.php
  2. 2
      main/inc/local.inc.php

@ -37,7 +37,7 @@ class Redirect
* Redirect to the session "request uri" if it exists.
* @param bool Whether the user ha just logged in (in this case, use page_after_login rules)
*/
static function session_request_uri($logging_in = false)
static function session_request_uri($logging_in = false, $user_id = null)
{
// if (api_is_anonymous())
// {
@ -57,9 +57,42 @@ class Redirect
if (!empty($url)) {
self::navigate($url);
} elseif ($logging_in) {
if (isset($user_id)) {
// Make sure we use the appropriate role redirection in case one has been defined
global $_configuration;
$user_status = api_get_user_status($user_id);
switch ($user_status) {
case COURSEMANAGER:
$redir = api_get_setting('teacher_page_after_login');
if (!empty($redir)) {
self::navigate(api_get_path(WEB_PATH).$redir);
}
break;
case STUDENT:
$redir = api_get_setting('student_page_after_login');
if (!empty($redir)) {
self::navigate(api_get_path(WEB_PATH).$redir);
}
break;
case DRH:
$redir = api_get_setting('drh_page_after_login');
if (!empty($redir)) {
self::navigate(api_get_path(WEB_PATH).$redir);
}
break;
case SESSIONADMIN:
$redir = api_get_setting('sessionadmin_page_after_login');
if (!empty($redir)) {
self::navigate(api_get_path(WEB_PATH).$redir);
}
break;
default:
break;
}
}
$pal = api_get_setting('page_after_login');
if (!empty($pal)) {
self::navigate(api_get_path(WEB_PATH).api_get_setting('page_after_login'));
self::navigate(api_get_path(WEB_PATH).$pal);
}
}
}

@ -1104,5 +1104,5 @@ if (isset($_cid)) {
Database::query($sql);
}
Redirect::session_request_uri($logging_in);
Redirect::session_request_uri($logging_in, $user_id);

Loading…
Cancel
Save