From a695b2dbcba33e6dbe7d82b92783f1f5eab9caed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Cayr=C3=A9?= Date: Mon, 14 Oct 2024 11:21:27 +0200 Subject: [PATCH] Fix customer admin cannot edit its own roles --- customer_team_manager/models/employee.py | 2 +- customer_team_manager/tests/test_employee.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/customer_team_manager/models/employee.py b/customer_team_manager/models/employee.py index ec7b2c17..5ac030eb 100644 --- a/customer_team_manager/models/employee.py +++ b/customer_team_manager/models/employee.py @@ -178,7 +178,7 @@ def _reset_roles(self): user = users[0] user.groups_id -= all_role_groups if user.has_group("base.group_portal"): - user.groups_id |= self.roles.mapped("groups") + user.groups_id |= self.sudo().roles.mapped("groups") @api.model @api.returns("self", lambda value: value.id) diff --git a/customer_team_manager/tests/test_employee.py b/customer_team_manager/tests/test_employee.py index 07b653fd..f358647d 100644 --- a/customer_team_manager/tests/test_employee.py +++ b/customer_team_manager/tests/test_employee.py @@ -205,3 +205,10 @@ def test_sync_partner_to_employee(self): for name, value in new_attrs.items(): self.assertEqual(getattr(empl, name), value, name) + + def test_admin_can_change_its_own_roles(self): + it_role = self.env.ref("customer_team_manager.customer_role_it") + self.assertNotIn(it_role, self.admin.roles) + + self.admin.sudo(self.user.id).roles |= it_role + self.assertIn(it_role, self.admin.roles)