Hi there,
I have created an accounting application, say the landing page is
http://localhost:8000/tests/accounting/index. I need to change the link
under "LOG IN" dropdown menu on top right corner to
http://...../tests/accounting/user/login instead of using
http://...../tests/default/user/login. I thought it was pretty common &
simple, after I read a few posts on webypy-users group, I still don't know
how to change it. Below is what I have tried:
1) Found below suggestion from Massimo, i commented out {{='auth' in
globals() and auth.navbar('Welcome', mode='dropdown') or ''}}, and added
below in layout.html
{{if auth.user:}}
<a href="{{=URL('accounting','user/logout')}}">Logout</a>
{{else:}}
<a href="{{=URL('accounting','user/login')}}">Login</a>
<a href="{{=URL('accounting','user/register')}}">Register</a>
<a
href="{{=URL('accounting','user/retrieve_password')}}">Lost Password</a>
{{pass}}
By doing above, I went
to http://...../tests/accounting/user/login form, once I filled the form
and clicked the blue "LOG IN" button (the authentication went through), it
redirected to http://..../tests/default/login#, same issue happened when I
logged out. How can I tell web2py where the next_url is? Or should I take
this approach at all to address my original question? If this is the way to
do it, any easy way to make it as dropdown menu instead of just links?
2) Then i tried to understand better how auth.navbar works by looking into
tools.py under gluon. I found navbar takes an argument action, i modified
it in layout.html to {{='auth' in globals() and auth.navbar('Welcome',
action='/tests/accounting/user', mode='dropdown') or ''}}. I went to the
correct form when I clicked the LOG IN link, the redirect went to the
correct controller and action, but only when I logged out, the var _next
pointed to and redirected to the default controller again -
?_next=/tests/default/index. How do i fix it? What does the argument
"referred_action" do?
3) I mixed point 1 above and Anthony suggestion - added point 1 above in
layout.html, so that it went to correct login form, then I added below in
tests/accounting/user action:
form = auth()
if request.args(0) == 'login':
form['_action'] = URL(args=request.args)
The behaviour went exactly like point 1 above
I thought most applications would change this authentication urls, there
must be a better way to configure it, I already spent the weekend on it.
Any pointers are much appreciated.
--
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.