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.
>
>
>

-- 



Reply via email to