X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=html%2Flogout.php;h=6fb8bcc611d60db744d9c00a3e2dd4c458471912;hb=6996c216fce211a109023a96d4d900cfa751e5b9;hp=a5c8fd200cd9e5c5c93b295f39085067a93d35d0;hpb=e299f0ca47a924516f2afbe4e922f2418b75315c;p=gosa.git diff --git a/html/logout.php b/html/logout.php index a5c8fd200..6fb8bcc61 100644 --- a/html/logout.php +++ b/html/logout.php @@ -18,28 +18,73 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - /* Basic setup, remove eventually registered sessions */ require_once ("../include/php_setup.inc"); require_once ("functions.inc"); -session_start (); +header("Content-type: text/html; charset=UTF-8"); +get_dir_list("$BASE_DIR/plugins"); -/* Do logout-logging and destroy session */ -if (!isset($_SESSION["ui"])){ - header ("Location: index.php"); - exit; +/* try to start session, so we can remove userlocks, + if the old session is still available */ +@session_start(); +if(isset($_SESSION['ui'])){ + + /* Get config & ui informations */ + $ui= $_SESSION["ui"]; + + /* config used for del_user_locks & some lines below to detect the language */ + $config= $_SESSION["config"]; + + /* Remove all locks of this user */ + del_user_locks($ui->dn); + + /* Write something to log */ + gosa_log ("User \"".$ui->username."\" logged out"); } -$ui= $_SESSION["ui"]; -$config= $_SESSION["config"]; -gosa_log ("User \"".$ui->username."\" logged out"); -/* Remove all locks of this user */ -del_user_locks($ui->dn); +/* If GET request is posted, the logout was forced by pressing the link */ +if (isset($_GET['request'])){ + + /* destroy old session */ + @session_unset (); + @session_destroy (); + + /* Go back to the base via header */ + header ("Location: index.php"); + exit(); -@session_destroy (); +}else{ // The logout wasn't forced, so the session is invalid + + /* Language setup */ + if ((!isset($config))||(empty($config->data['MAIN']['LANG']))){ + $lang= get_browser_language(); + } else { + $lang= $config->data['MAIN']['LANG']; + } -/* Go back to the base via header */ -header ("Location: index.php"); + $lang.=".UTF-8"; + putenv("LANGUAGE="); + putenv("LANG=$lang"); + setlocale(LC_ALL, $lang); + $GLOBALS['t_language']= $lang; + $GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/'; + /* Set the text domain as 'messages' */ + $domain = 'messages'; + bindtextdomain($domain, "$BASE_DIR/locale"); + textdomain($domain); + + /* Create smarty & Set template compile directory */ + $smarty= new smarty(); + if (isset ($config->data['MAIN']['COMPILE'])){ + $smarty->compile_dir= $config->data['MAIN']['COMPILE']; + } else { + $smarty->compile_dir= '/var/spool/gosa/'; + } + $smarty->display (get_template_path('headers.tpl')); + $smarty->display (get_template_path('logout.tpl')); + exit; +} // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?> +