I am not sure the extended-login-form is designed to work with nonstandard 
username fields but, If this works for you, we can add the lines.

On Monday, 6 May 2013 10:13:21 UTC-5, Ting-Yu Chou wrote:
>
> Hello,
>
> I use ExtendedLoginForm to include both default auth and
> FaceBookAccount, and still want to use 'email' for default
> registration, I have following in my models/db.py:
>
>   auth.define_tables(username=True)
>   db.auth_user.username.requires = IS_NOT_IN_DB(db, db.auth_user.username)
>   db.auth_user.username.writable = db.auth_user.username.readable = False
>   db.auth_user.first_name.writable = db.auth_user.first_name.readable = 
> False
>   db.auth_user.last_name.writable = db.auth_user.last_name.readable = 
> False
>   auth.settings.login_userfield = 'email'
>
>
> But it fails when I trying to register. I think it's because
> auth.register() uses field 'username' to select the user if the
> table_user does have the field:
>
>   table_user = self.table_user()
>   if 'username' in table_user.fields:
>       username = 'username'
>   else:
>       username = 'email'
>   ...
>   user = self.db(
>       table_user[username] == form.vars[username]
>       ).select().first()
>   self.login_user(user)
>
>
> I'm not sure, but maybe it should be modified like below?
>
>   table_user = self.table_user()
> + if self.settings.login_userfield:
> +     username = self.settings.login_userfield
>   elif 'username' in table_user.fields:
>       username = 'username'
>   else:
>       username = 'email'
>   ...
>   user = self.db(
>       table_user[username] == form.vars[username]
>       ).select().first()
>   self.login_user(user)
>
>
> Thanks
>
>

-- 

--- 
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/groups/opt_out.


Reply via email to