Hi,

Auth.login overwrites any custom email validators that you define.
Specifically, line 1019 of tools.py overwrites
table_user[username].requires with
IS_EMAIL(error_message=self.messages.invalid_email). Why is this
necessary?  For example, it means that this does NOT work:

db.py
-----
auth_table = db.define_table(
    auth.settings.table_user_name,
    Field('email', length=128, default='',
        unique=True, writable=True),
    ...)

auth_table.email.requires = [
    IS_LOWER(),
    IS_EMAIL(error_message=auth.messages.invalid_email)]


Email must be case-sensitive?!  Anyway, I suggest the following patch
to tools.py:

Replace:
1019 table_user[username].requires = tmpvalidator
With:
1019 table_user[username].requires = table_user[username].requires or
tmpvalidator

Or if you consider this a feature, perhaps a new setting?
1019 if not self.settings.login_email_custom_validators:
table_user[username].requires = tmpvalidator

Thanks
Russell


-- 
Subscription settings: http://groups.google.com/group/web2py/subscribe?hl=en

Reply via email to