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

Re: Invalid structural object class chain



Another option, perhaps less desirable than the one suggested by
Hallvard, is to alter the 'account' object in cosine.schema from:

objectclass ( 0.9.2342.19200300.100.4.5 NAME 'account'
        SUP top STRUCTURAL
        MUST userid
        MAY ( description $ seeAlso $ localityName $
                organizationName $ organizationalUnitName $ host )
        )

to:

objectclass ( 0.9.2342.19200300.100.4.5 NAME 'account'
        SUP top AUXILIARY
        MUST userid
        MAY ( description $ seeAlso $ localityName $
                organizationName $ organizationalUnitName $ host )
        )

Cheers,

Brent


On Wed, 2003-07-09 at 10:45, Hallvard B Furuseth wrote:
> Tibbetts, Ric writes:
> > The situation, if I'm adding new users, and use the following combination:
> > 
> > {printf "objectClass: top\n"} \
> > {printf "objectClass: person\n"} \
> > {printf "objectClass: account\n"} \
> > {printf "objectClass: organizationalPerson\n"} \
> > {printf "objectClass: inetOrgPerson\n"} \
> > {printf "objectClass: posixAccount\n"} \
> > .
> > ldap_add: Object class violation (65)
> >          additional info: invalid structural object class chain 
> > (person/account)
> 
> Yes.  You have a structural object class _tree_ which ends in both
> account and in inetOrgPerson.  It may only end in one object class.
> 
> > Of course, if I move "account" around, the invalid chain changes
> > accordingly. If I remove "account", the problem goes away. But I'd
> > like to keep it in.
> 
> In that case you must add a structural object class which is a subclass
> of both inetOrgPerson and account.  E.g.
> 
> objectclass ( <oid> NAME 'personalAccount'
> 	SUP ( inetOrgPerson $ account ) STRUCTURAL )
> 
> The other alternative is to remove account after all, and instead add
> another object class which contains the attributes you want from
> account.
> 
> BTW, I don't think you need to list subclasses of classes you add.
> I believe they are added automatically.  That is, you only need
> {printf "objectClass: personalAccount\n"} \
> {printf "objectClass: posixAccount\n"} \