Code

Now that we're in the session, just enable sanity checks
[gosa.git] / gosa-core / include / class_config.inc
index 5d10616bf47d3e70e0c17fc0f87a51f06210f1ae..abebcb0ada92a95193256e0c1b185c5fc66260d1 100644 (file)
@@ -75,16 +75,14 @@ class config  {
     /* Check if class_location.inc has changed, this is the case 
         if we have installed or removed plugins. 
      */
-    if(session::is_set("class_location.inc:timestamp")){
+    if(session::global_is_set("class_location.inc:timestamp")){
       $tmp = stat("../include/class_location.inc");
-      if($tmp['mtime'] != session::get("class_location.inc:timestamp")){
-        session::un_set("plist");
+      if($tmp['mtime'] != session::global_get("class_location.inc:timestamp")){
+        session::global_un_set("plist");
       }
     }
     $tmp = stat("../include/class_location.inc");
-    session::set("class_location.inc:timestamp",$tmp['mtime']);
-
-
+    session::global_set("class_location.inc:timestamp",$tmp['mtime']);
 
     if($this->filename != "" && filemtime($this->filename) != $this->last_modified){
 
@@ -99,26 +97,26 @@ class config  {
       xml_set_object($this->parser, $this);
       xml_set_element_handler($this->parser, "tag_open", "tag_close");
       $this->parse($this->filename);
-#     if(session::is_set('plist')){
-#       session::un_set('plist');
-#     }
-#     if(session::is_set('plug')){
-#       session::un_set('plug');
-#     }
-#     if(isset($_GET['plug'])){
-#       unset($_GET['plug']);
-#     }
+      $this->set_current($this->current['NAME']);
     }
   }  
 
 
   function parse($filename)
-  { 
+  {
+
+    $this->data = array(
+        "TABS"      => array(), 
+        "LOCATIONS" => array(), 
+        "MAIN"      => array(), 
+        "MENU"      => array(), 
+        "SERVICE"   => array());
+
     $this->last_modified = filemtime($filename);
     $this->filename = $filename;
     $fh= fopen($filename, "r"); 
     $xmldata= fread($fh, 100000);
-    fclose($fh); 
+    fclose($fh);
     if(!xml_parse($this->parser, chop($xmldata))){
       $msg = sprintf(_("XML error in gosa.conf: %s at line %d"),
             xml_error_string(xml_get_error_code($this->parser)),
@@ -240,7 +238,15 @@ class config  {
   function get_credentials($creds)
   {
     if (isset($_SERVER['HTTP_GOSA_KEY'])){
-      return (cred_decrypt($creds, $_SERVER['HTTP_GOSA_KEY']));
+      if (!session::global_is_set('HTTP_GOSA_KEY_CACHE')){
+        session::global_set('HTTP_GOSA_KEY_CACHE',array());
+      }
+      $cache = session::global_get('HTTP_GOSA_KEY_CACHE');
+      if(!isset($cache[$creds])){
+        $cache[$creds] = cred_decrypt($creds, $_SERVER['HTTP_GOSA_KEY']);
+        session::global_set('HTTP_GOSA_KEY_CACHE',$cache);
+      }
+      return ($cache[$creds]);
     }
     return ($creds);
   }
@@ -268,15 +274,15 @@ class config  {
         $this->ldap->referrals= $this->current['REFERRAL'];
       }
 
-      if (!session::is_set('size_limit')){
-        session::set('size_limit',$this->current['LDAPSIZELIMIT']);
-        session::set('size_ignore',$this->current['LDAPSIZEIGNORE']);
+      if (!session::global_is_set('size_limit')){
+        session::global_set('size_limit',$this->current['LDAPSIZELIMIT']);
+        session::global_set('size_ignore',$this->current['LDAPSIZEIGNORE']);
       }
     }
 
     $obj  = new ldapMultiplexer($this->ldap);
     if ($sizelimit){
-      $obj->set_size_limit(session::get('size_limit'));
+      $obj->set_size_limit(session::global_get('size_limit'));
     } else {
       $obj->set_size_limit(0);
     }
@@ -298,7 +304,7 @@ class config  {
     }
 
     if (isset($this->current['INITIAL_BASE'])){
-      session::set('CurrentMainBase',$this->current['INITIAL_BASE']);
+      session::global_set('CurrentMainBase',$this->current['INITIAL_BASE']);
     }
   
     /* Remove possibly added ',' from end of group and people ou */
@@ -524,12 +530,12 @@ class config  {
     $ldap->search ("(objectClass=goLogDBServer)");
     if ($ldap->count()){
       $attrs= $ldap->fetch();
-      if(!isset($attrs['goLogDB'][0])){
-        $attrs['goLogDB'][0] = "gomon";
+      if(!isset($attrs['gosaLogDB'][0])){
+        $attrs['gosaLogDB'][0] = "gomon";
       }
       $this->data['SERVERS']['LOG']= array( 'SERVER' => $attrs['cn'][0],
           'LOGIN' => $attrs['goLogAdmin'][0],
-          'DB' => $attrs['goLogDB'][0],
+          'DB' => $attrs['gosaLogDB'][0],
           'PASSWORD' => $attrs['goLogPassword'][0]);
     }
 
@@ -966,11 +972,11 @@ class config  {
   {
     /* Skip check, if we've already mentioned the mismatch 
      */
-    if(session::is_set("LastChecked") && session::get("LastChecked") == $this->config_version) return;
+    if(session::global_is_set("LastChecked") && session::global_get("LastChecked") == $this->config_version) return;
   
     /* Remember last checked version 
      */
-    session::set("LastChecked",$this->config_version);
+    session::global_set("LastChecked",$this->config_version);
 
     $current = md5(file_get_contents(CONFIG_TEMPLATE_DIR."/gosa.conf"));