[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: still unclear on error 69



Hi,

The problem is not that you try to modify the objectClass attribute (which
is allowed!)

The problem is that you're trying to convert the object to a different sort
of object.
As organizationalPerson is defined as a (structural) subclass of person,
your're trying to "upgrade" an object to a different structural objectClass,
and that is forbidden.

The object is defined by the last "entry"  in the chain of structural
objectClasses.
You can always add any kind of auxiliary objectClass, adding inetorgperson
will work.

Greetings,

Dolf Smits
Siemens DirX directory consultant
Siemens Netherlands

-----Original Message-----
From: Jon Roberts [mailto:jon@mentata.com]
Sent: Monday, August 11, 2003 20:21
To: Tony Earnshaw; OpenLDAP-software@OpenLDAP.org
Subject: Re: still unclear on error 69


Tony Earnshaw wrote:
> Jon Roberts wrote:
>> If the server were down, the authentication failed, the user didn't 
>> have privileges to the data, etc.... there would've been a different 
>> error code telling me so. I think the 69 error is telling me something 
>> new and more specific, and I'd like to get to the bottom of it.
> 
> What it is telling you is, you have to have *all* the objectclasses 
> necessary in the hierarchy before it can add what you want. See my last 
> answer.

I read your post. Did you read mine?

I'm only using top, person, organizationalperson, and inetorgperson.
What's missing? I understood your point about conflicts in strucutural 
objectclasses, but it doesn't apply.

The 69 error occurs when I attempt a modify operation on the
objectclass attribute to go from a [top, person] entry to a [top,
person, organizationalperson] or [top, person, organizationalperson, 
inetorgperson] entry.

> Again the eternal premise: "If it works for 1,000 others, why doesn't 
it work for me?"

The only testimony I've heard for doing such an operation is from
another person who got the exact same error.

http://www.openldap.org/lists/openldap-software/200307/msg00644.html

Try it yourself. Assume and entry:

dn: cn=Mama, ou=People, o=family.org
objectclass: top
objectclass: person
cn: Mama
sn: Jones

Then try to implement the LDIF:

dn: cn=Mama, ou=People, o=family.org
changetype: modify
add: objectclass
objectclass: organizationalperson

And with ldapmodify you will get:

modifying entry "cn=Mama, ou=People, o=family.org"
ldapmodify: update failed: cn=Mama, ou=People, o=family.org
ldap_modify: Cannot modify object class (69)
         additional info: structural object class modification from 
'person' to 'organizationalperson' not allowed

Looks like Mama has to stay in the kitchen :(

I tried this on an OpenLDAP 2.1.22 server with a BDB backend I built and 
installed this morning. My question (rephrased) still stands: is there 
any way to add valid structural objectclasses to an existing entry that 
already has a strucutural objectclass through the protocol?

Jon Roberts
www.mentata.com