diff --git a/lib/control.inc b/lib/control.inc
index 8c29237..e9f5104 100644
--- a/lib/control.inc
+++ b/lib/control.inc
@@ -5,17 +5,17 @@
*
* Contains the controller helper functions
*
- * Copyright (c) 1999-2002 The Owl Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
* @version $Revision$
- * @author Michael Joseph, Jam Warehouse (Pty) Ltd, South Africa
- * @package dmslib
+ * @author Michael Joseph , Jam Warehouse (Pty) Ltd, South Africa
+ * @package lib.session
*/
/**
* Redirects to the specified URL
*
- * @param $url the URL to forward to
+ * @param string the URL to forward to
*/
function redirect($url) {
// everything is relative to the root url
@@ -27,8 +27,8 @@ function redirect($url) {
* Performs a redirect through the controller.
* Takes a controller action and queryString and builds url.
*
- * @param $action the controller action
- * @param $queryString additional querystring vars
+ * @param string the controller action
+ * @param string additional querystring vars
*/
function controllerRedirect($action, $queryString) {
// generate url
@@ -42,9 +42,8 @@ function controllerRedirect($action, $queryString) {
/**
* Returns a controller url.
*
- * @param $action the controller action to generate a url for
- *
- * @return the controller url
+ * @param string the controller action to generate a url for
+ * @return string the controller url
*/
function generateControllerUrl($action) {
return "/control.php?action=$action";
@@ -53,41 +52,62 @@ function generateControllerUrl($action) {
/**
* Generates a link via the control page, with the passed action
*
- * @param $action
- * the controller action to generate a link for
- * @return the generated href
+ * @param string the controller action to generate a link for
+ * @return string the generated href
*/
function generateLink($action) {
return "";
}
/**
- * Verifies the current session
- * Automatically redirects to
- */
-function checkSession() {
+ * Checks the current session and redirects to the login page
+ * if the redirect parameter is true.
+ *
+ * @param boolean whether to automatically redirect to the login page on session verification failure
+ */
+function checkSessionAndRedirect($bRedirect) {
global $default;
$session = new Session();
$sessionStatus = $session->verify();
if ($sessionStatus != 1) {
- // verification failed, redirect to login with error message
- $default->log->debug("checkSession:: session check failed");
- $url = $default->owl_root_url . "/login.php?loginAction=loginForm";
-
- $redirect = $_SERVER[PHP_SELF];
- if ((strlen($redirect) > 1) && ($redirect != "/control.php")) {
- $default->log->debug("checkSession:: redirect url=$redirect");
- // this session verification failure represents either the first visit to
- // the site OR a session timeout etc. (in which case we still want to bounce
- // the user to the login page, and then back to whatever page they're on now)
- $url = $url . "&redirect=" . $redirect;
+ if ($bRedirect) {
+ // verification failed, redirect to login with error message
+ $default->log->debug("checkSession:: session check failed");
+ $url = $default->owl_root_url . "/login.php?loginAction=loginForm";
+
+ $redirect = $_SERVER[PHP_SELF];
+ if ((strlen($redirect) > 1) && ($redirect != "/control.php")) {
+ $default->log->debug("checkSession:: redirect url=$redirect");
+ // this session verification failure represents either the first visit to
+ // the site OR a session timeout etc. (in which case we still want to bounce
+ // the user to the login page, and then back to whatever page they're on now)
+ $url = $url . "&redirect=" . $redirect;
+ }
+ $default->log->debug("checkSession:: about to redirect to $url");
+ redirect($url);
+ } else {
+ return false;
}
- $default->log->debug("checkSession:: about to redirect to $url");
- redirect($url);
} else {
$default->log->debug("checkSession:: returning true");
return true;
+ }
+}
+
+/**
+ * Verifies the current session
+ * Automatically redirects to the login page on session verification failure
+ */
+function checkSession() {
+ if (checkSessionAndRedirect(true)) {
+ // the session is cool, now check if we access to this page
+ if ($_SESSION["pageAccess"][basename($_SERVER['SCRIPT_FILENAME'])]) {
+ return true;
+ } else {
+ return false;
+ }
}
+ // if the check session fails, we'll be redirected to the login page
}