Mercurial > kallithea
changeset 8303:2cb54d157d62
user: make get_by_username_or_email default to treat username case insensitive
The get_by_username_or_email is a flexible function, intended to find users in
multiple ways, suitable for login prompts. The function was sometimes used
with case sensitive user lookup, sometimes without. Instead, be consistent and
just default to be insensitive.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 23 Mar 2020 14:32:06 +0100 |
parents | 5b147d0f8927 |
children | 9e4f0baa18e7 |
files | kallithea/controllers/login.py kallithea/lib/auth_modules/__init__.py kallithea/model/db.py |
diffstat | 3 files changed, 2 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/login.py Thu Mar 26 17:48:16 2020 +0100 +++ b/kallithea/controllers/login.py Mon Mar 23 14:32:06 2020 +0100 @@ -82,7 +82,7 @@ c.form_result = login_form.to_python(dict(request.POST)) # form checks for username/password, now we're authenticated username = c.form_result['username'] - user = User.get_by_username_or_email(username, case_insensitive=True) + user = User.get_by_username_or_email(username) assert user is not None # the same user get just passed in the form validation except formencode.Invalid as errors: defaults = errors.value
--- a/kallithea/lib/auth_modules/__init__.py Thu Mar 26 17:48:16 2020 +0100 +++ b/kallithea/lib/auth_modules/__init__.py Mon Mar 23 14:32:06 2020 +0100 @@ -136,9 +136,6 @@ username) if username: user = User.get_by_username_or_email(username) - if user is None: - log.debug('Fallback to fetch user in case insensitive mode') - user = User.get_by_username(username, case_insensitive=True) else: log.debug('provided username:`%s` is empty skipping...', username) return user
--- a/kallithea/model/db.py Thu Mar 26 17:48:16 2020 +0100 +++ b/kallithea/model/db.py Mon Mar 23 14:32:06 2020 +0100 @@ -549,7 +549,7 @@ return user @classmethod - def get_by_username_or_email(cls, username_or_email, case_insensitive=False, cache=False): + def get_by_username_or_email(cls, username_or_email, case_insensitive=True, cache=False): """ For anything that looks like an email address, look up by the email address (matching case insensitively).