I believe this is fixed in the nightly built. On Sunday, 9 December 2012 07:44:45 UTC-6, weheh wrote: > > Since upgrading to web2py 2.x from 1.9x.x, (I'm running 2.2.1 stable from > source) auth.impersonate isn't working for me any more. My controller > "user.py" has an impersonate action that calls auth.impersonate (first bold > line below): > > @auth.requires_login() > def impersonate(): > user_id = int(request.args(0)) > * imp_form = auth.impersonate(user_id)* > * if not isinstance(imp_form, SQLFORM):* > if user_id == 0: > redirect(URL(c='action1', f='index', args=args, > extension=False)) > redirect(URL(c='action2', f='index', args=args, extension=False)) > return dict(imp_form=imp_form) > > > The line > imp_form = auth.impersonate(user_id) > used to work fine but now throws the ticket: > > Traceback (most recent call last): > File "N:\web2py\gluon\restricted.py", line 212, in restricted > exec ccode in environment > File "N:/web2py/applications/myapp/controllers/user.py" > <http://127.0.0.1:8000/admin/edit/YAKiToMe/controllers/user.py>, line 674, in > <module> > File "N:\web2py\gluon\globals.py", line 188, in <lambda> > self._caller = lambda f: f() > File "N:\web2py\gluon\tools.py", line 2911, in f > return action(*a, **b) > File "N:/web2py/applications/myapp/controllers/user.py" > <http://127.0.0.1:8000/admin/edit/YAKiToMe/controllers/user.py>, line 555, in > impersonate > imp_form = auth.impersonate(user_id) > File "N:\web2py\gluon\tools.py", line 2826, in impersonate > return SQLFORM(table_user, user.id, readonly=True) > UnboundLocalError: local variable 'user' referenced before assignment > > I've traced it in eclipse and user_id is set properly. > > I went into gluon/tools.py and hacked line 2826 to be > > return SQLFORM(table_user, user_id, readonly=True) > > and that resolves the ticket. However, the "not isinstance(imp_form, > SQLFORM)" clause (see emboldened text above) isn't triggering any longer, so > I'm not getting the expected redirection after impersonation. > > Any help would be appreciated. Thanks. > > >
--