Now it's ok - thank you!
Regards, Martin

2012/10/16 Massimo Di Pierro <massimo.dipie...@gmail.com>

> in trunk
>
>
> On Tuesday, 16 October 2012 10:51:08 UTC-5, Ricardo Pedroso wrote:
>
>> The fix in trunk worked for me.
>>
>> Martin are you calling impersonate(0) via GET or POST.
>>
>> Now I'm going to guessing mode....
>>
>> I guest it is via GET, right? And probably when you call it
>> you were not an impersonator any more.
>>
>> Massimo, maybe it is a condition missing:
>> we have in gluon/tools.py:
>>
>>         elif user_id in (0, '0') and self.is_impersonating():
>>             session.clear()
>>             session.update(cPickle.loads(**auth.impersonator))
>>             self.user = session.auth.user
>>             return None
>>
>> Probably should go something like this:
>>
>>         elif user_id in (0, '0'):
>>             if self.is_impersonating():
>>                 session.clear()
>>                 session.update(cPickle.loads(**auth.impersonator))
>>                 self.user = session.auth.user
>>             return None
>>
>> Ricardo
>>
>> On Tue, Oct 16, 2012 at 2:31 PM, Martin Weissenboeck <mwei...@gmail.com>
>> wrote:
>> >
>> >
>> > Traceback (most recent call last):
>> >
>> >
>> >   File "H:\...\web2py\gluon\**restricted.py", line 209, in restricted
>> >
>> >
>> >     exec ccode in environment
>> >   File "H:/.../web2py/applications/**secure/controllers/default.py"**,
>> line
>> > 3988, in <module>
>> >
>> >
>> >   File "H:\...\web2py\gluon\globals.**py", line 182, in <lambda>
>> >
>> >
>> >
>> > self._caller = lambda f: f
>> > ()
>> >
>> >
>> >   File "H:/.../web2py/applications/**secure/controllers/default.py"**,
>> line
>> > 1932, in impersonateEnd
>> >
>> >
>> >     auth.impersonate(0)
>> >   File "H:\...\web2py\gluon\tools.py"**, line 2756, in impersonate
>> >
>> >
>> >
>> >     return SQLFORM(table_user, user.id, readonly=True)
>> >
>> >
>> > UnboundLocalError: local variable 'user' referenced before assignment
>> >
>> >
>> >
>> > 2012/10/16 Massimo Di Pierro <massimo....@gmail.com>
>> >>
>> >> can you show all traceback?
>> >>
>> >>
>> >> On Tuesday, 16 October 2012 07:18:38 UTC-5, mweissen wrote:
>> >>>
>> >>> Is this the actual trunc-version?
>> >>>
>> >>> Version 2.1.1 (2012-10-16 06:19:35) dev
>> >>>
>> >>>
>> >>> I get the same message
>> >>>
>> >>> <type 'exceptions.UnboundLocalError'**> local variable 'user'
>> referenced
>> >>> before assignment
>> >>>
>> >>>
>> >>> 2012/10/16 Massimo Di Pierro <massimo....@gmail.com>
>> >>>
>> >>>> There is a bug, I just fixed it in trunk.
>> >>>>
>> >>>> auth.impersonate(0)
>> >>>> is correct.
>> >>>>
>> >>>>
>> >>>> On Tuesday, 16 October 2012 04:38:35 UTC-5, mweissen wrote:
>> >>>>>
>> >>>>> I have called
>> >>>>> auth.impersonate(0)
>> >>>>> to finish impersonation.
>> >>>>>
>> >>>>> Now (Version 2.1.1) I see:
>> >>>>>
>> >>>>> Traceback (most recent call last):
>> >>>>>   File "H:\...\web2py\gluon\**restricted.py", line 209, in
>> restricted
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>     exec ccode in environment
>> >>>>>   File "H:/.../applications/secure/**controllers/default.py", line
>> 3988,
>> >>>>> in <module>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>   File "H:\...\web2py\gluon\globals.**py", line 187, in <lambda>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>     self._caller = lambda f: f()
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>   File "H:/.../applications/secure/**controllers/default.py", line
>> 1932,
>> >>>>> in impersonateEnd
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>     auth.impersonate(0)
>> >>>>>   File "H:\...\web2py\gluon\tools.py"**, line 2755, in impersonate
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>     return SQLFORM(table_user, user.id, readonly=True)
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> UnboundLocalError: local variable 'user' referenced before
>> assignment
>> >>>>>
>> >>>>>
>> >>>>> My function:
>> >>>>> def impersonateEnd():
>> >>>>>     auth.impersonate(0)
>> >>>>>     redirect(URL('index',vars=**dict(flash=T('End of
>> impersonation'))))
>> >>>>>
>> >>>>> What ist the best way to end impersonation?
>> >>>>>
>> >>>>> Regards, Martin
>> >>>>
>> >>>>
>> > --
>> >
>> >
>> >
>>
>  --
>
>
>

-- 



Reply via email to