hinzufügen von Kontakten über imp icon

Thorsten Albert thorsten at soulistic-healing.de
Mit Jul 30 18:06:16 CEST 2008


Hallo,

ich habe folgendes Problem in Kolab 2.2.0, horde 3.2-Rc2, imp 4.2-rc2, 
turba 2.2-rc3:
Wenn jemand versucht den Sender oder Empfänger einer e-mail über das 
kleine Icon in imp dem Adressbuch (turba) hinzuzufügen, dann erscheint 
eine Meldung "existiert bereits" obwohl dies definitiv nicht der Fall 
ist. Es ist dabei egal welches Adressbuch der Anwender auswählt.
In den Log-Dateien für php finde ich folgende Fehlermeldungen:
....
[30-Jul-2008 07:47:21] PHP Notice:  Undefined index:  test in 
/kolab/var/kolab/www/horde/turba/lib/Driver/kolab.php on line 769
[30-Jul-2008 07:47:21] PHP Notice:  Undefined index:  field in 
/kolab/var/kolab/www/horde/turba/lib/Driver/kolab.php on line 768
.....

Der betreffende Ausschnitt der kolab.php sieht bei mir so aus:

   /**
     * Searches the Kolab message store with the given criteria and 
returns a
     * filtered list of results. If the criteria parameter is an empty
740  * array, all records will be returned.
     *
     * @param $criteria      Array containing the search criteria.
     * @param $fields        List of fields to return.
     *
     * @return               Hash containing the search results.
     */
    function _search($criteria, $fields)
    {
        $result = $this->connect();
750     if (is_a($result, 'PEAR_Error')) {
            return $result;
        }

        $entries = $this->_store->getObjects();

        // keep only entries matching criteria
        if (count($criteria)) {
            $new_entries = array();

760         foreach($entries as $entry) {
                $keep_entry = false;

                foreach ($criteria as $key => $tests) {
                    if ($key == 'AND' || $key == 'OR') {
                        $all_matched = true;

                        foreach ($tests as $test) {
768                        $field = $test['field'];
769                        $needle = $test['test'];
770                          if (empty($needle)) {
                                $keep_entry = true;
                            } elseif (stristr($entry[$field], $needle) 
!== false) {
                                $keep_entry = true;
                            } else {
                                $all_matched = false;
                            }
                        }
                    }
780                  if ($key == 'AND' && !$all_matched) {
                        $keep_entry = false;
                    }
                }

                if ($keep_entry) {
                    $new_entries[] = $entry;
                }
            }
790
            $entries = $new_entries;
        }

        return $entries;
    }

In allen anderen log-Dateien ist nichts auffälliges zu finden. Auch die 
automatische Suche im Adressbuch beim schreiben einer e-mail 
funktioniert, solange nur ein Adressbuch zur Benutzung in imp angegeben 
ist.

Das System wurde auch schon ein zweites Mal installiert mit identischen 
Ergebnissen.
In den verschiedenden Mailinglisten taucht dieses Problem nur selten auf 
und die dortigen Hinweise habe keine Veränderung erbracht.

Würde mich freuen, wenn jemand weiter weiß.