Code

Updated class ldap
[gosa.git] / gosa-core / include / class_ldap.inc
index 17acd751de48a23cee5c39ccfc25359b2f49db2b..af263e184ce2e20d7da94a5c1b93db695829b8bd 100644 (file)
@@ -210,7 +210,7 @@ class LDAP{
     } else {
       $basedn = LDAP::convert($basedn);
     }
-    return(ereg_replace("[^,]*[,]*[ ]*(.*)", "\\1", $basedn));
+    return(preg_replace("/[^,]*[,]*[ ]*(.*)/", "$1", $basedn));
   }
 
   
@@ -662,7 +662,8 @@ class LDAP{
 
       } else {
         $type= preg_replace('/^([^=]+)=.*$/', '\\1', $cdn);
-        $param= preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn);
+        $param= LDAP::fix(preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn));
+        $param=preg_replace(array('/\\\\,/','/\\\\"/'),array(',','"'),$param);
 
         $na= array();
 
@@ -1012,7 +1013,7 @@ class LDAP{
         /* Append lines ... */
         if(!empty($tmp2)) {
           /* check if we need base64_decode for this line */
-          if(ereg("::",$tmp2))
+          if(strstr($tmp2, "::") !== false)
           {
             $encoded = explode("::",$entry);
             $attr  = trim($encoded[0]);
@@ -1294,7 +1295,11 @@ class LDAP{
                     break;
 
           case ')': if ($name != ""){
-                      $objectclasses[$ocname][$name]= $this->value2container($value);
+                      $v = $this->value2container($value);
+                      if(in_array($name, array('MUST', 'MAY')) && !is_array($v)){
+                        $v = array($v);
+                      }
+                      $objectclasses[$ocname][$name]= $v;
                     }
                     $name= "";
                     $value= "";
@@ -1309,7 +1314,11 @@ class LDAP{
           case 'MUST':
           case 'MAY':
                     if ($name != ""){
-                      $objectclasses[$ocname][$name]= $this->value2container($value);
+                      $v = $this->value2container($value);
+                      if(in_array($name, array('MUST', 'MAY')) && !is_array($v)){
+                        $v = array($v);
+                      }
+                      $objectclasses[$ocname][$name]= $v;
                     }
                     $name= $chunk;
                     $value= "";