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

Reply via email to