So I was able to figure my problem out thanks to Arglanir. I put in alittle
effort & I achieved positive results with the code below.
def onetimecode(func):
def wrapper():
details=['not logged', session.logged]
if not request.vars.type or request.vars.type not in details:
redirect(URL('default', 'subscribe'))
else:
return func()
return wrapper
On Wednesday, September 21, 2022 at 10:33:45 AM UTC+2 mostwanted wrote:
> *STATEMENT OF THE PROBLEM*
>
>
> I have an infinite loop problem that i don't know how to escape so i need
> help!!!! I have never used a decorator before I'm not even sure i fully
> understand how they work but i have used one & it's giving me a headache.
>
> I have registration form that's supposed to be protected by a one time
> code login page that i put inside a decorator trying to simulate
> *@auth.requires_login()*. The idea is that if the one time code is
> correct the user should access the registration form but *NEVER* if it's
> wrong and the user should never be able to bypass the security feature by
> directly typing the page address in the URL! But now I'm stuck in a loop
> with a page(one time code page) that keeps calling itself. How can I fix
> this to get what I want??
>
>
> *ONE TIME CODE FORM*
>
> def subscribe():
> key_exists = not db(db.regKeys.regKey == request.vars.regCode).isempty()
> if request.vars.regCode is None:
> message=''
> if key_exists:
> db(db.regKeys.regKey == request.vars.regCode).delete()
> redirect(URL('register_product'))
> if request.vars.regCode is not None and not key_exists:
> message="INCORRECT REG CODE"
> return locals()
>
>
> *DECORATOR CODE*
>
> def onetimecode(func):
> def wrapper():
> redirect(URL('default', 'subscribe'))
> return wrapper
>
>
> *REGISTRATION FORM WITH THE DECORATOR*
>
> @onetimecodedef register_product():
> timeout = auth.settings.expiration
> details=db(db.thirdParty).select()
> form=SQLFORM(db.black_market2)
> if form.process().accepted:
> response.flash=T('Successfully Registered')
> return locals()
>
>
>
>
>
>
>
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/ac705f20-d15d-4c52-b1c9-850cf985653dn%40googlegroups.com.