I do following for case insensitive email login (on 2.2.1):

def login_email_lower(form):
    form.vars.email = form.vars.email.lower()
    return form
auth.settings.login_onvalidation = login_email_lower
auth.settings.register_onvalidation = login_email_lower
auth.settings.profile_onvalidation = login_email_lower
auth.settings.retrieve_password_onvalidation = login_email_lower
auth.settings.reset_password_onvalidation = login_email_lower

It works fine for login. But I am able to register duplicated accounts such 
as "[email protected]" and "[email protected]" (both are "[email protected]" in 
database). Also, if I want to reset password for "[email protected]", I get 
"Invalid email" error.

The login_onvalidation works well. But register_onvalidation 
and reset_password_onvalidation are too late to lower case. Need to lower 
case before validation, but how can login_onvalidation work 
but register_onvalidation not? Is this a bug or are there better ways to 
implement case insensitive email?

Thanks,
Mark

-- 



Reply via email to