From 22ef03696036d5b0c99fdda7a6fc2a30afbad131 Mon Sep 17 00:00:00 2001 From: amercader Date: Mon, 22 Jun 2015 11:56:05 +0100 Subject: [PATCH] [#2415] Allow uppercase emails on user invites Just lowercase the user name created from the email address --- ckan/logic/action/create.py | 2 +- ckan/new_tests/logic/action/test_create.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 2b50d4c47f1..66c4c42dbc3 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -1095,7 +1095,7 @@ def user_invite(context, data_dict): def _get_random_username_from_email(email): localpart = email.split('@')[0] - cleaned_localpart = re.sub(r'[^\w]', '-', localpart) + cleaned_localpart = re.sub(r'[^\w]', '-', localpart).lower() # if we can't create a unique user name within this many attempts # then something else is probably wrong and we should give up diff --git a/ckan/new_tests/logic/action/test_create.py b/ckan/new_tests/logic/action/test_create.py index f26e63afe12..ac50f8cce0c 100644 --- a/ckan/new_tests/logic/action/test_create.py +++ b/ckan/new_tests/logic/action/test_create.py @@ -75,6 +75,12 @@ def test_requires_role(self, _): def test_requires_group_id(self, _): self._invite_user_to_group(group={'id': None}) + @mock.patch('ckan.lib.mailer.send_invite') + def test_user_name_lowercase_when_email_is_uppercase(self, _): + invited_user = self._invite_user_to_group(email='Maria@example.com') + + assert_equals(invited_user.name.split('-')[0], 'maria') + def _invite_user_to_group(self, email='user@email.com', group=None, role='member'): user = factories.User()