On Wed, 2003-01-08 at 14:33, Joaquim Fellmann wrote:
> On Tue, 2003-01-07 at 23:01, Chris Toshok wrote:
>
> >
> > Hm, were you trying to replace the existing objectClasses with person?
> > There shouldn't be a conflict between person and account that I can see.
>
> Yes but not intentionaly.
> I finally resolved the problem but can't understand why evolution is
> unable to get the thing to work.
>
> Here are the objectClasses needed for LDAP entries corresponding to user
> account (to log in):
>
> top
> account
> posixAccount
> shadowAccount
>
> Here's what evolution need to store 'mail' attribute:
>
> top
> person
> organizationalPerson
> inetOrgPerson
> attribute sn is needed for the person objectClass
>
>
> I resolved the problem by modifying manualy an entry with the following
> ldif:
>
> dn: uid=test,ou=People,dc=test,dc=com
> objectClass: top
> objectClass: account
> objectClass: shadowAccount
> objectClass: posixAccount
> objectClass: person
> objectClass: organizationalPerson
> objectClass: inetOrgPerson
> sn: Test
>
> Why Evolution couldn't add the missing objectClass and attribute is
> beyond me.
It does add the missing objectClasses (that's the reason the 'sn'
attribute is required), but it won't add an sn attribute if there's not
one in the contact editor, it only stores what it can from the input you
give.
> Actually I may have an idea:
>
> objectClass is a mutlivalued attribute.
> If you want to update it you have to recall all objectclasses that were
> already present in LDAP entries. If you do not, it's assuming you wan't
> to replace the objectclass attribute. In our case replacing atrribute
> objectClass (defined to account, posixAccount and shadowAccount) with
> the person stuff is not possible because of attributes that need the one
> you're overwriting (uid, uidNumber,...). I'm affraid evolution is not
> including objectClasses of the already existing entries when it tries to
> update an entry. I may be wrong. Just an idea.
Hm, there's actually code in the backend to do exactly this (keep
existing objectclasses while inserting evolution's...)
I added the following entry to my ldap server to test things out:
# accounttest, xtoph, org
dn: uid=accounttest,dc=xtoph,dc=org
uid: accounttest
objectClass: top
objectClass: account
objectClass: posixAccount
cn: Account
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/toshok
I bring that up in the contact editor and add an email address. When I
click "Save and Close" I get the same error dialog, and wombat spits
out:
ldap_modify_s: Object class violation
additional info: object class 'person' requires attribute 'sn'
But if I put the cursor into the Full Name field and change its value to
"Account Test" everything works fine. You can also set the surname
explicitly by clicking "Full Name..."
After completing the edit, the entry is:
# accounttest, xtoph, org
dn: uid=accounttest,dc=xtoph,dc=org
uid: accounttest
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: evolutionPerson
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/toshok
cn: Account Test
sn: Test
fileAs: Test, Account
mail: [EMAIL PROTECTED]
Chris
_______________________________________________
evolution maillist - [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/evolution