X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_ldap.inc;h=4b578a8f9f910fde6e4bc0d93a31ba7f1958e103;hb=0a68aa232f4d9317a90c34912577d2ef7b3c1440;hp=45ffae7f4a4b8e8901985ea8ebc611cc49f089f1;hpb=797ff469e7c5270d6ba5454cb4651c9b486c6a42;p=gosa.git diff --git a/gosa-core/include/class_ldap.inc b/gosa-core/include/class_ldap.inc index 45ffae7f4..4b578a8f9 100644 --- a/gosa-core/include/class_ldap.inc +++ b/gosa-core/include/class_ldap.inc @@ -418,7 +418,23 @@ class LDAP{ if ($dn == "") $dn = $this->basedn; - $r = @ldap_mod_del($this->cid, LDAP::fix($dn), $attrs); + $r = ldap_mod_del($this->cid, LDAP::fix($dn), $attrs); + $this->error = @ldap_error($this->cid); + return($r); + }else{ + $this->error = "Could not connect to LDAP server"; + return(""); + } + } + + function mod_add($attrs = "", $dn = "") + { + if($this->hascon){ + if ($this->reconnect) $this->connect(); + if ($dn == "") + $dn = $this->basedn; + + $r = @ldap_mod_add($this->cid, LDAP::fix($dn), $attrs); $this->error = @ldap_error($this->cid); return($r); }else{ @@ -550,6 +566,12 @@ class LDAP{ if ($this->reconnect) $this->connect(); $r = @ldap_modify($this->cid, LDAP::fix($this->basedn), $attrs); $this->error = @ldap_error($this->cid); + if(!$this->success() && preg_match("/^objectClass: value #([0-9]*) invalid per syntax$/", $this->get_additional_error())){ + $oc = preg_replace("/^objectClass: value #([0-9]*) invalid per syntax$/","\\1", $this->get_additional_error()); + if(isset($attrs['objectClass'][$oc])){ + $this->error.= " objectClass: ".$attrs['objectClass'][$oc].""; + } + } return($r ? $r : 0); }else{ $this->error = "Could not connect to LDAP server"; @@ -563,6 +585,12 @@ class LDAP{ if ($this->reconnect) $this->connect(); $r = @ldap_add($this->cid, LDAP::fix($this->basedn), $attrs); $this->error = @ldap_error($this->cid); + if(!$this->success() && preg_match("/^objectClass: value #([0-9]*) invalid per syntax$/", $this->get_additional_error())){ + $oc = preg_replace("/^objectClass: value #([0-9]*) invalid per syntax$/","\\1", $this->get_additional_error()); + if(isset($attrs['objectClass'][$oc])){ + $this->error.= " objectClass: ".$attrs['objectClass'][$oc].""; + } + } return($r ? $r : 0); }else{ $this->error = "Could not connect to LDAP server"; @@ -735,6 +763,7 @@ class LDAP{ } } + function get_attribute($dn, $name,$r_array=0) { $data= ""; @@ -750,12 +779,11 @@ class LDAP{ } } } - if($r_array==0) - return ($data); - else - return ($info); - - + if($r_array==0) { + return ($data); + } else { + return ($info); + } }