Code

Fixed base generation
[gosa.git] / include / class_ldap.inc
index 2ed4ceea0fb67439592bbb13dc17437d39aae4a1..2662f02db9754f30344e24b14d9f36adc66a7f48 100644 (file)
@@ -65,9 +65,10 @@ class LDAP{
   function convert($dn)
   {
     if (SPECIALS_OVERRIDE == TRUE){
-      return (preg_replace(array("/\\\\,/", "/\\\\2C/", "/\(/", "/\)/", "/\//"),
+      $tmp= preg_replace(array("/\\\\,/", "/\\\\2C/", "/\(/", "/\)/", "/\//"),
                            array("\001CO", "\001CO", "\001OB", "\001CB", "\001SL"),
-                           $dn));
+                           $dn);
+      return (preg_replace('/,\s+/', ',', $tmp));
     } else {
       return ($dn);
     }
@@ -439,7 +440,7 @@ class LDAP{
 
   /* Copy given attributes and sub-dns with attributes to destination dn 
   */
-  function copy_FAI_resource_recursive($sourcedn,$destinationdn,$type="branch",$is_first = true,$depth=0)
+  function copy_FAI_resource_recursive($sourcedn,$destinationdn,$destinationName,$type="branch",$is_first = true,$depth=0)
   {
     error_reporting(E_ALL);
     
@@ -554,6 +555,11 @@ class LDAP{
             }
           }
 
+          /* Replace FAIdebianRelease with new release name */
+          if(in_array("FAIpackageList" , $attr['objectClass'])){
+            $attr['FAIdebianRelease'] = $destinationName; 
+          }
+
           /* Add entry */
           $this->cd($destinationdn);
           $this->cat($destinationdn);
@@ -588,7 +594,7 @@ class LDAP{
           $this->cd($basedn);
           $item = $this->fetch($this->cat($dn));
           if(!in_array("FAIbranch",$item['objectClass'])){
-            $this->copy_FAI_resource_recursive($dn,str_replace($sourcedn,$destinationdn,$dn),$type,false,$depth);
+            $this->copy_FAI_resource_recursive($dn,str_replace($sourcedn,$destinationdn,$dn),$destinationName,$type,false,$depth);
           } 
         }
       }
@@ -1054,7 +1060,7 @@ function gen_xls ($dn, $filter= "(objectClass=*)", $attributes= array('*'), $rec
 
       /* Delete existing entry */
       if($delete){
-        $this->rmdir($data['dn']);
+        $this->rmdir_recursive($data['dn']);
       }
       
       /* Create missing trees */
@@ -1068,7 +1074,7 @@ function gen_xls ($dn, $filter= "(objectClass=*)", $attributes= array('*'), $rec
         $ret = $this->modify($data);
       }
     }
-
+    show_ldap_error($this->get_error(),_("Ldap import failed"));
     return($ret);
   }