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<javascript:>> > 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 <javascript:>> > >> > >> 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 > >>>> > >>>> > > -- > > > > > > >
--