diff --git a/base_user_role/README.rst b/base_user_role/README.rst index 429db013..5bb73bf5 100644 --- a/base_user_role/README.rst +++ b/base_user_role/README.rst @@ -14,16 +14,16 @@ User roles :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github - :target: https://github.com/OCA/server-backend/tree/14.0/base_user_role + :target: https://github.com/OCA/server-backend/tree/15.0/base_user_role :alt: OCA/server-backend .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-backend-14-0/server-backend-14-0-base_user_role + :target: https://translation.odoo-community.org/projects/server-backend-15-0/server-backend-15-0-base_user_role :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/253/14.0 + :target: https://runbot.odoo-community.org/runbot/253/15.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module was written to extend the standard functionality regarding users and groups management. @@ -150,8 +150,8 @@ promote its widespread use. Current `maintainers `__: -|maintainer-sebalix| |maintainer-jcdrubay| |maintainer-novawish| +|maintainer-sebalix| |maintainer-jcdrubay| |maintainer-novawish| -This module is part of the `OCA/server-backend `_ project on GitHub. +This module is part of the `OCA/server-backend `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_user_role/__manifest__.py b/base_user_role/__manifest__.py index 0caa83ae..01966138 100644 --- a/base_user_role/__manifest__.py +++ b/base_user_role/__manifest__.py @@ -4,7 +4,7 @@ { "name": "User roles", - "version": "14.0.2.1.1", + "version": "15.0.0.0.0", "category": "Tools", "author": "ABF OSIELL, Odoo Community Association (OCA)", "license": "LGPL-3", diff --git a/base_user_role/models/__init__.py b/base_user_role/models/__init__.py index 052fafdd..44140bcd 100644 --- a/base_user_role/models/__init__.py +++ b/base_user_role/models/__init__.py @@ -1,2 +1,3 @@ from . import role from . import user +from . import res_groups diff --git a/base_user_role/models/res_groups.py b/base_user_role/models/res_groups.py new file mode 100644 index 00000000..5a19610d --- /dev/null +++ b/base_user_role/models/res_groups.py @@ -0,0 +1,9 @@ +from odoo import fields, models + + +class ResGroups(models.Model): + _inherit = "res.groups" + + view_access = fields.Many2many( + groups="base.group_system", + ) diff --git a/base_user_role/models/role.py b/base_user_role/models/role.py index 65df6f6f..2563d8dc 100644 --- a/base_user_role/models/role.py +++ b/base_user_role/models/role.py @@ -44,11 +44,25 @@ class ResUsersRole(models.Model): @api.model def create(self, vals): + # Run method as super user to avoid problems with new groups creations + # by "Administrator/Access Right" + is_access_rights = self.env.user.has_group( + "base.group_erp_manager", + ) + if self._name == "res.users.role" and is_access_rights: + self = self.sudo() new_record = super(ResUsersRole, self).create(vals) new_record.update_users() return new_record def write(self, vals): + # Run method as super user to avoid problems with new groups creations + # by "Administrator/Access Right" + is_access_rights = self.env.user.has_group( + "base.group_erp_manager", + ) + if self._name == "res.users.role" and is_access_rights: + self = self.sudo() # Workaround to solve issue with broken code in odoo that clear the cache # during the write: see odoo/addons/base/models/res_users.py#L226 groups_vals = {} diff --git a/base_user_role/readme/CONFIGURE.rst b/base_user_role/readme/CONFIGURE.rst index 32b3e82a..9d05ca0a 100644 --- a/base_user_role/readme/CONFIGURE.rst +++ b/base_user_role/readme/CONFIGURE.rst @@ -1,4 +1,4 @@ -To configure this module, you need to go to *Configuration / Users / Roles*, +To configure this module, you need to go to *Settings / Users / Roles*, and create a new role. From there, you can add groups to compose your role, and then associate users to it. @@ -7,18 +7,18 @@ You can also define default roles for a new user by editing the user called Roles: -.. figure:: /OCA/server-backend/12.0/base_user_role/static/description/roles.png +.. figure:: /OCA/server-backend/15.0/base_user_role/static/description/roles.png :width: 80 % :align: center Add groups: -.. figure:: /OCA/server-backend/12.0/base_user_role/static/description/role_groups.png +.. figure:: /OCA/server-backend/15.0/base_user_role/static/description/role_groups.png :width: 80 % :align: center Add users (with dates or not): -.. figure:: /OCA/server-backend/12.0/base_user_role/static/description/role_users.png +.. figure:: /OCA/server-backend/15.0/base_user_role/static/description/role_users.png :width: 80 % :align: center diff --git a/base_user_role/readme/CONTRIBUTORS.rst b/base_user_role/readme/CONTRIBUTORS.rst index b34cf97a..5fe7d2ac 100644 --- a/base_user_role/readme/CONTRIBUTORS.rst +++ b/base_user_role/readme/CONTRIBUTORS.rst @@ -4,5 +4,6 @@ * Alan Ramos (https://www.jarsa.com.mx) * Harald Panten * Kevin Khao +* Tatiana Deribina (https://sprintit.fi) Do not contact contributors directly about support or help with technical issues. diff --git a/setup/base_user_role/odoo/addons/base_user_role b/setup/base_user_role/odoo/addons/base_user_role new file mode 120000 index 00000000..d32bb0bc --- /dev/null +++ b/setup/base_user_role/odoo/addons/base_user_role @@ -0,0 +1 @@ +../../../../base_user_role \ No newline at end of file diff --git a/setup/base_user_role/setup.py b/setup/base_user_role/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/base_user_role/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)