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.