diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index f6412e85b75ab17b7c3997c3634b831bdd9892a9..40c12461bc8ffd998f818dc5b3325fa8d4838e52 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -286,7 +286,7 @@ class ir_model_access(osv.osv): _columns = { 'name': fields.char('Name', size=64, required=True), 'model_id': fields.many2one('ir.model', 'Object', required=True), - 'group_id': fields.many2one('res.groups', 'Group'), + 'group_id': fields.many2one('res.groups', 'Group', ondelete='cascade'), 'perm_read': fields.boolean('Read Access'), 'perm_write': fields.boolean('Write Access'), 'perm_create': fields.boolean('Create Access'), diff --git a/bin/addons/base/res/res_user.py b/bin/addons/base/res/res_user.py index 1542b58935cbca2fa3a573484e52210346df3c8c..e6175917b26a7368cc2011360fc12c2e36e02328 100644 --- a/bin/addons/base/res/res_user.py +++ b/bin/addons/base/res/res_user.py @@ -430,6 +430,13 @@ class groups2(osv.osv): ##FIXME: Is there a reason to inherit this object ? _columns = { 'users': fields.many2many('res.users', 'res_groups_users_rel', 'gid', 'uid', 'Users'), } + + def unlink(self, cr, uid, ids, context=None): + for record in self.read(cr, uid, ids, ['users'], context=context): + if record['users']: + raise osv.except_osv(_('Warning !'), _('Make sure you have no users linked with the group(s)!')) + return super(groups2, self).unlink(cr, uid, ids, context=context) + groups2() class res_config_view(osv.osv_memory):