Skip to content

Commit 9cc5bf1

Browse files
committed
[ADD] 16.0: base_group_erp_user_role
1 parent 65952f0 commit 9cc5bf1

17 files changed

+726
-0
lines changed

base_group_erp_user_role/README.rst

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
========================
2+
Base Group Erp User Role
3+
========================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:f5447d6612e26998f20aa899bb8f2d09a3f933d5589af608f26c4b60b1015651
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github
20+
:target: https://github.com/OCA/server-backend/tree/16.0/base_group_erp_user_role
21+
:alt: OCA/server-backend
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-base_group_erp_user_role
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=16.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
This module extends the base_group_erp_user module to allow
32+
Administration Users to create and edit roles, without being able to
33+
update linked groups or users.
34+
35+
**Table of contents**
36+
37+
.. contents::
38+
:local:
39+
40+
Bug Tracker
41+
===========
42+
43+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-backend/issues>`_.
44+
In case of trouble, please check there if your issue has already been reported.
45+
If you spotted it first, help us to smash it by providing a detailed and welcomed
46+
`feedback <https://github.com/OCA/server-backend/issues/new?body=module:%20base_group_erp_user_role%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
47+
48+
Do not contact contributors directly about support or help with technical issues.
49+
50+
Credits
51+
=======
52+
53+
Authors
54+
-------
55+
56+
* ACSONE SA/NV
57+
58+
Contributors
59+
------------
60+
61+
- Benjamin Willig [email protected] (https://acsone.eu)
62+
63+
Maintainers
64+
-----------
65+
66+
This module is maintained by the OCA.
67+
68+
.. image:: https://odoo-community.org/logo.png
69+
:alt: Odoo Community Association
70+
:target: https://odoo-community.org
71+
72+
OCA, or the Odoo Community Association, is a nonprofit organization whose
73+
mission is to support the collaborative development of Odoo features and
74+
promote its widespread use.
75+
76+
This module is part of the `OCA/server-backend <https://github.com/OCA/server-backend/tree/16.0/base_group_erp_user_role>`_ project on GitHub.
77+
78+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

base_group_erp_user_role/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright 2025 ACSONE SA/NV
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
{
5+
"name": "Base Group Erp User Role",
6+
"summary": """
7+
This module implements the role security around the ERP user group
8+
to make sensitive data readonly (user roles, group's roles, etc).""",
9+
"version": "16.0.1.0.0",
10+
"license": "AGPL-3",
11+
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
12+
"website": "https://github.com/OCA/server-backend",
13+
"depends": [
14+
"base_group_erp_user",
15+
"base_user_role",
16+
],
17+
"data": [
18+
"security/res_users_role.xml",
19+
"security/res_users_role_line.xml",
20+
],
21+
"demo": [],
22+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from . import res_groups
2+
from . import res_users
3+
from . import res_users_role
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2025 ACSONE SA/NV
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
import logging
5+
6+
from odoo import api, models
7+
8+
_logger = logging.getLogger(__name__)
9+
10+
11+
class ResGroups(models.Model):
12+
_inherit = "res.groups"
13+
14+
@api.model
15+
def _get_erp_user_system_forbidden_fields(self):
16+
return [
17+
"role_ids",
18+
"parent_ids",
19+
*super()._get_erp_user_system_forbidden_fields(),
20+
]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Copyright 2025 ACSONE SA/NV
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from odoo import api, models
5+
6+
7+
class ResUsers(models.Model):
8+
_inherit = "res.users"
9+
10+
@api.model
11+
def _default_role_lines(self):
12+
if self._is_current_user_only_erp_user():
13+
return []
14+
return super()._default_role_lines()
15+
16+
@api.model
17+
def _get_erp_user_system_forbidden_fields(self):
18+
return ["role_line_ids", *super()._get_erp_user_system_forbidden_fields()]
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2025 ACSONE SA/NV
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
import logging
5+
6+
from odoo import api, models
7+
8+
_logger = logging.getLogger(__name__)
9+
10+
11+
class ResUsersRole(models.Model):
12+
_name = "res.users.role"
13+
_inherit = ["res.users.role", "mixin.erp.user.forbidden.fields"]
14+
15+
@api.model
16+
def _get_erp_user_system_forbidden_fields(self):
17+
return [
18+
"implied_ids",
19+
"line_ids",
20+
]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Benjamin Willig <[email protected]> (https://acsone.eu)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This module extends the base_group_erp_user module to allow Administration Users to create and edit roles, without
2+
being able to update linked groups or users.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- Copyright 2025 ACSONE SA/NV
3+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
4+
<odoo>
5+
<record model="ir.model.access" id="res_users_role_erp_user_access">
6+
<field name="name">res.users.role erp user access</field>
7+
<field name="model_id" ref="base_user_role.model_res_users_role" />
8+
<field name="group_id" ref="base_group_erp_user.group_erp_user" />
9+
<field name="perm_read" eval="1" />
10+
<field name="perm_create" eval="1" />
11+
<field name="perm_write" eval="1" />
12+
<field name="perm_unlink" eval="0" />
13+
</record>
14+
</odoo>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- Copyright 2025 ACSONE SA/NV
3+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
4+
<odoo>
5+
<record model="ir.model.access" id="res_users_role_line_erp_user_access">
6+
<field name="name">res.users.role.line erp user access</field>
7+
<field name="model_id" ref="base_user_role.model_res_users_role_line" />
8+
<field name="group_id" ref="base_group_erp_user.group_erp_user" />
9+
<field name="perm_read" eval="1" />
10+
<field name="perm_create" eval="0" />
11+
<field name="perm_write" eval="0" />
12+
<field name="perm_unlink" eval="0" />
13+
</record>
14+
</odoo>
Loading

0 commit comments

Comments
 (0)