# HG changeset patch # User Mads Kiilerich # Date 1584970326 -3600 # Node ID 2cb54d157d62825a2e6ca3665f3ffea897ab6fa1 # Parent 5b147d0f8927b889731646f9a90b79e4a26aaead 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. diff -r 5b147d0f8927 -r 2cb54d157d62 kallithea/controllers/login.py --- 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 diff -r 5b147d0f8927 -r 2cb54d157d62 kallithea/lib/auth_modules/__init__.py --- 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 diff -r 5b147d0f8927 -r 2cb54d157d62 kallithea/model/db.py --- 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).