what about default cases. I don't need to redirect if a var does not exist, but instead use a default value. Perhaps a dict instead of tuples ?
-Thadeus On Fri, Feb 12, 2010 at 7:53 PM, Tiago Almeida <[email protected]> wrote: > Sorry, spoke too soon. I saw how auth works and did something similar. > right now it is something like this, mind that names can be changed: > > @req_args.requires_validVars( 'www.google.com', > ('search',), > ('search','highlight')) > > first param is where to redirect on error and the other params are > tuples of possible vars. In this case it validates if you pass > ?search=... OR > search=... AND highlight=... and redirects on all other cases (missing > params or too many params) > > Any suggestions? I could see this also validating the type of each > parameter (like string or number)... > > I'll clean up the code later and release it then. > Regards, > Tiago > ------- > > On Sat, Feb 13, 2010 at 12:19 AM, Tiago Almeida > <[email protected]> wrote: >> Hello, I think i've finished doing this but I'm having trouble >> accessing the request object from the decorator function. >> How would you define a decorator that accesses the request? >> I have something like this >> >> class require_args(object): >> def __call__(self, f): >> def decorated(*args): >> global request >> if argsAreValid( tuple(request.args.keys()), >> self.arguments): >> f(*args) >> else: >> ... >> return decorated >> >> I get the following error: >> >> global request >> NameError: global name 'request' is not defined >> >> >> Thanks a lot in advance. >> -- >> On Fri, Feb 12, 2010 at 4:02 PM, Tiago Almeida >> <[email protected]> wrote: >>> >>> Shouldn't be hard to implement that decorator, though. I'll try later (at >>> work now) because this is useful. >>> >>> Regards, >>> Tiago >>> >>> On Fri, Feb 12, 2010 at 12:19 AM, minh <[email protected]> wrote: >>>> >>>> Is there a way to require arguments/vars in the controller functions >>>> other than explicitly checking for them? >>>> >>>> It would be nice if we could decorate the functions similar to how the >>>> auth works, ex: >>>> >>>> @require_arg_function(minargs=2, message="Invalid arguments") >>>> def some_function(): >>>> .... >>>> >>>> Thanks. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "web2py-users" 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/web2py?hl=en. >>>> >>> >> > > -- > You received this message because you are subscribed to the Google Groups > "web2py-users" 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/web2py?hl=en. > > -- You received this message because you are subscribed to the Google Groups "web2py-users" 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/web2py?hl=en.

