Commit 73a11d7db22f71da5f33297451da5144c6a5abbf
1 parent
c1900489
KTS-1112
"after auto log-out, re-login as different user gives old url" Fixed. Added a check to redirect to the dashboard if a different user logs back in after a logout or a timeout. Committed By: Jonathan Byrne Reviewed By: Jalaloedien Abrahams git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7666 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
21 additions
and
3 deletions
login.php
| ... | ... | @@ -95,14 +95,24 @@ class LoginPageDispatcher extends KTDispatcher { |
| 95 | 95 | #var_dump($oUser); |
| 96 | 96 | #var_dump(PEAR::raiseError()); |
| 97 | 97 | } |
| 98 | + $iOldUserID = checkLastSessionUserID(); | |
| 99 | + | |
| 100 | + //if the current person logging in isn't the same person who logged out or timed out | |
| 101 | + //then set the redirect to the dashboard and not the last page that was viewed. | |
| 102 | + if ($oUser->getId() != $iOldUserID['user_id']) | |
| 103 | + { | |
| 104 | + $_REQUEST['redirect'] = generateControllerLink('dashboard'); | |
| 105 | + | |
| 106 | + } | |
| 107 | + | |
| 98 | 108 | $session = new Session(); |
| 99 | 109 | $sessionID = $session->create($oUser); |
| 100 | 110 | if (PEAR::isError($sessionID)) { |
| 101 | 111 | return $sessionID; |
| 102 | 112 | } |
| 103 | - | |
| 104 | - $redirect = KTUtil::arrayGet($_REQUEST, 'redirect'); | |
| 105 | - | |
| 113 | + | |
| 114 | + $redirect = KTUtil::arrayGet($_REQUEST, 'redirect'); | |
| 115 | + | |
| 106 | 116 | // DEPRECATED initialise page-level authorisation array |
| 107 | 117 | $_SESSION["pageAccess"] = NULL; |
| 108 | 118 | |
| ... | ... | @@ -322,6 +332,14 @@ class LoginPageDispatcher extends KTDispatcher { |
| 322 | 332 | } |
| 323 | 333 | } |
| 324 | 334 | |
| 335 | +//FIXME Direct Database Access | |
| 336 | +//checkLastSessionUserID finds the last user to logout or timeout | |
| 337 | +function checkLastSessionUserID() | |
| 338 | +{ | |
| 339 | + $sQuery = 'SELECT user_id FROM user_history ORDER BY id DESC LIMIT 1'; | |
| 340 | + $res = DBUtil::getOneResult($sQuery); | |
| 341 | + return $res; | |
| 342 | +} | |
| 325 | 343 | |
| 326 | 344 | $dispatcher =& new LoginPageDispatcher(); |
| 327 | 345 | $dispatcher->dispatch(); | ... | ... |