While subclassing Auth to override retrieve_username, I needed to create a 
link to retrieve_username and also to login. The solution I found was the 
following:
>>> URL('user')
'/ssam/default/user'
>>> URL('user') + '/retrieve_username'
'/ssam/default/user/retrieve_username'
>>> URL('user') + '/login'
'/ssam/default/user/login'


We create a URL to the user function in our controller, then add the Auth 
function name we want. The interesting thing I just realized is we can 
modify the user function to do things based on which Auth function is 
requested by using request.args.

I wanted to set the username in the login form. While I don't see a way to 
do that without overriding login in Auth (which I don't want to do), I 
decided setting response.flash would suffice. So now I have the following:

def user():
    if request.args[0] == 'login':
        if request.vars.username:
            response.flash = request.vars.username
    return dict(form=auth())


Just thought I would share.

Carlos


Reply via email to