Just ran into and fixed this problem after much trial and error. In short,
the URL that links to this controller method needs to have the
user_signature=True attribute: In our case this was a link from another
form grid:
...
links=[
dict(
header='Manage',
body=lambda row: A(SPAN(' Members', _class='fa
fa-user-circle'),
_href=URL('membership', args=[row.id],
user_signature=True),
_class='btn btn-primary btn-sm'
)
)
],
...
We noticed that if we switched the URL *args* to *vars* it also worked. We
wanted the pretty URL though so found that the user_signature worked. One
other thing to note: If you plan to use *args* like we did here the
SQLform.grid on the recipient page will need the *args=request.args[:1] *or
similar attrbute so all of its automatically generated links will include
the *args* as well.
grid = SQLFORM.grid(
...
args=request.args[:1],
...
)
Dave
On Saturday, April 22, 2017 at 3:19:15 AM UTC-5, Rudy wrote:
>
> Hi there,
>
> It feels really strange to me that when i used SQLFORM.grid(), I got a
> flash message "not authorised", but when i used smartgrid(), it worked just
> fine (in both cases i had logged in already). I tried to removed
> @auth.requires_login(), but same behaviour happened. I seem to miss some
> very fundamental knowledge using SQLFORM.grid(). Below is the simplified
> code. Any help is much appreciated.
>
> @auth.requires_login()
> def list_items2():
> response.view='accounting/list_items.html'
> grid = SQLFORM.grid(db.auth_user)
> return locals()
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.