Relaxing Zope id rules for Zope 4 / Plone 5

Wichert Akkerman <[email protected]>
Newsgroups gmane.comp.web.zope.devel,gmane.comp.web.zope.plone.devel
Message-ID <[email protected]>
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.

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.