Skip to content

Commit 2e88e57

Browse files
[MIG] base_user_effective_permissions: Migration to 18.0
1 parent 6767596 commit 2e88e57

File tree

4 files changed

+17
-19
lines changed

4 files changed

+17
-19
lines changed

base_user_effective_permissions/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
{
55
"name": "Effective permissions",
66
"summary": "Inspect effective permissions applying to a user",
7-
"version": "16.0.1.0.0",
7+
"version": "18.0.1.0.0",
88
"development_status": "Alpha",
99
"category": "Technical",
1010
"website": "https://github.com/OCA/server-backend",

base_user_effective_permissions/models/res_users.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def action_show_effective_permissions(self):
1717
"type": "ir.actions.act_window",
1818
"name": _("Effective permissions for %s") % self.name,
1919
"res_model": "res.users.effective.permission",
20-
"view_mode": "tree",
20+
"view_mode": "list",
21+
"views": [[False, "list"]],
2122
"domain": [("id", "in", permissions.ids)],
2223
}

base_user_effective_permissions/models/res_users_effective_permission.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44

55
from odoo import fields, models
6+
from odoo.exceptions import AccessError
67

78

89
class ResUsersEffectivePermission(models.TransientModel):
@@ -13,7 +14,7 @@ class ResUsersEffectivePermission(models.TransientModel):
1314
model_id = fields.Many2one("ir.model", string="Model")
1415
model_name = fields.Char(related="model_id.model", string="Model name")
1516
model_human_name = fields.Char(
16-
related="model_id.name", store=True, string="Human readable model name"
17+
related="model_id.name", string="Human readable model name"
1718
)
1819
create_permission = fields.Boolean("Create")
1920
create_domain = fields.Char("Create restrictions")
@@ -49,21 +50,17 @@ def _generate_permissions(self, user):
4950
.with_context(allowed_company_ids=user.company_id.ids)
5051
)
5152
vals = {"model_id": model_record.id}
52-
vals.update(
53-
{
54-
f"{operation}_permission": model.check_access_rights(
55-
operation, False
56-
)
57-
for operation in operations
58-
}
59-
)
60-
vals.update(
61-
{
62-
f"{operation}_domain": IrRule._compute_domain(
53+
ir_model_access = self.env["ir.model.access"].with_user(user)
54+
for operation in operations:
55+
vals[f"{operation}_permission"] = ir_model_access.check(
56+
model._name, operation, raise_exception=False
57+
)
58+
for operation in operations:
59+
try:
60+
vals[f"{operation}_domain"] = IrRule._compute_domain(
6361
model._name, operation
6462
)
65-
for operation in operations
66-
}
67-
)
63+
except AccessError:
64+
vals[f"{operation}_domain"] = "[]"
6865
permissions += self.create(vals)
6966
return permissions

base_user_effective_permissions/views/res_users_effective_permission.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<record id="res_users_effective_permission_tree" model="ir.ui.view">
66
<field name="model">res.users.effective.permission</field>
77
<field name="arch" type="xml">
8-
<tree>
8+
<list>
99
<field name="model_id" />
1010
<field name="model_name" invisible="1" />
1111
<field name="create_permission" optional="show" />
@@ -40,7 +40,7 @@
4040
widget="domain"
4141
options="{'model': 'model_name'}"
4242
/>
43-
</tree>
43+
</list>
4444
</field>
4545
</record>
4646
<record id="res_users_effective_permission_search" model="ir.ui.view">

0 commit comments

Comments
 (0)