Sorry, good catch.
On Sunday, December 11, 2011 11:30:12 AM UTC-5, Francisco Costa wrote: > > Gotta after some debugging: post_vars was missing > > So this will verification will work for username or email login: > > if request.vars.username and not IS_EMAIL() > (request.vars.username)[1]: > auth.settings.login_userfield = 'email' > request.vars.email = request.vars.username > request.post_vars.email = request.vars.email > request.vars.username = None > request.post_vars.username = None > > On Dec 11, 1:30 pm, Francisco Costa <[email protected]> wrote: > > has anyone successfully tried this? > > > > On Dec 9, 6:01 pm, Francisco Costa <[email protected]> wrote: > > > > > > > > > > > > > > > > > No error, > > > it enters in the if loop, but it seems that the > > > auth.settings.login_userfield = 'email' doesn't change anything > > > > > On Dec 9, 5:34 pm, Anthony <[email protected]> wrote: > > > > > > The idea is to create the form with the 'username' field by default, > but > > > > when submitted, if the 'username' field contains an email address, > change > > > > the setting and also copy the email address to request.vars.email > before > > > > calling the login() method again. The second call to login will > proceed as > > > > if the email address is being used for login. If it's not working, > I'm not > > > > sure where it's breaking down. Did you get an error, or it just > didn't > > > > check the email address properly? > > > > > > Anthony > > > > > > On Friday, December 9, 2011 12:17:18 PM UTC-5, Francisco Costa wrote: > > > > > > > it seems it dosen't work.. maybe because I have a username field > > > > > defined in my auth_user? > > > > > > > On Dec 9, 4:46 pm, Anthony <[email protected]> wrote: > > > > > > Not tested, but maybe something like: > > > > > > > > def user(): > > > > > > custom_auth.settings.login_userfield = 'username' > > > > > > if request.args(0) == 'login': > > > > > > if request.vars.username and not > > > > > > IS_EMAIL()(request.vars.username)[1]: > > > > > > custom_auth.settings.login_userfield = 'email' > > > > > > request.vars.email = request.vars.username > > > > > > return dict(form=custom_auth.login()) > > > > > > return dict(form=custom_auth()) > > > > > > > > On Friday, December 9, 2011 10:52:56 AM UTC-5, Francisco Costa > wrote: > > > > > > > > > I would prefer that way.. I what controller function? I'm > using in > > > > > > > form from default/user but I'm using a customauth > > > > > > > > > On Dec 9, 3:02 pm, Anthony <[email protected]> wrote: > > > > > > > > Rather than write a whole new method, one trick might be in > the login > > > > > > > > controller function, check the incoming > request.vars.username to see > > > > > if > > > > > > > it > > > > > > > > is an email address (using the IS_EMAIL validator). Then, > depending > > > > > on > > > > > > > > that, dynamically set auth.settings.login_userfield to either > > > > > 'email' or > > > > > > > > 'username', and then call auth.login() as usual. > > > > > > > > > > Anthony > > > > > > > > > > On Friday, December 9, 2011 9:50:02 AM UTC-5, Francisco > Costa wrote: > > > > > > > > > > > yes, i think I'm going to build a custom method for login > with > > > > > > > > > username or email > > > > > > > > > > > On Dec 9, 2:13 pm, Anthony <[email protected]> wrote: > > > > > > > > > > Are you saying you want users to be able to login with > either > > > > > their > > > > > > > > > > username or their email address? For that, I think you > might > > > > > need a > > > > > > > > > custom > > > > > > > > > > login method. On the other hand, if you simply want to > allow > > > > > users to > > > > > > > > > have > > > > > > > > > > a username, but always login with email address, you > should be > > > > > able > > > > > > > to > > > > > > > > > do: > > > > > > > > > > > > auth.settings.login_userfield = 'email' > > > > > > > > > > > > Anthony > > > > > > > > > > > > On Friday, December 9, 2011 7:22:57 AM UTC-5, Francisco > Costa > > > > > wrote: > > > > > > > > > > > > > lots of users on login form submit their email instead > of the > > > > > > > > > > > username.. > > > > > > > > > > > > > it seems that auth.define_tables(username=True) forces > username > > > > > > > login > > > > > > > > > > > but it is possible to have both? > >

