Files
Martin Trigaux 04587e1916 [IMP] base_setup: enable disabling default user rights propagation
When installing a new module, the access of the Default Template User
is propagated to any existing employee (introduced at
aefb05eb497a8a16a). This can be problematic in companies that don't
want all their employees to become manager by default.  Allow to
disable this behaviour in a settings.

This is the version of the patch targetting stable version that is not
configurable through the interface, manually creating an ICP
base_setup.default_user_rights_minimal=True as the way to change the
behaviour.

Closes odoo/odoo#149224
Task-id 3685856

closes odoo/odoo#154816

X-original-commit: 70f66f147bb0c133be6ae3fd2b11438afe2366a5
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-02-21 11:28:00 +00:00

73 lines
2.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests.common import TransactionCase
class TestResConfig(TransactionCase):
def setUp(self):
super(TestResConfig, self).setUp()
self.user = self.env.ref('base.user_admin')
self.company = self.env['res.company'].create({'name': 'oobO'})
self.user.write({'company_ids': [(4, self.company.id)], 'company_id': self.company.id})
Settings = self.env['res.config.settings'].with_user(self.user.id)
self.config = Settings.create({})
def test_multi_company_res_config_group(self):
# Add a group to the template user
# 1/ default_user_rights_minimal=False All the existing and new users should be
# added to the group
# 2/ default_user_rights_minimal=True The changes should not be reflected
company = self.env['res.company'].create({'name': 'My Last Company'})
partner = self.env['res.partner'].create({
'name': 'My User'
})
user = self.env['res.users'].create({
'login': 'My User',
'company_id': company.id,
'company_ids': [(4, company.id)],
'partner_id': partner.id,
})
group_multi_currency = self.env.ref('base.group_multi_currency')
# Sanity check
self.assertTrue(user not in group_multi_currency.users)
# Propage new groups (default)
self.env['ir.config_parameter'].sudo().set_param("base_setup.default_user_rights_minimal", False)
# i.e. a group is added to the template user the installation of a module
self.env.ref('base.default_user').groups_id |= group_multi_currency
self.assertTrue(user in self.env.ref('base.group_multi_currency').sudo().users)
new_partner = self.env['res.partner'].create({'name': 'New User'})
new_user = self.env['res.users'].create({
'login': 'My First New User',
'company_id': company.id,
'company_ids': [(4, company.id)],
'partner_id': new_partner.id,
})
self.assertTrue(new_user in group_multi_currency.users)
(user | self.env.ref('base.default_user')).groups_id -= group_multi_currency
# Again but invert the settings
self.env['ir.config_parameter'].sudo().set_param("base_setup.default_user_rights_minimal", True)
self.env.ref('base.default_user').groups_id |= group_multi_currency
self.assertTrue(user not in group_multi_currency.users)
new_partner = self.env['res.partner'].create({'name': 'New User'})
new_user = self.env['res.users'].create({
'login': 'My Second New User',
'company_id': company.id,
'company_ids': [(4, company.id)],
'partner_id': new_partner.id,
})
self.assertTrue(new_user not in group_multi_currency.users)