| By Date: | <-- --> |
| By Thread: | <-- --> |
Hi Philipp!
Dieter Maurer wrote:Chris McDonough wrote at 2006-3-13 10:21 -0500:... silly id restrictions ... Here's my current monkeypatch to Zope to unrestrict a good number of characters:
def patch_objectmanager_badid(): """ Causes Zope to be less restrictive in the set of characters it accepts as valid within object identifiers.
Added as acceptable: []*'!: (at) &#=+$ """
import re acceptable = r'[^a-zA-Z0-9-_~,.$\(\)\[\]\*\'\!\:\ (at) \&\#\=\+\$ ]' bad_id = re.compile(acceptable).search import OFS.ObjectManager OFS.ObjectManager.bad_id = bad_id
The projects that use this patch have been in use for several years; they predate Five. I of course don't mind continuing to do this, but I'd hate to have to change it temporarily (to fix this bug which actually isn't a bug for me because I don't use Five for these projects) and then change it again when we do the pluggable thing.+1
Looks as if we had very similar project requirements...
Chris's and Dieter's requirements seem to even more confirm my proposal that we should propertly factor this out to a name chooser adapter that everyone can configure for themselves. Then this discussion what ObjectManager should do or not do will become irrelevant because it won't do anything anymore :). This is actually how Zope 3 containers work. They perform no name checks *at all*. It's the application (in particular, the adding view) that does it.
Yuppie's concern are Zope versions 2.8 and 2.9.
I say that we'd just have to live with the fact that objects can shadow views there. Applications like the CMF can make sure that they don't on an application-level, as Chris suggests, preferrably through a name chooser adapter.
I try to restate the problem:
- If views are shadowed by objects this can seriously break the app.
- Good software makes sure normal users can't break the app.
Cheers,
Yuppie