diff --git a/.travis.yml b/.travis.yml index af24e97e..1a789061 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ python: addons: postgresql: "9.6" - postgresql: "9.3" # minimal postgresql version for the base_import_security_group module + postgresql: "9.5" # minimal postgresql version for the base_import_security_group module # more info: https://github.com/OCA/maintainer-quality-tools/issues/432 apt: packages: diff --git a/base_user_role/README.rst b/base_user_role/README.rst index 215f9a64..ebe82ee3 100644 --- a/base_user_role/README.rst +++ b/base_user_role/README.rst @@ -6,71 +6,19 @@ User roles ========== -This module was written to extend the standard functionality regarding users -and groups management. -It helps creating well-defined user roles and associating them to users. - -It can become very hard to maintain a large number of user profiles over time, -juggling with many technical groups. For this purpose, this module will help -you to: - - * define functional roles by aggregating low-level groups, - * set user accounts with the predefined roles (roles are cumulative), - * update groups of all relevant user accounts (all at once), - * ensure that user accounts will have the groups defined in their roles - (nothing more, nothing less). In other words, you can not set groups - manually on a user as long as there is roles configured on it, - * activate/deactivate roles depending on the date (useful to plan holidays, etc) - * get a quick overview of roles and the related user accounts. - -That way you make clear the different responsabilities within a company, and -are able to add and update user accounts in a scalable and reliable way. - Configuration ============= -To configure this module, you need to go to *Configuration / Users / Roles*, -and create a new role. From there, you can add groups to compose your role, -and then associate users to it. - -You can also define default roles for a new user by editing the user called -"Default User". - -Roles: - -.. image:: /base_user_role/static/description/roles.png - -Add groups: - -.. image:: /base_user_role/static/description/role_groups.png - -Add users (with dates or not): - -.. image:: /base_user_role/static/description/role_users.png - Bug Tracker =========== -Bugs are tracked on `GitHub Issues -`_. In case of trouble, please -check there if your issue has already been reported. If you spotted it first, -help us smash it by providing detailed and welcomed feedback. Credits ======= -Images ------- - -* Oxygen Team: `Icon `_ (LGPL) - Contributors ------------ -* Sébastien Alix -* Duc, Dao Dong (https://komit-consulting.com) - -Do not contact contributors directly about support or help with technical issues. Maintainer ---------- diff --git a/base_user_role/__manifest__.py b/base_user_role/__manifest__.py index 6ee7c64f..2d2173d1 100644 --- a/base_user_role/__manifest__.py +++ b/base_user_role/__manifest__.py @@ -3,11 +3,11 @@ { 'name': 'User roles', - 'version': '11.0.1.0.1', + 'version': '12.0.1.0.0', 'category': 'Tools', 'author': 'ABF OSIELL, Odoo Community Association (OCA)', 'license': 'AGPL-3', - 'maintainer': 'ABF OSIELL', + 'maintainers': ['ABF OSIELL', 'jcdrubay'], 'website': 'http://www.osiell.com', 'depends': [ 'base', @@ -20,5 +20,4 @@ 'views/user.xml', ], 'installable': True, - 'auto_install': False, } diff --git a/base_user_role/models/role.py b/base_user_role/models/role.py index 500863ee..cf061178 100644 --- a/base_user_role/models/role.py +++ b/base_user_role/models/role.py @@ -19,14 +19,16 @@ class ResUsersRole(models.Model): readonly=True, string="Associated group") line_ids = fields.One2many( comodel_name='res.users.role.line', - inverse_name='role_id', string="Users") + inverse_name='role_id', string="Role lines") user_ids = fields.One2many( - comodel_name='res.users', string="Users", + comodel_name='res.users', string="Users list", compute='_compute_user_ids') group_category_id = fields.Many2one( related='group_id.category_id', default=lambda cls: cls.env.ref( - 'base_user_role.ir_module_category_role').id) + 'base_user_role.ir_module_category_role').id, + string="Associated category", + help="Associated group's category") @api.multi @api.depends('line_ids.user_id') @@ -86,11 +88,11 @@ class ResUsersRoleLine(models.Model): for role_line in self: role_line.is_enabled = True if role_line.date_from: - date_from = fields.Date.from_string(role_line.date_from) + date_from = role_line.date_from if date_from > today: role_line.is_enabled = False if role_line.date_to: - date_to = fields.Date.from_string(role_line.date_to) + date_to = role_line.date_to if today > date_to: role_line.is_enabled = False diff --git a/base_user_role/readme/CONFIGURE.rst b/base_user_role/readme/CONFIGURE.rst new file mode 100644 index 00000000..1a6be35a --- /dev/null +++ b/base_user_role/readme/CONFIGURE.rst @@ -0,0 +1,18 @@ +To configure this module, you need to go to *Configuration / Users / Roles*, +and create a new role. From there, you can add groups to compose your role, +and then associate users to it. + +You can also define default roles for a new user by editing the user called +"Default User". + +Roles: + +.. image:: /base_user_role/static/description/roles.png + +Add groups: + +.. image:: /base_user_role/static/description/role_groups.png + +Add users (with dates or not): + +.. image:: /base_user_role/static/description/role_users.png diff --git a/base_user_role/readme/CONTRIBUTORS.rst b/base_user_role/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..4510b413 --- /dev/null +++ b/base_user_role/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* Sébastien Alix +* Duc, Dao Dong (https://komit-consulting.com) +* Jean-Charles Drubay (https://komit-consulting.com) + +Do not contact contributors directly about support or help with technical issues. diff --git a/base_user_role/readme/CREDITS.rst b/base_user_role/readme/CREDITS.rst new file mode 100644 index 00000000..e4408914 --- /dev/null +++ b/base_user_role/readme/CREDITS.rst @@ -0,0 +1,4 @@ +Images +------ + +* Oxygen Team: `Icon `_ (LGPL) diff --git a/base_user_role/readme/DESCRIPTION.rst b/base_user_role/readme/DESCRIPTION.rst new file mode 100644 index 00000000..70f94197 --- /dev/null +++ b/base_user_role/readme/DESCRIPTION.rst @@ -0,0 +1,19 @@ +This module was written to extend the standard functionality regarding users +and groups management. +It helps creating well-defined user roles and associating them to users. + +It can become very hard to maintain a large number of user profiles over time, +juggling with many technical groups. For this purpose, this module will help +you to: + + * define functional roles by aggregating low-level groups, + * set user accounts with the predefined roles (roles are cumulative), + * update groups of all relevant user accounts (all at once), + * ensure that user accounts will have the groups defined in their roles + (nothing more, nothing less). In other words, you can not set groups + manually on a user as long as there is roles configured on it, + * activate/deactivate roles depending on the date (useful to plan holidays, etc) + * get a quick overview of roles and the related user accounts. + +That way you make clear the different responsabilities within a company, and +are able to add and update user accounts in a scalable and reliable way. diff --git a/base_user_role/readme/ROADMAP.rst b/base_user_role/readme/ROADMAP.rst new file mode 100644 index 00000000..ec0960b6 --- /dev/null +++ b/base_user_role/readme/ROADMAP.rst @@ -0,0 +1,4 @@ +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. diff --git a/base_user_role/readme/USAGE.rst b/base_user_role/readme/USAGE.rst new file mode 100644 index 00000000..34a2fe1f --- /dev/null +++ b/base_user_role/readme/USAGE.rst @@ -0,0 +1,13 @@ +[ This file must be present and contains the usage instructions + for end-users. As all other rst files included in the README, + it MUST NOT contain reStructuredText sections + only body text (paragraphs, lists, tables, etc). Should you need + a more elaborate structure to explain the addon, please create a + Sphinx documentation (which may include this file as a "quick start" + section). ] + +To use this module, you need to: + +#. Go to Configuration / Users / Users choose user and set Roles: + +.. image:: /base_user_role/static/description/user_form.png diff --git a/base_user_role/static/description/user_form.png b/base_user_role/static/description/user_form.png new file mode 100644 index 00000000..78e6a1cf Binary files /dev/null and b/base_user_role/static/description/user_form.png differ diff --git a/base_user_role/tests/test_user_role.py b/base_user_role/tests/test_user_role.py index 18535ea3..0b1ae08b 100644 --- a/base_user_role/tests/test_user_role.py +++ b/base_user_role/tests/test_user_role.py @@ -28,13 +28,16 @@ class TestUserRole(TransactionCase): self.role1_id = self.role_model.create(vals) # ROLE_2 + # Must have group_user in order to have sufficient groups. Check: + # github.com/odoo/odoo/commit/c3717f3018ce0571aa41f70da4262cc946d883b4 self.group_multi_currency_id = self.env.ref( 'base.group_multi_currency') self.group_settings_id = self.env.ref('base.group_system') vals = { 'name': "ROLE_2", 'implied_ids': [ - (6, 0, [self.group_multi_currency_id.id, + (6, 0, [self.group_user_id.id, + self.group_multi_currency_id.id, self.group_settings_id.id])], } self.role2_id = self.role_model.create(vals)