[Zope-CMF] [dev] wrapping users - a proposal

Charlie Clark charlie.clark at clark-consulting.eu
Tue Feb 22 06:05:10 EST 2011


Am 22.02.2011, 11:46 Uhr, schrieb yuppie <y.2011 at wcm-solutions.de>:

Hi Yuppie,

thanks very much for proposing and implementing this. It should make the  
whole "Member" thing a lot easier and safer to work with.

> 1.) MemberData factory lookup
> -----------------------------
> CMF 2.2 has a new feature that allows to register customized MemberData
> factories: https://bugs.launchpad.net/zope-cmf/+bug/377208
> That feature seems to be obsolete in CMF 2.3 because the MemberAdapter
> is now responsible for creating MemberData objects and AFAICS using
> customized MemberData with an un-customized MemberAdapter doesn't make
> much sense.
> Because CMF 2.3 will anyway break customized MemberData implementations
> I propose to remove the factory lookup completely in CMF 2.3.

+1

I hope this doesn't break too much code for people.

> 2.) direct MemberData property access
> -------------------------------------
> Wrapped users are now MemberAdapter objects. So wrapped users no longer
> have attributes like 'email' or 'listed'. This is a security improvement
> because you can't bypass the API with its permission checks.
> But 'member.email' is more convenient than 'member.getProperty('email')'
> and used in many places. I fixed these in CMF itself, it I'm afraid that
> change will break a lot of third party code.
> I propose to add read-only properties that return the values in a modern
> format (datetime instead of DateTime, unicode instead of encoded  
> strings).

> Question:
> Should we support a fixed schema with the default member data properties
> or should we use a customized __getattr__ method?

If the access is always via the adapter then I would prefer a customised  
__getattr__

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226


More information about the Zope-CMF mailing list