OK it was solved... it was a problem with the decorators... sorry...
I did this...
def is_in_conference(f):
    '''
    INFO: Special decorator to validate that they are attending a
conference.
    '''
    def validation():
        if not session.current_conference:
            print "In the method!"
            print session.current_conference
            redirect(URL('default', 'index'))
    return validation()
Thanks GUYS!  The IRC channel and Ross finalized this issue for me.
BR,
Jason

On Thu, Apr 7, 2011 at 8:35 PM, Jason (spot) Brower <encomp...@gmail.com>wrote:

> Yup... if I put the decorator somewhere on some other method than index it
> still kicks me out.  WEIRD!
>
>
>
> On Thu, Apr 7, 2011 at 8:23 PM, Jason (spot) Brower 
> <encomp...@gmail.com>wrote:
>
>> By the looks of it... It seems that those decorators are run even when the
>> method is not called.  There by redirecting me before I can get to the enter
>> conference method.
>> I will be in the IRC tonight for a while if you have time to hop on and
>> help out.
>> BR,
>> Jason Brower
>>
>>
>> On Thu, Apr 7, 2011 at 8:09 PM, Jason (spot) Brower 
>> <encomp...@gmail.com>wrote:
>>
>>> When I put print f right at the beginngin of is_in_conference function I
>>> get the following:
>>>
>>> <function index at 0x31e3938>
>>> <function page at 0x31e3aa0>
>>> <function create_page at 0x31e3c08>
>>> <function administration at 0x31e3d70>
>>>
>>> representation each method I have decorated.
>>> BR,
>>> Jason
>>>
>>>
>>> On Thu, Apr 7, 2011 at 8:05 PM, Jason (spot) Brower <encomp...@gmail.com
>>> > wrote:
>>>
>>>> That still returns none.... Sadly...
>>>>
>>>>
>>>> On Wed, Apr 6, 2011 at 11:46 PM, Anthony <abasta...@gmail.com> wrote:
>>>>
>>>>> Try
>>>>>
>>>>> 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'))
>>>>>         f()
>>>>>     return g
>>>>>
>>>>> On Wednesday, April 6, 2011 3:45:57 PM UTC-4, encompass wrote:
>>>>>
>>>>>> Now all page controllers with the decorator return None on the screen.
>>>>>> ---
>>>>>> Jason
>>>>>>
>>>>>> On 04/06/2011 09:34 PM, Massimo Di Pierro wrote:
>>>>>> > 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<enco...@gmail.com>  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
>>>>>>
>>>>>>
>>>>
>>>
>>
>

Reply via email to