Fix the generation of IDs if on of the ID attributes has more than one value.
authorGunnar Wrobel <p@rdus.de>
Fri, 10 Apr 2009 11:00:38 +0000 (13:00 +0200)
committerGunnar Wrobel <p@rdus.de>
Fri, 10 Apr 2009 11:00:38 +0000 (13:00 +0200)
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Groupofnames.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Inetorgperson.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/User.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Person.php

index f8d0751..abd7dce 100644 (file)
@@ -81,7 +81,11 @@ class Horde_Kolab_Server_Object_Groupofnames extends Horde_Kolab_Server_Object
      */
     public function generateId($info)
     {
-        return trim(self::ATTRIBUTE_CN . '=' . $info[self::ATTRIBUTE_CN], " \t\n\r\0\x0B,");
+        $id = $info[self::ATTRIBUTE_CN];
+        if (is_array($id)) {
+            $id = $id[0];
+        }
+        return trim(self::ATTRIBUTE_CN . '=' . $id, " \t\n\r\0\x0B,");
     }
 
     /**
index 384a870..ef2e6eb 100644 (file)
@@ -159,7 +159,11 @@ class Horde_Kolab_Server_Object_Inetorgperson extends Horde_Kolab_Server_Object_
         $fieldarray = array();
         foreach ($id_mapfields as $mapfield) {
             if (isset($info[$mapfield])) {
-                $fieldarray[] = $this->server->structure->quoteForUid($info[$mapfield]);
+                $id = $info[$mapfield];
+                if (is_array($id)) {
+                    $id = $id[0];
+                }
+                $fieldarray[] = $this->server->structure->quoteForUid($id);
             } else {
                 $fieldarray[] = '';
             }
index 710c3e6..ae816d6 100644 (file)
@@ -251,7 +251,11 @@ class Horde_Kolab_Server_Object_Kolab_User extends Horde_Kolab_Server_Object_Kol
         $fieldarray = array();
         foreach ($id_mapfields as $mapfield) {
             if (isset($info[$mapfield])) {
-                $fieldarray[] = $this->server->structure->quoteForUid($info[$mapfield]);
+                $id = $info[$mapfield];
+                if (is_array($id)) {
+                    $id = $id[0];
+                }
+                $fieldarray[] = $this->server->structure->quoteForUid($id);
             } else {
                 $fieldarray[] = '';
             }
index e36c571..a029ab8 100644 (file)
@@ -193,9 +193,14 @@ class Horde_Kolab_Server_Object_Person extends Horde_Kolab_Server_Object
     public function generateId($info)
     {
         if (!empty($info[self::ATTRIBUTE_CN])) {
-            return self::ATTRIBUTE_CN . '=' . $this->server->structure->quoteForUid($info[self::ATTRIBUTE_CN]);
+            $id = $info[self::ATTRIBUTE_CN];
+        } else {
+            $id = $info[self::ATTRIBUTE_SN];
         }
-        return self::ATTRIBUTE_CN . '=' . $this->server->structure->quoteForUid($info[self::ATTRIBUTE_SN]);
+        if (is_array($id)) {
+            $id = $id[0];
+        }
+        return self::ATTRIBUTE_CN . '=' . $this->server->structure->quoteForUid($id);
     }
 
     /**