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.