Code

Fixed parameter expansion
[gosa.git] / include / class_config.inc
index 8e9fb9fabedc754e7f4d94d632a6e890075e8e3b..848bc57a28ea351822da34d7dd17a403eacee999 100644 (file)
@@ -38,7 +38,7 @@ class config  {
 
   /* Configuration data */
   var $data= array( 'TABS' => array(), 'LOCATIONS' => array(), 'SERVERS' => array(),
-      'MAIN' => array( 'LANGUAGES' => array(), 'FAXFORMATS' => array() ),
+      'MAIN' => array(),
       'MENU' => array(), 'SERVICE' => array());
   var $basedir= "";
 
@@ -143,23 +143,6 @@ class config  {
                   }
                   break;
 
-                  /* Handle language */
-      case 'LANGUAGE':
-                  if ($this->tags[$this->level-2] == 'MAIN'){
-                    /* Add languages */
-                    $this->data['MAIN']['LANGUAGES'][$attrs['NAME']]= 
-                      $attrs['TAG'];
-                  }
-                  break;
-
-                  /* Handle faxformat */
-      case 'FAXFORMAT':        
-                  if ($this->tags[$this->level-2] == 'MAIN'){
-                    /* Add fax formats */
-                    $this->data['MAIN']['FAXFORMATS'][]= $attrs['TYPE'];
-                  }
-                  break;
-
                   /* Load main parameters */
       case 'MAIN':
                   $this->data['MAIN']= array_merge ($this->data['MAIN'], $attrs);
@@ -335,19 +318,34 @@ class config  {
     /* Fill imap servers */
     $ldap= $this->get_ldap_link();
     $ldap->cd ($this->current['BASE']);
-    $ldap->search ("(objectClass=goImapServer)");
-
-    $this->data['SERVERS']['IMAP']= array();
-    error_reporting(0);
-    while ($attrs= $ldap->fetch()){
-      $name= $attrs['goImapName'][0];
-      $this->data['SERVERS']['IMAP'][$name]= array( "connect" => $attrs['goImapConnect'][0],
-          "admin" => $attrs['goImapAdmin'][0],
-          "password" => $attrs['goImapPassword'][0],
-          "sieve_server" => $attrs['goImapSieveServer'][0],
-          "sieve_port" => $attrs['goImapSievePort'][0]);
+    if (!isset($this->current['MAILMETHOD'])){
+       $this->current['MAILMETHOD']= "";
+    }
+    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;
+           }
+           error_reporting(E_ALL);
+    } else {
+           $ldap->search ("(objectClass=goImapServer)", array('goImapName', 'goImapConnect', 'goImapAdmin', 'goImapPassword',
+                                                              'goImapSieveServer', 'goImapSievePort'));
+
+           $this->data['SERVERS']['IMAP']= array();
+           error_reporting(0);
+           while ($attrs= $ldap->fetch()){
+             $name= $attrs['goImapName'][0];
+             $this->data['SERVERS']['IMAP'][$name]= array( "connect" => $attrs['goImapConnect'][0],
+                 "admin" => $attrs['goImapAdmin'][0],
+                 "password" => $attrs['goImapPassword'][0],
+                 "sieve_server" => $attrs['goImapSieveServer'][0],
+                 "sieve_port" => $attrs['goImapSievePort'][0]);
+           }
+           error_reporting(E_ALL);
     }
-    error_reporting(E_ALL);
 
     /* Get kerberos server. FIXME: only one is supported currently */
     $ldap->cd ($this->current['BASE']);
@@ -499,9 +497,13 @@ class config  {
       $ldap->cd ($this->current['BASE']);
       $ldap->search ("(objectClass=sambaDomain)");
       while ($attrs= $ldap->fetch()){
-        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]= array(
-            "SID" => $attrs["sambaSID"][0],
-            "RIDBASE" => $attrs["sambaAlgorithmicRidBase"][0]);
+        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]= array( "SID" =>"","RIDBASE" =>"");
+        if(isset($attrs["sambaSID"][0])){
+          $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]["SID"]  = $attrs["sambaSID"][0];
+        }
+        if(isset($attrs["sambaAlgorithmicRidBase"][0])){
+          $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]["RIDBASE"] = $attrs["sambaAlgorithmicRidBase"][0];
+        }
       }
 
       /* If no samba servers are found, look for configured sid/ridbase */