diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index 76cb2fb8fd6..b365aaa0dbd 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -31065,6 +31065,12 @@ msgstr "" #. module: base #. odoo-python +#: code:addons/base/models/res_users.py:0 +#, python-format +msgid "You cannot delete a group linked with a settings field." +msgstr "" + +#. module: base #: code:addons/base/models/res_partner.py:0 #, python-format msgid "" diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py index 31107c6394e..1195edf836e 100644 --- a/odoo/addons/base/models/res_users.py +++ b/odoo/addons/base/models/res_users.py @@ -153,6 +153,13 @@ class Groups(models.Model): def _check_one_user_type(self): self.users._check_one_user_type() + @api.ondelete(at_uninstall=False) + def _unlink_except_settings_group(self): + classified = self.env['res.config.settings']._get_classified_fields() + for _name, _groups, implied_group in classified['group']: + if implied_group.id in self.ids: + raise ValidationError(_('You cannot delete a group linked with a settings field.')) + @api.depends('category_id.name', 'name') def _compute_full_name(self): # Important: value must be stored in environment of group, not group1!