On Tue, 2002-12-17 at 19:57, gilbert fang wrote:
> 1) If our ldap server   has some different attribute name for one
> attribute, for example  "familyphone" which has the same meaning with
> homephone. 
> How can I make evolution  know this attribute and show it in ldap
> addressbook?
> Do we have to hack the source code?

yes.

i've been trying to find time to add in a more extensible scheme for a
while now (since before 1.2), but never have enough time.

> 2)If  we want to extent evolution ldap mapping to multiple mapping, 
> that is  one evo cards attribute <--> two or more attributes of one
> ldap entry.
> I think at least we have to consider two issues. 
> 2.1)To  make two or more ldap entry attributes  mapping to one card
> attribute.  It seems not difficult. 

well, that's problematic.  I'll use your example (this isn't the best
example because you can't have an empty cn attribute, but still).  You
have cn=gilbert and commonname=gilbert, and you want both to map to Full
Name.  having to choose between two ldap attributes for 1 field implies
an importance weighting, so you decide "cn will be used first, and if
it's empty we use commonname."  If you bring up the contact editor
you'll see "gilbert" in the Full Name field... say you wanted to delete
that, so you backspace over gilbert and commit the changed card back to
the ldap server (if the string is empty evolution attempts to delete the
property iirc).  You would expect (since you just deleted the Full
Name), that the Full Name field would be empty, but it's not.  It now
contains gilbert again, even though you just deleted it.

> 2.2)To   construct  the search filter considering conjunct two or more
> attributes name for one card attribute. eg.  cn=gilert and
> commonname=gilbert for card's name. 
> It seems not easy,  and may bring some performance issues. 

yup.  we already have this issue when doing a file_as search, since for
ldap servers that don't support it we try to use sn.  There are numerous
bugs filed because of the way the query for this needs to be generated. 
It ends up being:

(|(fileAs=%s*)(&(!(fileAs=*))(sn=%s*)))

Of course, that's not a simple conjunction, but given that some ldap
servers already choke on the queries we generate, I don't think making
them larger would be a good thing.

> Is there any plan for this functions? Could we join and help ?

I'm not sure I ever want to support multiple ldap attributes mapping to
the same e-card field (because of the bizarre user experience listed
above)..  But allowing the user to choose which ecard fields map to
which ldap attributes, which objectclasses to use, etc..  is still
something I plan to do.  But no, there's no set plan for implementing
them.  There's some UI work that Anna did back for 1.2 in
ldap-config.glade, but absolutely no code has been written.

> 3) By the way, does evolution will support ldap v3? if so, could you
> tell me what is the plan?

Err, what is evolution doing that's not ldapv3?

Chris

_______________________________________________
evolution-hackers maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/evolution-hackers

Reply via email to