From 2cffb6634dac6bd16a46ba2a1f34aee8a13ca423 Mon Sep 17 00:00:00 2001 From: Matt Wright Date: Mon, 13 Oct 2014 13:34:11 -0400 Subject: [PATCH] Fix case sensitivity when searching for users by email address. Fixes #323. --- flask_security/forms.py | 4 ++-- tests/test_registerable.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/flask_security/forms.py b/flask_security/forms.py index 91cd1a6..e3f6a3b 100644 --- a/flask_security/forms.py +++ b/flask_security/forms.py @@ -75,13 +75,13 @@ def get_form_field_label(key): def unique_user_email(form, field): - if _datastore.find_user(email=field.data) is not None: + if _datastore.get_user(field.data) is not None: msg = get_message('EMAIL_ALREADY_ASSOCIATED', email=field.data)[0] raise ValidationError(msg) def valid_user_email(form, field): - form.user = _datastore.find_user(email=field.data) + form.user = _datastore.get_user(field.data) if form.user is None: raise ValidationError(get_message('USER_DOES_NOT_EXIST')[0]) diff --git a/tests/test_registerable.py b/tests/test_registerable.py index 02b5c5f..9510c5b 100644 --- a/tests/test_registerable.py +++ b/tests/test_registerable.py @@ -55,6 +55,14 @@ def test_registerable_flag(client, app, get_message): response = client.post('/register', data=data, follow_redirects=True) assert get_message('EMAIL_ALREADY_ASSOCIATED', email='dude@lp.com') in response.data + # Test registering with an existing email but case insensitive + data = dict( + email='Dude@lp.com', password='password', password_confirm='password', + next='' + ) + response = client.post('/register', data=data, follow_redirects=True) + assert get_message('EMAIL_ALREADY_ASSOCIATED', email='Dude@lp.com') in response.data + # Test registering with JSON data = '{ "email": "dude2@lp.com", "password": "password"}' response = client.post('/register', data=data, headers={'Content-Type': 'application/json'})