, Jam Warehouse (Pty) Ltd, South Africa
* @package presentation
*/
// -------------------------------
// page start
// -------------------------------
global $default;
if ($loginAction == "loginForm") {
// TODO: build login form using PatternMainPage
print "
";
} elseif ($loginAction == "login") {
// set default url for login failure
$url = $url . "login.php?loginAction=loginForm";
// if requirements are met and we have a username and password to authenticate
if( isset($fUserName) && isset($fPassword) ) {
// verifies the login and password of the user
$dbAuth = new $default->authentication_class;
$userDetails = $dbAuth->login($fUserName, $fPassword);
switch ($userDetails["status"]) {
// bad credentials
case 0:
$url = $url . "&errorMessage=$lang_loginfail";
break;
// successfully authenticated
case 1:
// start the session
$session = new Session();
$sessionID = $session->create($userDetails["userID"]);
// initialise page-level authorisation array
$_SESSION["pageAccess"] = NULL;
// check for a location to forward to
if (isset($redirect) && strlen(trim($redirect))>0) {
// need to strip owl_root_url off $redirect
if (strlen($default->owl_root_url) > 0) {
$tmp = urldecode($redirect);
$default->log->debug("login.php: substr($tmp, strpos($tmp, $default->owl_root_url), strlen($tmp))");
$redirect = substr($tmp, strpos($tmp, $default->owl_root_url), strlen($tmp));
$default->log->debug("login.php: redirect=$redirect");
}
// remove any params from redirect before looking up from sitemap
if (strstr($redirect, "?")) {
$queryString = substr($redirect, strpos($redirect, "?")+1, strlen($redirect));
$redirect = substr($redirect, 0, strpos($redirect, "?"));
$default->log->debug("login.php redirect=$redirect; querystring=$queryString");
}
$url = generateControllerUrl($default->siteMap->getActionFromPage($redirect));
// else redirect to the dashboard
} else {
$url = generateControllerUrl("dashboard");
}
break;
// login disabled
case 2:
$url = $url . "&errorMessage=$lang_logindisabled";
break;
// too many sessions
case 3 :
$url = $url . "&errorMessage=$lang_toomanysessions";
break;
default :
$url = $url . "&errorMessage=$lang_err_general";
}
} else {
// didn't receive any login parameters, so redirect login form
// TODO: set "no login parameters received error message?
// internal error message- should never happen
}
if (strlen($queryString) > 0) {
$url .= "&$queryString";
}
$default->log->debug("login.php: about to redirect to $url");
redirect($url);
}
?>