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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to