Code

Only find adequat values
[gosa.git] / gosa-core / include / class_ldap.inc
index 1c8b758f287860581b6285bbf18ba288b20f3b0d..45ffae7f4a4b8e8901985ea8ebc611cc49f089f1 100644 (file)
@@ -120,7 +120,8 @@ class LDAP{
      requests. I.e. member=....                                               */
   static function prepare4filter($dn)
   {
-    return normalizeLdap(str_replace('\\\\', '\\\\\\', LDAP::fix($dn)));
+    $fixed= normalizeLdap(str_replace('\\\\', '\\\\\\', LDAP::fix($dn)));
+    return str_replace('\\,', '\\\\,', $fixed);
   }
 
 
@@ -618,7 +619,7 @@ class LDAP{
 
       } else {
         $type= preg_replace('/^([^=]+)=.*$/', '\\1', $cdn);
-        $param= preg_replace('/^[^=]+=([^,]+),.*$/', '\\1', $cdn);
+        $param= preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn);
 
         $na= array();
 
@@ -702,6 +703,9 @@ class LDAP{
         $this->add($na);
     
         if (!$this->success()){
+
+          print_a(array($cdn,$na));
+
           msg_dialog::display(_("LDAP error"), msgPool::ldaperror($this->get_error(), $cdn, LDAP_ADD, get_class()));
           return FALSE;
         }
@@ -1197,7 +1201,7 @@ class LDAP{
 
   }
   
-  function get_objectclasses()
+  function get_objectclasses( $force_reload = FALSE)
   {
     $objectclasses = array();
     global $config;
@@ -1210,8 +1214,8 @@ class LDAP{
     }
 
     /* Return the cached results. */
-    if(class_available('session') && session::is_set("LDAP_CACHE::get_objectclasses")){
-      $objectclasses = session::get("LDAP_CACHE::get_objectclasses");
+    if(class_available('session') && session::global_is_set("LDAP_CACHE::get_objectclasses") && !$force_reload){
+      $objectclasses = session::global_get("LDAP_CACHE::get_objectclasses");
       return($objectclasses);
     }
        
@@ -1274,7 +1278,7 @@ class LDAP{
 
          }
     if(class_available("session")){
-      session::set("LDAP_CACHE::get_objectclasses",$objectclasses);
+      session::global_set("LDAP_CACHE::get_objectclasses",$objectclasses);
     }
 
          return $objectclasses;
@@ -1305,8 +1309,8 @@ class LDAP{
 
   function log($string)
   {
-    if (session::is_set('config')){
-      $cfg = session::get('config');
+    if (session::global_is_set('config')){
+      $cfg = session::global_get('config');
       if (isset($cfg->current['LDAPSTATS']) && preg_match('/true/i', $cfg->current['LDAPSTATS'])){
         syslog (LOG_INFO, $string);
       }