Re: Change of name forms and DIT structure rules when renaming an entry
Michael Ströder <[email protected]> Thu, 21 Aug 2008 10:02:33 +0200
| Newsgroups | gmane.ietf.ldapbis |
|---|---|
| Message-ID | <[email protected]> |
Steven, I really appreciate your comment. Steven Legg wrote: >=20 > Michael Str=F6der wrote: >> when displaying an input form for renaming an entry I'd like to let=20 >> the user search for possible new superior DNs. If applicable I'd like=20 >> to construct the search filter derived from applicable DIT structure=20 >> rules. >> So the question is how to find the structural object classes which are= =20 >> allowed for superior entries. >> >> X.501 (1993) section 12.6.5 says: >> "Each object and alias entry is governed by a single DIT structure rul= e." >> >> Currently I determine the governing structure rule by looking up the=20 >> best matching name form for 1. the structural object class and 2. the=20 >> current old RDN. >=20 > In general, you also need the governingStructureRule of the current > superior entry, You mean I could derive the possible structural object class from the=20 governingStructureRule of the superior entry? Hmm, there could be more=20 possible structural object classes of superior entries. > but it is easier to just look at the governingStructureRule > of the entry to be moved. That's how I currently implemented it. > Ultimately though, the governingStructureRule > of the entry to be moved doesn't matter. ...because the RDN could also change... > > Then I can derive the possible superior structure rules >> and lookup the superior structural object classes via the accompanying= =20 >> name forms. >> >> But now I wonder what to do in case the user wants to change the RDN=20 >> together with a new superior DN in one rename operation? From my=20 >> understanding changing the RDN could lead to another governing=20 >> structure rule. Is that right? >=20 > Yes, it could. In the general case the structural object class of the > entry being renamed/moved would permit a number of candidate name > forms, each with its own set of mandatory and optional naming > attributes. For each name form, the structure rules specify the > permitted governingStructureRule values for the new superior entry of > the entry being renamed/moved. The structuralObjectClass of the > superior entries doesn't come into it directly, but can be determined > from the name form associated with the structure rule corresponding > to each of the permitted values for the governingStructureRule of the > new superior. I could sort this out since I already have working code for determining=20 the current name form of an entry and for determining the=20 governingStructureRule. Not sure how to come up with a good user=20 interface for that though. Thinking about this a little bit more I came up with another difficulty:=20 The new superior DN might reside in a part of the DIT where another=20 subschema is defined. So this is a real blocker. > If you allow the user to select the new superior first, then that will > constrain which name forms are available to rename the entry. If you al= low > the user to rename the entry first (explicitly or implicitly selecting = one > of the applicable name forms), then that will constrain which new super= ior > entries are available. Yes. But the problem is that it might be necessary for the user to=20 change both in one rename operation. From my understanding changing the=20 name form could lead to the situation where the old superior is not=20 valid anymore. This all gets very hairy. At the moment I can't imagine a user interface=20 which really helps the user to do the right thing without the user=20 knowing a lot about how DIT structure rules and name forms work. I will take a simpler approach with client-side configuration. Probably=20 I will display a pre-configured select list of named LDAP URLs for=20 searching the new superior entries. This would also work with servers=20 which don't support DIT structure rules and name forms. Ciao, Michael.