Skip to content

Commit 5a03f11

Browse files
author
Milan Topuzov
committed
[MIG] base_user_role: replace default-user hack with explicit 'is_default' flag on roles; set default role lines from that flag; expose in views; adapt tests
1 parent 8681ace commit 5a03f11

File tree

4 files changed

+23
-25
lines changed

4 files changed

+23
-25
lines changed

base_user_role/models/role.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ class ResUsersRole(models.Model):
4747
help="Privilege assigned to the associated group.",
4848
readonly=False,
4949
)
50+
is_default = fields.Boolean(
51+
string="Default on new users",
52+
help=("When enabled, this role is assigned to newly created users by default."),
53+
)
5054

5155
@api.depends("line_ids.user_id")
5256
def _compute_user_ids(self):

base_user_role/models/user.py

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,15 @@ def _compute_show_alert(self):
3131

3232
@api.model
3333
def _default_role_lines(self):
34-
template_user = self.env.ref(
35-
"base.template_portal_user_id", raise_if_not_found=False
36-
)
37-
default_values = []
38-
if template_user:
39-
for role_line in template_user.with_context(
40-
active_test=False
41-
).role_line_ids:
42-
default_values.append(
43-
{
44-
"role_id": role_line.role_id.id,
45-
"date_from": role_line.date_from,
46-
"date_to": role_line.date_to,
47-
"is_enabled": role_line.is_enabled,
48-
}
49-
)
50-
return default_values
34+
"""Default role lines for a new user.
35+
36+
In Odoo 19, the former ``base.default_user`` template was removed in
37+
favor of a default group. There is no default user anymore to copy
38+
role lines from. Use a boolean on roles to mark the ones that should
39+
apply to new users.
40+
"""
41+
default_roles = self.env["res.users.role"].search([("is_default", "=", True)])
42+
return [{"role_id": r.id} for r in default_roles]
5143

5244
@api.depends("role_line_ids.role_id")
5345
def _compute_role_ids(self):

base_user_role/tests/test_user_role.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -201,14 +201,9 @@ def test_role_line_unlink(self):
201201
self.assertFalse(role2_groups <= self.user_id.group_ids)
202202

203203
def test_default_user_roles(self):
204-
self.default_user.write(
205-
{
206-
"role_line_ids": [
207-
fields.Command.create({"role_id": self.role1_id.id}),
208-
fields.Command.create({"role_id": self.role2_id.id}),
209-
]
210-
}
211-
)
204+
# Mark roles as default on new users
205+
self.role1_id.is_default = True
206+
self.role2_id.is_default = True
212207
user = self.user_model.create(
213208
{"name": "USER TEST (DEFAULT ROLES)", "login": "user_test_default_roles"}
214209
)

base_user_role/views/role.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<group>
3939
<field name="name" />
4040
<field name="group_id" required="0" readonly="1" />
41+
<field name="is_default" />
4142
</group>
4243
<notebook>
4344
<page string="Groups">
@@ -76,6 +77,7 @@
7677
<field name="arch" type="xml">
7778
<list>
7879
<field name="name" />
80+
<field name="is_default" />
7981
<field name="user_ids" />
8082
</list>
8183
</field>
@@ -88,6 +90,11 @@
8890
<field name="name" />
8991
<field name="user_ids" />
9092
<field name="implied_ids" />
93+
<filter
94+
name="is_default"
95+
string="Default"
96+
domain="[('is_default', '=', True)]"
97+
/>
9198
</search>
9299
</field>
93100
</record>

0 commit comments

Comments
 (0)