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?
>
>

Reply via email to