should be
def is_in_conference(f):
'''
INFO: Special decorator to validate that they are attending a
conference.
'''
def g(f=f):
if not session.current_conference:
redirect(URL('default', 'index'))
return g
On Apr 6, 12:18 pm, Jason Brower <[email protected]> wrote:
> I think the session is lost in the decorator....
> Here is my controller called "conference.py"
>
> def enter_conference():
> '''
> INFO:This page is for changing your session to match a particular
> conference
> that a user may be attending or managing.
> '''
> print "enter_conference"
> if not request.args(0):
> redirect(URL('default', 'index'))
> conference = (db((db.conference_attenders.conference ==
> request.args(0)) &\
> (db.conference_attenders.attender ==
> auth.user_id))).select() or \
> (db((db.conference.creator == auth.user_id))).select()
> if conference:
> print "The conference exists and I will now put the user in the
> conference."
> session.current_conference = request.args(0)
> redirect(URL('conference','index'))
> else:
> redirect(URL('default', 'index'))
>
> def exit():
> """
> INFO: This page simple remove them from visiting the conference.
> Though they are still attending.
> """
> session.current_conference = None
> redirect(URL('default', 'index'))
>
> def is_in_conference(f):
> '''
> INFO: Special decorator to validate that they are attending a
> conference.
> '''
> if not session.current_conference:
> redirect(URL('default', 'index'))
> return (f)
>
> @auth.requires_login()
> @is_in_conference
> def index():
> """
> INFO: This page takes all the various things of the conference on
> to one page.
> """
> return dict()
>
> ---------------------------------------------------------------------------
> -----------------
> if I put enter_conference/5 for the the link it doesn't work.
> If I put print session.current_conference it print's None
> If I take out the decorator it works.
>
> So what are my options at this point? Do I really need to put that if
> statement in each method. The decorator is so much more clean.
> Best Regards,
> Jason