X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=html%2Fmain.php;h=50a3e87cf72b4cee54dd97a03541ff53e8afe51e;hb=bf781db3d9f73f8bd555ce039f659ca7ee3adf54;hp=ba5668e115d1e8400a7b9e77f07b9c5f296b3ef2;hpb=9fb66349a9eca632b26842821e8606de50b816f7;p=gosa.git diff --git a/html/main.php b/html/main.php index ba5668e11..50a3e87cf 100644 --- a/html/main.php +++ b/html/main.php @@ -29,9 +29,6 @@ require_once ("functions_FAI.inc"); /* Set header */ header("Content-type: text/html; charset=UTF-8"); -/* Find all class files and include them */ -get_dir_list("$BASE_DIR/plugins"); - /* Set the text domain as 'messages' */ $domain = 'messages'; bindtextdomain($domain, "$BASE_DIR/locale"); @@ -60,24 +57,25 @@ if ($_SERVER["REQUEST_METHOD"] == "POST"){ /* Logged in? Simple security check */ if (!isset($_SESSION['config'])){ - gosa_log ("main.php called without session - logging out"); + new log("security","login","",array(),"main.php called without session - logging out") ; header ("Location: logout.php"); exit; } -/* Reset errors */ -$_SESSION['errors'] = ""; -$_SESSION['errorsAlreadyPosted']= array(); -$_SESSION['LastError'] = ""; - /* Check for uniqe ip address */ $ui= $_SESSION["ui"]; if ($_SERVER['REMOTE_ADDR'] != $ui->ip){ - gosa_log ("main.php called with session which has a changed IP address.", 3); + new log("security","login","",array(),"main.php called with session which has a changed IP address.") ; header ("Location: logout.php"); exit; } $config= $_SESSION['config']; +$config->check_and_reload(); + +/* Enable compressed output */ +if (isset($config->data['MAIN']['COMPRESSED']) && preg_match('/^(true|on)$/i', $config->data['MAIN']['COMPRESSED'])){ + ob_start("ob_gzhandler"); +} /* Check for invalid sessions */ if(empty($_SESSION['_LAST_PAGE_REQUEST'])){ @@ -99,7 +97,7 @@ if(empty($_SESSION['_LAST_PAGE_REQUEST'])){ */ if($request_time > $max_life){ session_unset(); - gosa_log ("main.php called without session - logging out"); + new log("security","login","",array(),"main.php called without session - logging out") ; header ("Location: logout.php"); exit; } @@ -125,25 +123,20 @@ if((!isset($_SESSION['Last_init_lang']))){ $_SESSION['Last_init_lang'] = get_browser_language(); } -/* Language setup */ -if ($config->data['MAIN']['LANG'] == ""){ - - /* If last language != current force navi reload */ - if($_SESSION['Last_init_lang'] != get_browser_language()){ - $reload_navigation = true; - } - $lang= get_browser_language(); - $_SESSION['Last_init_lang'] = $lang; -} else { - $lang= $config->data['MAIN']['LANG']; +/* If last language != current force navi reload */ +$lang= get_browser_language(); +if($_SESSION['Last_init_lang'] != $lang){ + $reload_navigation = true; } +/* Language setup */ +$_SESSION['Last_init_lang'] = $lang; + /* Preset current main base */ if(!isset($_SESSION['CurrentMainBase'])){ $_SESSION['CurrentMainBase']= get_base_from_people($ui->dn); } -$lang.=".UTF-8"; putenv("LANGUAGE="); putenv("LANG=$lang"); setlocale(LC_ALL, $lang); @@ -158,8 +151,16 @@ textdomain($domain); /* Prepare plugin list */ if (!isset($_SESSION['plist'])){ - $_SESSION['plist']= new pluglist($config, $ui); + /* Initially load all classes */ + $class_list= get_declared_classes(); + foreach ($class_mapping as $class => $path){ + if (!in_array($class, $class_list)){ + require_once("$BASE_DIR/$path"); + } + } + $_SESSION['plist']= new pluglist($config, $ui); + /* Load ocMapping into userinfo */ $tmp= new acl($config, NULL, $ui->dn); $ui->ocMapping= $tmp->ocMapping; @@ -170,7 +171,7 @@ $plist= $_SESSION['plist']; /* Check for register globals */ if (isset($global_check) && $config->data['MAIN']['FORCEGLOBALS'] == 'true'){ echo _("FATAL: Register globals is on. GOsa will refuse to login unless this is fixed by an administrator."); - gosa_log ("Register globals is on. For security reasons, this should be turned off."); + new log("security","login","",array(),"Register globals is on. For security reasons, this should be turned off.") ; session_destroy (); exit (); } @@ -186,7 +187,7 @@ if (isset($_GET['plug'])){ $plugin_dir= $plist->get_path($plug); $_SESSION['plugin_dir']= $plugin_dir; if ($plugin_dir == ""){ - gosa_log ("main.php called with invalid plug parameter \"$plug\"", 3); + new log("security","gosa","",array(),"main.php called with invalid plug parameter \"$plug\"") ; header ("Location: logout.php"); exit; } @@ -349,7 +350,7 @@ if((isset($config->data['MAIN']['ACCOUNT_EXPIRATION'])) && $expired= ldap_expired_account($config, $ui->dn, $ui->username); if ($expired == 2){ - gosa_log ("password for user \"$ui->username\" is about to expire"); + new log("security","gosa","",array(),"password for user \"$ui->username\" is about to expire") ; print_red(_("Your password is about to expire, please change your password")); } } @@ -364,8 +365,14 @@ if (is_file("$plugin_dir/main.inc")){ /* Print_out last ErrorMessage repeated string. */ -print_red(NULL); +if(isset($_GET['add'])){ +msg_dialog::display("Error" ,"Kann datei nicht schreiben, bla",ERROR_DIALOG); +msg_dialog::display("Warning" ,"Kann datei nicht schreiben, bla",WARNING_DIALOG); +msg_dialog::display("Info" ,"Kann datei nicht schreiben, bla",INFO_DIALOG); +msg_dialog::display("Confirm" ,"Kann datei nicht schreiben, bla",CONFIRM_DIALOG); +} +$smarty->assign("msg_dialogs", msg_dialog::get_dialogs()); $smarty->assign("contents", $display); /* Assign erros to smarty */ @@ -373,21 +380,50 @@ if (isset($_SESSION['errors'])){ $smarty->assign("errors", $_SESSION['errors']); } if ($error_collector != ""){ - $smarty->assign("php_errors", $error_collector.""); + $smarty->assign("php_errors", preg_replace("/%BUGBODY%/",$error_collector_mailto,$error_collector).""); } else { $smarty->assign("php_errors", ""); } + +/* Set focus to the error button if we've an error message */ +$focus= ""; +if (isset($_SESSION['errors']) && $_SESSION['errors'] != ""){ + $focus= ''; +} + + $focus= ''; + + +$smarty->assign("focus", $focus); + $display= $header.$smarty->fetch(get_template_path('framework.tpl')); +/* Save dialog filters and selected base in a cookie. + So we may be able to restore the filter an base settings on reload. +*/ +if(isset($config->data['MAIN']['SAVE_FILTER']) && preg_match("/true/",$config->data['MAIN']['SAVE_FILTER'])){ + $cookie_vars = array("MultiDialogFilters","CurrentMainBase"); + foreach($cookie_vars as $var){ + if(isset($_SESSION[$var])){ + @setcookie($var,base64_encode(serialize($_SESSION[$var])),time()+ 60*60*24*30); + } + } + if(isset($_GET['plug'])){ + @setcookie("plug", $_GET['plug'],time()+ 60*60*24*30); + } +} + /* Show page... */ echo $display; /* Save plist and config */ $_SESSION['plist']= $plist; $_SESSION['config']= $config; - -/* Echo compilation time */ -//echo "

".get_MicroTimeDiff($start,microtime())."

"; +$_SESSION['errorsAlreadyPosted']= array(); // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>