[turba] Re: problem with duplicate dn with LDAP backend (andreas oster)

andreas oster aoster at novanetwork.de
Mon Apr 19 04:49:54 PDT 2004


Ed Murray wrote:
> Additional notes on the turba hack.
> 
> 
> 
>>Andreas,
>>	I have been trying to set up an LDAP address book with turba for some
>>time now and this seems to be an answer to some of the problems I have
>>come up against.
>>
>>Having built a LDAP address book in Java I understand the importance of
>>having a unique DN.
>>
>>I am not a PHP programmer but I have been looking at your alterations
>>for turba. 
>>
>>There are a couple of problems which arise from the uid not being
>>defined in the sources.php map:
>>
> 
> There is one more problem that I have noticed see 3 below.
> 
> 
>>1. The one that you mentioned about the error coming up after having
>>added an entry. 
>>
>>2. With updating an entry. The setObject function is calling the makeKey
>>function which is trying to assemble a dn from the fields attributes. It
>>is unable to do this for the above reasons. To work around this I have
>>commented out the code responsible for the renaming of the dn. This
>>doesn't seem to be a major problem albeit a bit of a hack.
>>
>>
> 
> 3. When adding an addressbook entry from a email it is not passing
> seperate givenName  and sn attributes and therefore not working. Here is
> a very rough hack. That will enable it to work.
> 
> replace the last line of the following function in  turba/lib/api.php
> 
> function _turba_add($name = '', $address = '', $addressbook = '')
> 
> with the following lines
> 
> //** return $driver->addObject(array('name' => $name, 'email' ...
>     $lastname = Turba::guessLastname($name);
>     $firstname = preg_replace("|\s+$lastname|", '', $name);
>     return $driver->addObject(array('name' => $name, 'email' => 
> $address, '__owner' => Auth::getAuth(), 'firstname' => $firstname,
> 'lastname' => $lastname));
> 
> 
> 
>>btw i am using TURBA 2.0 Alpha.
>>
>>The new composite fields are a heaven sent and answer some problems but
>>I thinks there is still another issue with specifying the DN. How are
>>people currently using  composite fields in conjunction with a dn. The
>>way I see it you would have to choose either of the sn or givenNmae
>>fields which by themselves would not go anyway close to being a good
>>unique identifier. Is there currently another option?
>>
>>N.B: Can anybody tell me if it is possible for Turba 2.0 to be used in
>>conjunction with IMP and HORDE stable?
>>
>>
>>On Fri, 2004-04-16 at 16:35, andreas oster wrote:
>>
>>>Ed Murray wrote:
>>>
>>>>Hi Andreas,
>>>>	I am very interested in your code. There appears to be a line that has
>>>>been chopped off. Could you repost again please. Take note of the line
>>>>that starts with:
>>>>
>>>>$this->driver->makeKey(
>>>>
>>>>
>>>>turba/lib/Source.php
>>>>
>>>>     /**
>>>>      * Adds a new entry to the contact source.
>>>>      *
>>>>      * @param array $attributes  The attributes of the new object to
>>>>add.
>>>>      *
>>>>      * @return mixed             The new __key value on success, or a
>>>>      *                           PEAR_Error object on failure.
>>>>      */
>>>>     function addObject($attributes)
>>>>     {
>>>>         if ($this->readonly) {
>>>>             return false;
>>>>         }
>>>>
>>>>         // Always generate a new key.
>>>>         $attributes['__key'] = 
>>>>$this->driver->makeKey($this->toDriverKeys($attri
>>>>
>>>>         if (!isset($attributes['__type'])) {
>>>>             $attributes['__type'] = 'Object';
>>>>         }
>>>>
>>>
>>>Dear Ed,
>>>
>>>this is actually from the original code, I have only posted the whole
>>>function for better finding :) The only changes in Sources.php is the
>>>line
>>>       $key = $result;
>>>
> 
> 
> 
Dear Ed,

please excuse me for answering your reply this late, but I was out of
office. The problem you describe (No.3) did not occur at my site,
because I use a seperate sql user-addressbook for this purpose. I did
not want entries to be directly created in the ldap directory. Only
some users with "admin" privilege should have the right to add entries.
All other users have to contact the "admin"-users if they want contacts
to be added to the directory.

best regards

Andreas



More information about the turba mailing list