Code

Fixed stats handling
[gosa.git] / gosa-core / html / logout.php
index 3dc371e2e147e8f82c1ed2a97b73cddf46fd0679..c9ed421b62a3ddbd79671fa568f2e819ba8e6367 100644 (file)
@@ -29,13 +29,13 @@ header("Content-type: text/html; charset=UTF-8");
   if the old session is still available */
 @session::start();
 session::set('errorsAlreadyPosted',array());
-if(session::is_set('ui')){
+if(session::global_is_set('ui')){
   
   /* Get config & ui informations */
-  $ui= session::get("ui");
+  $ui= session::global_get("ui");
   
   /* config used for del_user_locks & some lines below to detect the language */  
-  $config= session::get("config");
+  $config= session::global_get("config");
 
   /* Remove all locks of this user */
   del_user_locks($ui->dn);
@@ -45,13 +45,16 @@ if(session::is_set('ui')){
 }
 
 /* Language setup */
-if ((!isset($config))||(empty($config->data['MAIN']['LANG']))){
+if ((!isset($config)) || $config->get_cfg_value("core","language") == ""){
   $lang= get_browser_language();
 } else {
-  $lang= $config->data['MAIN']['LANG'];
+  $lang= $config->get_cfg_value("core","language");
 }
 
-$lang.=".UTF-8";
+// Try to keep track of logouts, this will fail if our session has already expired. 
+// Nothing will be logged if config isn't present anymore.
+stats::log('global', 'global', array(),  $action = 'logout', $amount = 1, 0);
+
 putenv("LANGUAGE=");
 putenv("LANG=$lang");
 setlocale(LC_ALL, $lang);
@@ -65,21 +68,28 @@ textdomain($domain);
 
 /* Create smarty & Set template compile directory */
 $smarty= new smarty();
-if (isset ($config->data['MAIN']['COMPILE'])){
-  $smarty->compile_dir= $config->data['MAIN']['COMPILE'];
+if (isset($config)){
+       $smarty->compile_dir= $config->get_cfg_value("core","templateCompileDirectory");
 } else {
-  $smarty->compile_dir= '/var/spool/gosa/';
+       $smarty->compile_dir= '/var/spool/gosa/';
 }
 
+if(!is_writeable($smarty->compile_dir)){
+
+    header('location: index.php');
+    exit();
+}
+
+$smarty->assign ("title","GOsa");
     
 /* If GET request is posted, the logout was forced by pressing the link */
-if (isset($_GET['request'])){
+if (isset($_POST['forcedlogout']) || isset($_GET['forcedlogout'])){
   
   /* destroy old session */
   session::destroy ();
   
   /* If we're not using htaccess authentication, just redirect... */
-  if (isset($config->data['MAIN']['HTACCESS_AUTH']) && preg_match('/^(true|yes)$/i', $config->data['MAIN']['HTACCESS_AUTH'])){
+  if (isset($config) && $config->get_cfg_value("core","htaccessAuthentication") == "true"){
 
     /* Else notice that the user has to close the browser... */
     $smarty->display (get_template_path('headers.tpl'));
@@ -92,6 +102,7 @@ if (isset($_GET['request'])){
 
 }else{  // The logout wasn't forced, so the session is invalid 
   
+
   $smarty->display (get_template_path('headers.tpl'));
   $smarty->display (get_template_path('logout.tpl'));
   exit;