X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_ldap.inc;h=2662f02db9754f30344e24b14d9f36adc66a7f48;hb=b130a469e86d937a382fac5864219c190f2a6e36;hp=2fbf59e6d13ae06276577540a9397453c2d4e919;hpb=64666111bd2f20f4d23d3a55a0346280014990e5;p=gosa.git diff --git a/include/class_ldap.inc b/include/class_ldap.inc index 2fbf59e6d..2662f02db 100644 --- a/include/class_ldap.inc +++ b/include/class_ldap.inc @@ -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); } } } @@ -762,7 +768,7 @@ class LDAP{ } else { $adderror= $this->get_additional_error(); if ($adderror != ""){ - $error= $this->error." (".$this->get_additional_error().", ".sprintf(_("while operating on '%s' using LDAP server '%s'"), $this->base, $this->hostname).")"; + $error= $this->error." (".$this->get_additional_error().", ".sprintf(_("while operating on '%s' using LDAP server '%s'"), $this->basedn, $this->hostname).")"; } else { $error= $this->error." (".sprintf(_("while operating on LDAP server %s"), $this->hostname).")"; } @@ -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); }