X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fsession.inc;h=f6ac6b26ce8bbcba0e29b98c605b6fc8f819476a;hb=f7b0f0130571e3473baead5cffe25666170fe70f;hp=ea1c12a54367e978845e0c99f4370ab7a2a571b0;hpb=9dab04be9d81766f1878d3688ee73d0bcf29f5d2;p=fa-stable.git diff --git a/includes/session.inc b/includes/session.inc index ea1c12a5..f6ac6b26 100644 --- a/includes/session.inc +++ b/includes/session.inc @@ -51,6 +51,10 @@ function login_fail() function check_page_security($page_security) { + global $SysPrefs; + + $msg = ''; + if (!$_SESSION["wa_current_user"]->check_user_access()) { // notification after upgrade from pre-2.2 version @@ -58,7 +62,11 @@ function check_page_security($page_security) _("Security settings have not been defined for your user account.") . "
" . _("Please contact your system administrator.") : _("Please remove \$security_groups and \$security_headings arrays from config.php file!"); - + } elseif (!$_SESSION['SysPrefs']->db_ok && !$_SESSION["wa_current_user"]->can_access('SA_SOFTWAREUPGRADE')) { + $msg = _('Access to application has been blocked until database upgrade is completed by system administrator.'); + } + + if ($msg){ display_error($msg); end_page(); kill_login(); @@ -75,6 +83,14 @@ function check_page_security($page_security) end_page(); exit; } + if (!$_SESSION['SysPrefs']->db_ok + && !in_array($page_security, array('SA_SOFTWAREUPGRADE', 'SA_OPEN', 'SA_BACKUP'))) + { + display_error(_('System is blocked after source upgrade until database is updated on System/Software Upgrade page')); + end_page(); + exit; + } + } /* Helper function for setting page security level depeding on @@ -147,6 +163,7 @@ include_once($path_to_root . "/includes/lang/language.php"); include_once($path_to_root . "/config_db.php"); include_once($path_to_root . "/includes/ajax.inc"); include_once($path_to_root . "/includes/ui/ui_msgs.inc"); +include_once($path_to_root . "/includes/prefs/sysprefs.inc"); /* Uncomment the setting below when using FA on shared hosting @@ -176,8 +193,9 @@ if (!isset($_SESSION['language'])) $_SESSION['language']->set_language($_SESSION['language']->code); // include $Hooks object if locale file exists -if(@include_once($path_to_root . "/lang/".$_SESSION['language']->code."/locale.inc")) +if (file_exists($path_to_root . "/lang/".$_SESSION['language']->code."/locale.inc")) { + include_once($path_to_root . "/lang/".$_SESSION['language']->code."/locale.inc"); $Hooks = new Hooks(); } @@ -186,7 +204,7 @@ include_once($path_to_root . "/config.php"); include_once($path_to_root . "/includes/main.inc"); // Ajax communication object -$Ajax =& new Ajax(); +$Ajax = new Ajax(); // js/php validation rules container $Validate = array(); @@ -195,8 +213,6 @@ $Editors = array(); // page help. Currently help for function keys. $Pagehelp = array(); -$SysPrefs = new sys_prefs(); - $Refs = new references(); // intercept all output to destroy it in case of ajax call @@ -256,6 +272,7 @@ if (strstr($_SERVER['PHP_SELF'], 'logout.php') == false){ } } +$SysPrefs = &$_SESSION['SysPrefs']; // POST vars cleanup needed for direct reuse. // We quote all values later with db_escape() before db update.