From 2c59d4aa6a5291d3c2e58c27518f8f2314cc49bb Mon Sep 17 00:00:00 2001 From: cupcake Date: Thu, 23 Jan 2025 17:53:20 +0200 Subject: [PATCH] [MIG] auth_user_case_insensitive: Migration to 18.0 --- auth_user_case_insensitive/__manifest__.py | 2 +- auth_user_case_insensitive/models/res_users.py | 7 ++++--- auth_user_case_insensitive/tests/test_res_users.py | 8 ++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/auth_user_case_insensitive/__manifest__.py b/auth_user_case_insensitive/__manifest__.py index 3bb85ee311..2b16fba3b5 100644 --- a/auth_user_case_insensitive/__manifest__.py +++ b/auth_user_case_insensitive/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Case Insensitive Logins", "summary": "Makes the user login field case insensitive", - "version": "18.0.0.0.0", + "version": "18.0.1.0.0", "category": "Authentication", "website": "https://github.com/OCA/server-auth", "author": "LasLabs, Odoo Community Association (OCA)", diff --git a/auth_user_case_insensitive/models/res_users.py b/auth_user_case_insensitive/models/res_users.py index e6cd365af7..3d289f40f1 100644 --- a/auth_user_case_insensitive/models/res_users.py +++ b/auth_user_case_insensitive/models/res_users.py @@ -11,11 +11,12 @@ class ResUsers(models.Model): login = fields.Char(help="Used to log into the system. Case insensitive.") @classmethod - def _login(cls, db, login, password, user_agent_env): + def _login(cls, db, credential, user_agent_env): """Overload _login to lowercase the `login` before passing to the super.""" - login = login.lower() - return super()._login(db, login, password, user_agent_env=user_agent_env) + if credential.get("type") and credential["type"] == "password": + credential["login"] = credential["login"].lower() + return super()._login(db, credential, user_agent_env=user_agent_env) @api.model_create_multi def create(self, vals_list): diff --git a/auth_user_case_insensitive/tests/test_res_users.py b/auth_user_case_insensitive/tests/test_res_users.py index c6b7645ddd..5dafcbcffe 100644 --- a/auth_user_case_insensitive/tests/test_res_users.py +++ b/auth_user_case_insensitive/tests/test_res_users.py @@ -45,15 +45,15 @@ def test_login_is_lowercased_on_write(self): def test_login_login_is_lowercased(self): """verify the login is set to lowercase on login.""" rec_id = self.model_obj.search([("login", "=", "admin")]) - res_id = self.model_obj._login( + credential = {"login": "AdMiN", "password": "admin", "type": "password"} + auth_info = self.model_obj._login( self.env.registry.db_name, - "AdMiN", - "admin", + credential, {"interactive": True}, ) self.assertEqual( rec_id.id, - res_id, + auth_info["uid"], "Login with with uppercase chars was not \ successful", )