From d8672f0f3ae50ffae34c023df646e902428925a9 Mon Sep 17 00:00:00 2001
From: "Anup (OpenERP)" <ach@tinyerp.com>
Date: Tue, 11 May 2010 14:00:33 +0530
Subject: [PATCH] [FIX] Groups if removed, should remove relavent access rights
 too

bzr revid: ach@tinyerp.com-20100511083033-gbpbgiaopyesfzvv
---
 bin/addons/base/ir/ir_model.py  | 2 +-
 bin/addons/base/res/res_user.py | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py
index f6412e85b75a..40c12461bc8f 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 1542b58935cb..e6175917b26a 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):
-- 
GitLab