[Zope-dev] Relaxing Zope id rules for Zope 4 / Plone 5

Wichert Akkerman wichert at wiggy.net
Wed Feb 20 08:57:52 UTC 2013


Currently Zope has two rules for object ids: 1) they must be str instances, and 2) they must only consist of alphanumerics and a few extra characters. I have been playing around recently with trying to relax those rules to allow more flexible object ids, specifically allowing UTF-8 object ids. That seems to be entirely doable, and I made a simple package which monkey-patches Zope to do this: https://github.com/wichert/experimental.utf8id . Since all current browsers will interpret URLs as UTF-8 strings this will create beautiful URLs and gets us out of the ASCII-jail. Based on the result so far I want to suggest that we officially allow more flexible object ids for Zope 4.

Dieter Mauer tried something similar five (!!) years ago: https://github.com/zopefoundation/Zope/commit/40f1a4af3605204de7d803afe11f6cbbc97e0ccd . His approach differs a bit from mine: I added checks to make sure ids are valid UTF-8 and still disallow some characters, while he allows everything except a slash (/). That has the advantage of easily supporting things like binary user ids (for example GUIDs from Active Directory users).

I want to propose that we do the following:

Allow arbitrary str object ids in Zope 4 based on Dieter's work.
Configure standard name choosers, normalizers, etc. used to generate ids for content to create UTF-8 object ids.

Wichert.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.zope.org/pipermail/zope-dev/attachments/20130220/9b1c554e/attachment.html>


More information about the Zope-Dev mailing list