Here's an idea that's in line with my mini-lightning talk in which I encouraged
the use of functions when appropriate.
If you have a function that should always be importable/usable by any user, but
that should hand out proxied objects, you can use
zope.security.proxy.ProxyFactory as a function decorator. This will Just Work
without further configuration.
This is much lighter-weight than adding it to a proxied utility or a model
object. If you have some code that you don't feel ought to muddy up the model
with Yet Another Method that maybe serves a single client call, and that fits
the description I gave above, give it a try!
It's also somewhat lighter-weight than proxying an entire module, which
zope.security also supports but we don't use.
For instance:
@ProxyFactory
def get_some_people(...):
return IStore(Person).find(Person, conditions...)
Now the result set will be proxied, so the Person objects will be proxied, and
their attributes, and so on.
Virally yrs,
Gary
_______________________________________________
Mailing list: https://launchpad.net/~launchpad-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-dev
More help : https://help.launchpad.net/ListHelp