diff --git a/application/helpers/fhcauth_helper.php b/application/helpers/fhcauth_helper.php index 3d6ae438b..5fa081712 100644 --- a/application/helpers/fhcauth_helper.php +++ b/application/helpers/fhcauth_helper.php @@ -65,16 +65,30 @@ function getAuthUID() // If uid hasn't never been set and is present in CI session if ($uid === false && isset($ci->session->uid)) + { $uid = $ci->session->uid; + } else { // Try to check if uid is stored elsewhere if (isset($_SERVER['PHP_AUTH_USER'])) + { $uid = $_SERVER['PHP_AUTH_USER']; + } else if (isset($_SESSION['uid'])) + { $uid = $_SESSION['uid']; + } + // Workaround for a strange behavior + // Sometimes $_SERVER['PHP_AUTH_USER'] is not set here, but is set when + // used by authentication object + else + { + $auth = new authentication(); + $uid = $auth->getUser(); + } } - + // If uid is set and uid in CI session is not set if ($uid !== false && !isset($ci->session->uid)) {