Skip to content

Commit

Permalink
run ruff-format
Browse files Browse the repository at this point in the history
  • Loading branch information
El-khamisi committed Jan 23, 2025
1 parent 0b21e97 commit 501fad0
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 89 deletions.
30 changes: 15 additions & 15 deletions auth_user_case_insensitive/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,30 @@


def pre_init_hook_login_check(env):
"""This hook will look to see if any conflicting logins exist before
"""This hook will look to see if any conflicting logins exist before
the module is installed
:param openerp.sql_db.Cursor cr:
Database cursor.
"""
with env.cr.savepoint():
users = []
env.cr.execute("SELECT login FROM res_users")
for user in env.cr.fetchall():
login = user[0].lower()
if login not in users:
users.append(login)
else:
raise ValidationError(
_("Conflicting user logins exist for `%s`", login)
)
with env.cr.savepoint():
users = []
env.cr.execute("SELECT login FROM res_users")
for user in env.cr.fetchall():
login = user[0].lower()
if login not in users:
users.append(login)
else:
raise ValidationError(

Check warning on line 24 in auth_user_case_insensitive/__init__.py

View check run for this annotation

Codecov / codecov/patch

auth_user_case_insensitive/__init__.py#L24

Added line #L24 was not covered by tests
_("Conflicting user logins exist for `%s`", login)
)


def post_init_hook_login_convert(env):
"""After the module is installed, set all logins to lowercase
"""After the module is installed, set all logins to lowercase
:param openerp.sql_db.Cursor cr:
Database cursor.
:param openerp.modules.registry.RegistryManager registry:
Database registry, using v7 api.
"""
with env.cr.savepoint():
env.cr.execute("UPDATE res_users SET login=lower(login)")
with env.cr.savepoint():
env.cr.execute("UPDATE res_users SET login=lower(login)")
45 changes: 22 additions & 23 deletions auth_user_case_insensitive/models/res_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,28 @@


class ResUsers(models.Model):
_inherit = "res.users"

_inherit = "res.users"
login = fields.Char(help="Used to log into the system. Case insensitive.")

login = fields.Char(help="Used to log into the system. Case insensitive.")

@classmethod
def _login(cls, db, credential, user_agent_env):
"""Overload _login to lowercase the `login` before passing to the
@classmethod
def _login(cls, db, credential, user_agent_env):
"""Overload _login to lowercase the `login` before passing to the
super."""
if credential.get('type') and credential['type'] == 'password':
credential['login'] = credential['login'].lower()

return super()._login(db, credential, user_agent_env)

@api.model_create_multi
def create(self, vals_list):
"""Overload create multiple to lowercase login."""
for val in vals_list:
val["login"] = val.get("login", "").lower()
return super().create(vals_list)

def write(self, vals):
"""Overload write to lowercase login."""
if vals.get("login"):
vals["login"] = vals["login"].lower()
return super().write(vals)
if credential.get("type") and credential["type"] == "password":
credential["login"] = credential["login"].lower()

return super()._login(db, credential, user_agent_env)

@api.model_create_multi
def create(self, vals_list):
"""Overload create multiple to lowercase login."""
for val in vals_list:
val["login"] = val.get("login", "").lower()
return super().create(vals_list)

def write(self, vals):
"""Overload write to lowercase login."""
if vals.get("login"):
vals["login"] = vals["login"].lower()
return super().write(vals)
101 changes: 50 additions & 51 deletions auth_user_case_insensitive/tests/test_res_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,55 +6,54 @@


class TestResUsers(TransactionCase):

def setUp(self):
super().setUp()
self.login = "[email protected]"
self.partner_vals = {
"name": "Partner",
"is_company": False,
"email": self.login,
}
self.vals = {"name": "User", "login": self.login, "password": "password"}
self.model_obj = self.env["res.users"]

def _new_record(self):
"""Gnerate a new record to test with."""
partner_id = self.env["res.partner"].create(self.partner_vals)
self.vals["partner_id"] = partner_id.id
return self.model_obj.create(self.vals)

def test_login_is_lowercased_on_create(self):
"""Verify the login is set to lowercase on create."""
rec_id = self._new_record()
self.assertEqual(
self.login.lower(),
rec_id.login,
"Login was not lowercased when saved to db.",
)

def test_login_is_lowercased_on_write(self):
"""Verify the login is set to lowercase on write."""
rec_id = self._new_record()
rec_id.write({"login": self.login})
self.assertEqual(
self.login.lower(),
rec_id.login,
"Login was not lowercased when saved to db.",
)

def test_login_login_is_lowercased(self):
"""verify the login is set to lowercase on login."""
rec_id = self.model_obj.search([("login", "=", "admin")])
credential = {'login': "AdMiN", 'password': "admin", 'type': 'password'}
auth_info = self.model_obj._login(
self.env.registry.db_name,
credential,
{"interactive": True},
)
self.assertEqual(
rec_id.id,
auth_info['uid'],
"Login with with uppercase chars was not \
def setUp(self):
super().setUp()
self.login = "[email protected]"
self.partner_vals = {
"name": "Partner",
"is_company": False,
"email": self.login,
}
self.vals = {"name": "User", "login": self.login, "password": "password"}
self.model_obj = self.env["res.users"]

def _new_record(self):
"""Gnerate a new record to test with."""
partner_id = self.env["res.partner"].create(self.partner_vals)
self.vals["partner_id"] = partner_id.id
return self.model_obj.create(self.vals)

def test_login_is_lowercased_on_create(self):
"""Verify the login is set to lowercase on create."""
rec_id = self._new_record()
self.assertEqual(
self.login.lower(),
rec_id.login,
"Login was not lowercased when saved to db.",
)

def test_login_is_lowercased_on_write(self):
"""Verify the login is set to lowercase on write."""
rec_id = self._new_record()
rec_id.write({"login": self.login})
self.assertEqual(
self.login.lower(),
rec_id.login,
"Login was not lowercased when saved to db.",
)

def test_login_login_is_lowercased(self):
"""verify the login is set to lowercase on login."""
rec_id = self.model_obj.search([("login", "=", "admin")])
credential = {"login": "AdMiN", "password": "admin", "type": "password"}
auth_info = self.model_obj._login(
self.env.registry.db_name,
credential,
{"interactive": True},
)
self.assertEqual(
rec_id.id,
auth_info["uid"],
"Login with with uppercase chars was not \
successful",
)
)

0 comments on commit 501fad0

Please sign in to comment.