Code

Updated mail server detection in class_config.
[gosa.git] / gosa-core / include / class_config.inc
index 64039fd3a115e36bd2544cbe461fc360d35180a7..80d51ebc717c2f8496b6008c9b698f72772fd7d8 100644 (file)
@@ -70,6 +70,22 @@ class config  {
   
   function check_and_reload()
   {
+    global $ui;
+
+    /* 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")){
+      $tmp = stat("../include/class_location.inc");
+      if($tmp['mtime'] != session::get("class_location.inc:timestamp")){
+        session::un_set("plist");
+      }
+    }
+    $tmp = stat("../include/class_location.inc");
+    session::set("class_location.inc:timestamp",$tmp['mtime']);
+
+
+
     if($this->filename != "" && filemtime($this->filename) != $this->last_modified){
 
       $this->config_found= FALSE;
@@ -366,12 +382,18 @@ class config  {
     if ($this->current['MAILMETHOD'] == ""){
       $ldap->search ("(objectClass=goMailServer)", array('cn'));
       $this->data['SERVERS']['IMAP']= array();
-      error_reporting(0);
       while ($attrs= $ldap->fetch()){
         $name= $attrs['cn'][0];
-        $this->data['SERVERS']['IMAP'][$name]= $name;
+        $this->data['SERVERS']['IMAP'][$name]= 
+          array( 
+              "server_dn"   => $attrs['dn'],
+              "connect"     => "",
+              "admin"       => "",
+              "password"    => "",
+              "sieve_server"=> "",
+              "sieve_option"=> "",
+              "sieve_port"  => "");
       }
-      error_reporting(E_ALL);
     } else {
       $ldap->search ("(&(objectClass=goImapServer)(goImapSieveServer=*))", 
                     array('goImapName', 'goImapConnect', 'goImapAdmin', 'goImapPassword',
@@ -761,7 +783,7 @@ class config  {
       }
 
       /* Fix name, if it contains a replace tag */
-      $name= @LDAP::fix($name);
+      $name= preg_replace('/\\\\,/', ',', @LDAP::fix($name));
 
       /* Check if current name is too long, then cut it */
       if(mb_strlen($name, 'UTF-8')> $max_size){
@@ -793,7 +815,7 @@ class config  {
    */
   function getShareList($listboxEntry = false)
   {
-    $tmp = get_sub_list("(&(objectClass=goShareServer)(goExportEntry=*))","server",get_ou("serverou"),
+    $tmp = get_sub_list("(&(objectClass=goShareServer)(goExportEntry=*))","server/goShareServer",get_ou("serverou"),
         $this->current['BASE'],array("goExportEntry","cn"), GL_NONE);
     $return =array();
     foreach($tmp as $entry){
@@ -834,7 +856,7 @@ class config  {
 
     foreach($res as $entry){
         
-        $acl = $ui->get_permissions($entry['dn'],"server/goShareServer","");
+        $acl = $ui->get_permissions($entry['dn'],"server","");
         if(isset($entry['goExportEntry']['count'])){
           unset($entry['goExportEntry']['count']);
         }