diff --git a/html/logout.php b/html/logout.php
index a5c8fd200cd9e5c5c93b295f39085067a93d35d0..6fb8bcc611d60db744d9c00a3e2dd4c458471912 100644 (file)
--- a/html/logout.php
+++ b/html/logout.php
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:
?>
+</html>