From c500bb048465bb74724b04205a62bb342a59ba30 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 15 Sep 2020 12:27:17 +0000 Subject: [PATCH] [IMP] core: prevent deletion of a group with ACLs or record rules This simply makes it less easy to screw up a database by preventing all users to do their daily tasks. closes odoo/odoo#57776 X-original-commit: 665a795fc1b199f4f17cc9f1257d1b36b6276e6f Signed-off-by: Raphael Collet (rco) Co-authored-by: Florent de Labarre --- odoo/addons/base/models/ir_model.py | 2 +- odoo/addons/base/models/ir_rule.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index 5b5d9bb99d9..a0e58627147 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -1624,7 +1624,7 @@ class IrModelAccess(models.Model): name = fields.Char(required=True, index=True) active = fields.Boolean(default=True, help='If you uncheck the active field, it will disable the ACL without deleting it (if you delete a native ACL, it will be re-created when you reload the module).') model_id = fields.Many2one('ir.model', string='Model', required=True, index=True, ondelete='cascade') - group_id = fields.Many2one('res.groups', string='Group', ondelete='cascade', index=True) + group_id = fields.Many2one('res.groups', string='Group', ondelete='restrict', index=True) perm_read = fields.Boolean(string='Read Access') perm_write = fields.Boolean(string='Write Access') perm_create = fields.Boolean(string='Create Access') diff --git a/odoo/addons/base/models/ir_rule.py b/odoo/addons/base/models/ir_rule.py index 519468f63c7..025f65437d6 100644 --- a/odoo/addons/base/models/ir_rule.py +++ b/odoo/addons/base/models/ir_rule.py @@ -20,7 +20,7 @@ class IrRule(models.Model): name = fields.Char(index=True) active = fields.Boolean(default=True, help="If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).") model_id = fields.Many2one('ir.model', string='Model', index=True, required=True, ondelete="cascade") - groups = fields.Many2many('res.groups', 'rule_group_rel', 'rule_group_id', 'group_id') + groups = fields.Many2many('res.groups', 'rule_group_rel', 'rule_group_id', 'group_id', ondelete='restrict') domain_force = fields.Text(string='Domain') perm_read = fields.Boolean(string='Apply for Read', default=True) perm_write = fields.Boolean(string='Apply for Write', default=True)