Simon, I've been trying to add this feature and it doesn't seem to work correctly. The require decorator is presently defined as:

def require(predicate, obj=None):
    '''
    Function decorator that checks whether the current user is a member of the
    groups specified and has the permissions required.
    '''
    def entangle(fn):
        def require(func, self, *args, **kwargs):
            try:
                errors= []
                if predicate is None or \
                   predicate.eval_with_object(current, errors):
                   return fn(self, *args, **kwargs)
            except IdentityException, e:
                errors= [str(e)]

            raise IdentityFailure(errors)
        return decorator(require)(fn)
    return entangle

I've tried adding a _require attribute to entangle or the internal require, but in neither case is it visible as part of the decorated method. The magic seems to have failed. Any idea what I might be doing wrong?

On 18 Feb, 2006, at 5:38 am, Simon Belak wrote:


Jeff Watkins wrote:
Wow. That's a really interesting idea. I could easily expose the 
permission predicate that the require decorator is using, however, I 
don't think that would work, because later decorators would hide that 
information.

Anyone with deeper Python-fu who'd like to make a suggestion?

Depends how you intend to expose it. It should work if you make it an 
attribute (as long as everyone is using "well behaved" decorators).

We can of curse also tweak the decorator library if you have any special 
needs (preferably in a way useful to others as well).


Cheers,
Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/turbogears
-~----------~----~----~----~------~----~------~--~---

Reply via email to