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