On Monday 26 July 2010 11:55:00 Jonathan Lange wrote:
> On Mon, Jul 26, 2010 at 11:46 AM, Julian Edwards
> <[email protected]> wrote:
> ...
> 
> > I've seen a proliferation recently of people writing code like:
> > 
> > class FlangeGrobbler:
> >    @classmethod
> >    def new(cls, ...)
> > 
> > which completely bypasses the security adapter when returning new
> > objects.
> 
> It depends on how you do it.
> 
> You can declare a class as providing an interface and then register
> the class as secured utility for that interface. Grep for
> classProvides in the code to see examples.
> 
> The problem isn't how you write the class, it's how you invoke new().
> You can still write new() as a classmethod and invoke it with
> getUtility(IFooSet).new().

I guess I'm struggling to see how @classmethod is useful then.  In fact, it's 
dangerous.

FWIW I don't think this way of doing things is any better (nor worse, though) 
than a utility class, is there a reason to avoid those?

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to