Code

reverted wrong style fix
[gosa.git] / html / main.php
index bf78ea11a4ac639b312a75694e672fad8729e3ca..50a3e87cf72b4cee54dd97a03541ff53e8afe51e 100644 (file)
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-/* Basic setup, remove eventually registered sessions */
+/* Save start time */
 $start = microtime();
-$timing= array();
+
+/* Basic setup, remove eventually registered sessions */
 require_once ("../include/php_setup.inc");
 require_once ("functions.inc");
 require_once ("functions_FAI.inc");
-header("Content-type: text/html; charset=UTF-8");
 
-/* Find all class files and include them */
-get_dir_list("$BASE_DIR/plugins");
+/* Set header */
+header("Content-type: text/html; charset=UTF-8");
 
 /* Set the text domain as 'messages' */
 $domain = 'messages';
@@ -57,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'])){
@@ -96,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;
   }
@@ -122,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);
@@ -155,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;
@@ -167,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 ();
 }
@@ -183,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;
   }
@@ -339,20 +343,6 @@ if (isset ($_SESSION['post_cnt'])){
   echo "<input type=\"hidden\" name=\"session_cnt\" value=\"".$_SESSION['post_cnt']."\">\n";
 }
 
-$start = microtime();
-
-
-/* Check if the user has used the browsers back button,
-    and display a warning, because using the back button could cause strange things
-    like tagging twice, moving an object twice ... */
-if(!isset($_SESSION['back_button_test'])){
-  $_SESSION['back_button_test'] = 0;
-}
-if(isset($_POST['back_button_test']) && $_POST['back_button_test'] != $_SESSION['back_button_test']){
-    print_red(_("Please do not use the browsers 'back' or 'reload' button, use the GOsa interface to reload the user interface instead. Using the browser actions causes GOsa to perform your last request again and this could lead into some strange situations."));
-}
-
-
 /* check if we are using account expiration */
 if((isset($config->data['MAIN']['ACCOUNT_EXPIRATION'])) &&
     preg_match('/true/i', $config->data['MAIN']['ACCOUNT_EXPIRATION'])){
@@ -360,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"));
   }
 }
@@ -375,34 +365,56 @@ 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);
+}
 
-/* Second part of browser 'back button used' check */
-$_SESSION['back_button_test'] ++;
-$bb = "<input type='hidden' name='back_button_test' value='".$_SESSION['back_button_test']."'>";
-$smarty->assign("contents", $bb.$display.get_MicroTimeDiff($start,microtime()));
+$smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
+$smarty->assign("contents", $display);
 
 /* Assign erros to smarty */
 if (isset($_SESSION['errors'])){
   $smarty->assign("errors", $_SESSION['errors']);
 }
 if ($error_collector != ""){
-  $smarty->assign("php_errors", $error_collector."</div>");
+  $smarty->assign("php_errors", preg_replace("/%BUGBODY%/",$error_collector_mailto,$error_collector)."</div>");
 } 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= '<script language="JavaScript" type="text/javascript">';
+  $focus.= 'document.forms[0].error_accept.focus();';
+  $focus.= '</script>';
+}
+
+ $focus= '<script language="JavaScript" type="text/javascript">';
+  $focus.= 'next_msg_dialog();';
+  $focus.= '</script>';
+
+
+$smarty->assign("focus", $focus);
+
 $display= $header.$smarty->fetch(get_template_path('framework.tpl'));
 
-if ((isset($config->data['MAIN']['W3CTEST']) && preg_match('/true/i', $config->data['MAIN']['W3CTEST']))&&(!empty($display))&&(is_callable("tidy_parse_string"))) {
-  tidy_parse_string(utf8_decode($display));
-  $err = nl2br(htmlentities(tidy_get_error_buffer()));
-  
-  if($err){
-    echo "<table summary=\"\" width=\"100%\" style='background-color:#E0E0E0;border-bottom:1px solid black'><tr><td><img alt=\"W3C\"            align=\"middle\" src='images/warning.png'>&nbsp;<font style='font-size:14px;font-weight:bold'>"._("Generating this page caused the W3C          conformance checker to raise some errors!")."</font></td><td align=right><button onClick='toggle(\"w3cbox\")'>"._("Toggle information")."</     button></td></tr></table><div id='w3cbox' style='width:100%; position:absolute; z-index:0; visibility: hidden; background-color:white; border-  bottom:1px solid black;'>";
-    echo $err."</div>";
+/* 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);
   }
-
-  tidy_clean_repair($display);
 }
 
 /* Show page... */
@@ -411,23 +423,7 @@ echo $display;
 /* Save plist and config */
 $_SESSION['plist']= $plist;
 $_SESSION['config']= $config;
+$_SESSION['errorsAlreadyPosted']= array();
 
-/* Echo compilation time * /
-$r = split(" ",$start);
-$ms = $r[0];
-$s= $r[1];
-
-$re = split(" ",microtime());
-$mse = $re[0];
-$se= $re[1];
-
-$add = 0;
-if(($mse -$ms)<0){
-  $se --;
-  $add = 1;
-}
-echo ($se -$s).",";
-echo (int)(($add+($mse -$ms))*1000)." s";
-*/
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>