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