if isinstance(form,FORM):
        form[0][-1][1].append(...)

On Jan 18, 3:02 am, annet <[email protected]> wrote:
> In the default controller I adjusted the user() function:
>
> def user():
>     """
>     exposes:
>     ...
>     """
>     form=auth()
>     form[0][-1]
> [1].append(INPUT(_type="button",_value="Cancel",_onclick="window.location=' 
> %s';"%URL(r=request,f='index')))
>     return dict(form=form)
>
> This works well, until a user requests access to a function he doesn't
> have access to.  Web2py then redirects to:
>
> http://127.0.0.1:8000/cms/default/user/not_authorized
>
> ... which results in the following error;
>
> Traceback (most recent call last):
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
> restricted.py", line 188, in restricted
>     exec ccode in environment
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/applications/
> cms/controllers/default.py", line 118, in <module>
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
> globals.py", line 96, in <lambda>
>     self._caller = lambda f: f()
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/applications/
> cms/controllers/default.py", line 25, in user
>     form[0][-1]
> [1].append(INPUT(_type="button",_value="Cancel",_onclick="window.location=' 
> %s';"%URL(r=request,f='index')))
> IndexError: string index out of range
>
> This is how I fixed the problem, not very elegant, and probably
> overlooking other conditions:
>
> def user():
>     """
>     exposes:
>     ...
>     """
>     form=auth()
>     if not request.args(0)=='not_authorized':
>         form[0][-1]
> [1].append(INPUT(_type="button",_value="Cancel",_onclick="window.location=' 
> %s';"%URL(r=request,f='index')))
>     return dict(form=form)
>
> I wonder whether there is a better way to solve this problem.
>
> Kind regards,
>
> Annet

Reply via email to