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

Ed Murray mail at avenuedesign.net
Fri Apr 16 19:04:26 PDT 2004

	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:

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.

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;
> best regards
> Andreas

More information about the turba mailing list