# HG changeset patch # User Mads Kiilerich # Date 2020-03-23 14:32:06 # 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 --git a/kallithea/controllers/login.py b/kallithea/controllers/login.py --- a/kallithea/controllers/login.py +++ b/kallithea/controllers/login.py @@ -82,7 +82,7 @@ class LoginController(BaseController): 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 --git a/kallithea/lib/auth_modules/__init__.py b/kallithea/lib/auth_modules/__init__.py --- a/kallithea/lib/auth_modules/__init__.py +++ b/kallithea/lib/auth_modules/__init__.py @@ -136,9 +136,6 @@ class KallitheaAuthPluginBase(object): 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 --git a/kallithea/model/db.py b/kallithea/model/db.py --- a/kallithea/model/db.py +++ b/kallithea/model/db.py @@ -549,7 +549,7 @@ class User(Base, BaseDbModel): 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).