X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=initialize.php;h=261ec7479dfd06d42689edbaae2a4bd9b0da33c0;hb=54c7f39c93815e99c45f3f974a4ec14673fee1b2;hp=ce6acdfc47ab10f37a23d8ad3b1ec16999be1753;hpb=098a79f0819ebb89b7d48df4a6b154af4560f68e;p=timetracker.git diff --git a/initialize.php b/initialize.php index ce6acdfc..261ec747 100644 --- a/initialize.php +++ b/initialize.php @@ -67,14 +67,13 @@ check_extension('mbstring'); // If auth params are not defined (in config.php) - initialize with an empty array. if (!isset($GLOBALS['AUTH_MODULE_PARAMS']) || !is_array($GLOBALS['AUTH_MODULE_PARAMS'])) $GLOBALS['AUTH_MODULE_PARAMS'] = array(); - + // Smarty initialization. import('smarty.Smarty'); $smarty = new Smarty; $smarty->use_sub_dirs = false; $smarty->template_dir = TEMPLATE_DIR; $smarty->compile_dir = TEMPLATE_DIR.'_c'; -$GLOBALS['SMARTY'] = &$smarty; // Note: these 3 settings below used to be in .htaccess file. Moved them here to eliminate "error 500" problems // with some shared hostings that do not have AllowOverride Options or AllowOverride All in their apache configurations. @@ -84,6 +83,12 @@ session_cache_expire(1); $phpsessid_ttl = defined('PHPSESSID_TTL') ? PHPSESSID_TTL : 60*60*24; // Set lifetime for garbage collection. ini_set('session.gc_maxlifetime', $phpsessid_ttl); +// Set PHP session path, if defined to avoid garbage collection interference from other scripts. +if (defined('PHP_SESSION_PATH')) { + ini_set('session.save_path', PHP_SESSION_PATH); + ini_set('session.gc_probability', 1); +} + // Set session cookie lifetime. session_set_cookie_params($phpsessid_ttl); if (isset($_COOKIE['tt_PHPSESSID'])) { @@ -93,7 +98,7 @@ if (isset($_COOKIE['tt_PHPSESSID'])) { } // Start or resume PHP session. -session_name('tt_PHPSESSID'); // "tt_" prefix is to avoid sharing session with other PHP apps that do not name session. +session_name('tt_PHPSESSID'); // "tt_" prefix is to avoid sharing session with other PHP apps that do not name session. @session_start(); // Authorization. @@ -120,6 +125,12 @@ define('TYPE_ALL', 0); // Time record can be specified with either duration or s define('TYPE_START_FINISH', 1); // Time record has start and finish times. define('TYPE_DURATION', 2); // Time record has only duration, no start and finish times. +// TODO: redesign of user rights and roles is currently ongoing. +// As we run our of bits for sure at some point, rights should be strings instead, +// for example: "data_entry". +// Also, we need rights editor page and team-customized roles. +// Move this stuff from here to ttUser class. +// // User access rights - bits that collectively define an access mask to the system (a role). // We'll have some bits here (1,2, etc...) reserved for future use. define('right_data_entry', 4); // Right to enter work hours and expenses. @@ -152,15 +163,15 @@ import('html.HttpRequest'); $request = new ttHttpRequest(); import('form.ActionErrors'); -$errors = new ActionErrors(); -$messages = new ActionErrors(); +$err = new ActionErrors(); // Error messages for user. +$msg = new ActionErrors(); // Notification messages (not errrors) for user. // Create an instance of ttUser class. This gets us most of user details. import('ttUser'); $user = new ttUser(null, $auth->getUserId()); if ($user->custom_logo) { - $smarty->assign('custom_logo', 'images/'.$user->team_id.'.png'); - $smarty->assign('mobile_custom_logo', '../images/'.$user->team_id.'.png'); + $smarty->assign('custom_logo', 'images/'.$user->group_id.'.png'); + $smarty->assign('mobile_custom_logo', '../images/'.$user->group_id.'.png'); } $smarty->assign('user', $user); @@ -173,11 +184,11 @@ $lang = $user->lang; if (!$lang) { if (defined('LANG_DEFAULT')) $lang = LANG_DEFAULT; - + // If we still do not have the language get it from the browser. if (!$lang) { $lang = $i18n->getBrowserLanguage(); - + // Finally - English is the default. if (!$lang) { $lang = 'en'; @@ -187,17 +198,14 @@ if (!$lang) { // Load i18n file. $i18n->load($lang); -$GLOBALS['I18N'] = &$i18n; - -$GLOBALS['USER'] = &$user; // Assign things for smarty to use in template files. $smarty->assign('i18n', $i18n->keys); -$smarty->assign('errors', $errors); -$smarty->assign('messages', $messages); +$smarty->assign('err', $err); +$smarty->assign('msg', $msg); + +// TODO: move this code out of here to the files that use it. -// TODO: move this code out of here to the files that use it. - // We use js/strftime.js to print dates in JavaScript (in DateField controls). // One of our date formats (%d.%m.%Y %a) prints a localized short weekday name (%a). // The init_js_date_locale function iniitializes Date.ext.locales array in js/strftime.js for our language @@ -248,4 +256,3 @@ function init_js_date_locale() };"; $smarty->assign('js_date_locale', $js); } -?> \ No newline at end of file