Re: [Evolution] LDAP server update with Evolution



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: toshok ximian com

Chris




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]