[FIX] Groups if removed, should remove relavent access rights too
authorJay (Open ERP) <jvo@tinyerp.com>
Mon, 26 Apr 2010 15:50:11 +0000 (21:20 +0530)
committerJay (Open ERP) <jvo@tinyerp.com>
Mon, 26 Apr 2010 15:50:11 +0000 (21:20 +0530)
lp bug: https://launchpad.net/bugs/540840 fixed

bzr revid: jvo@tinyerp.com-20100426155011-kt0peuj55w11m9os

bin/addons/base/ir/ir_model.py
bin/addons/base/res/res_user.py

index d870c8a..0875d2a 100644 (file)
@@ -279,7 +279,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'),
index 823e04b..9a4f00d 100644 (file)
@@ -267,9 +267,16 @@ users()
 
 class groups2(osv.osv): ##FIXME: Is there a reason to inherit this object ?
     _inherit = 'res.groups'
+    
     _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()