Code

Updated config source
[gosa.git] / include / class_config.inc
index d13bcf5d919b2d3e1c477dbccc692ea8736de9b5..6aa0277886795d0f9b4199f8287000500a6e4527 100644 (file)
@@ -113,8 +113,8 @@ class config  {
                     $this->currentLocation= $name;
 
                     /* Add location elements */
-                    $this->data['LOCATIONS'][$name]= $attrs;
-                  }
+                      $this->data['LOCATIONS'][$name]= $attrs;
+                    }
                   break;
 
                   /* Handle referral tags */
@@ -193,9 +193,11 @@ class config  {
 
     /* Check for connection */
     if (is_null($this->ldap) || (is_int($this->ldap) && $this->ldap == 0)){
+      $smarty= get_smarty();
       print_red (_("Can't bind to LDAP. Please contact the system administrator."));
-      echo $_SESSION['errors'];
-      exit;
+      $smarty->display (get_template_path('headers.tpl'));
+      echo '<body style="background-image:none">'.$_SESSION['errors'].'</body></html>';
+      exit();
     }
 
     if (!isset($_SESSION['size_limit'])){
@@ -364,9 +366,12 @@ class config  {
 
     /* Get asterisk servers */
     $ldap->cd ($this->current['BASE']);
-    $ldap->search ("(objectClass=goGlpiServer)");
+    $ldap->search ("(&(objectClass=goGlpiServer)(cn=*)(goGlpiAdmin=*)(goGlpiDatabase=*))",array("cn","goGlpiPassword","goGlpiAdmin","goGlpiDatabase"));
     if ($ldap->count()){
       $attrs= $ldap->fetch();
+      if(!isset($attrs['goGlpiPassword'])){
+        $attrs['goGlpiPassword'][0] ="";
+      }
       $this->data['SERVERS']['GLPI']= array( 
           'SERVER'     => $attrs['cn'][0],
           'LOGIN'      => $attrs['goGlpiAdmin'][0],
@@ -389,13 +394,15 @@ class config  {
     $ldap->search ("(&(objectClass=goShareServer)(goExportEntry=*))");
     while ($attrs= $ldap->fetch()){
       for ($i= 0; $i<$attrs["goExportEntry"]["count"]; $i++){
-        $path= preg_replace ("/\s.*$/", "", $attrs["goExportEntry"][$i]);
+        if(!preg_match('/^[^|]+\|[^|]+\|NFS\|.*$/', $attrs["goExportEntry"][$i])){
+          continue;
+        }
+        $path= preg_replace ("/^[^|]+\|[^|]+\|[^|]+\|[^|]+\|([^|]+).*$/", '\1', $attrs["goExportEntry"][$i]);
         $tmp[]= $attrs["cn"][0].":$path";
       }
     }
     $this->data['SERVERS']['NFS']= $tmp;
 
-
     /* Load Terminalservers */
     $ldap->cd ($this->current['BASE']);
     $ldap->search ("(objectClass=goTerminalServer)");
@@ -412,7 +419,7 @@ class config  {
     }
 
     /* Ldap Server */
-    $this->data['SERVERS']['LDAP']= array("default");
+    $this->data['SERVERS']['LDAP']= array();
     $ldap->cd ($this->current['BASE']);
     $ldap->search ("(objectClass=goLdapServer)");
     while ($attrs= $ldap->fetch()){