Merge lp:~kangol/openobject-server/6.0-correct-global-irrule into lp:openobject-server/6.0

Proposed by Christophe Simonis (OpenERP)
Status: Merged
Merged at revision: 3491
Proposed branch: lp:~kangol/openobject-server/6.0-correct-global-irrule
Merge into: lp:openobject-server/6.0
Diff against target: 44 lines (+15/-2)
2 files modified
bin/addons/base/ir/ir_rule.py (+14/-1)
bin/addons/base/res/res_user.py (+1/-1)
To merge this branch: bzr merge lp:~kangol/openobject-server/6.0-correct-global-irrule
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+60353@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/addons/base/ir/ir_rule.py'
--- bin/addons/base/ir/ir_rule.py 2011-03-02 11:08:16 +0000
+++ bin/addons/base/ir/ir_rule.py 2011-05-09 10:31:04 +0000
@@ -51,13 +51,26 @@
51 res[rule.id] = False51 res[rule.id] = False
52 return res52 return res
5353
54 def _store_get_rule_ids(self, cr, uid, ids, context=None):
55 groups = self.pool.get('res.groups')
56 result = set()
57 for g in groups.browse(cr, uid, ids, context):
58 result.update(r.id for r in g.rule_groups)
59 return result
60
61
54 def _check_model_obj(self, cr, uid, ids, context=None):62 def _check_model_obj(self, cr, uid, ids, context=None):
55 return not any(isinstance(self.pool.get(rule.model_id.model), osv.osv_memory) for rule in self.browse(cr, uid, ids, context))63 return not any(isinstance(self.pool.get(rule.model_id.model), osv.osv_memory) for rule in self.browse(cr, uid, ids, context))
5664
57 _columns = {65 _columns = {
58 'name': fields.char('Name', size=128, select=1),66 'name': fields.char('Name', size=128, select=1),
59 'model_id': fields.many2one('ir.model', 'Object',select=1, required=True),67 'model_id': fields.many2one('ir.model', 'Object',select=1, required=True),
60 'global': fields.function(_get_value, method=True, string='Global', type='boolean', store=True, help="If no group is specified the rule is global and applied to everyone"),68 'global': fields.function(_get_value, method=True, string='Global', type='boolean',
69 store={
70 _name: (lambda s,c,u,i,ctx=None: i, ['groups'], 10),
71 'res.groups': (_store_get_rule_ids, ['rule_groups'], 10),
72 },
73 help="If no group is specified the rule is global and applied to everyone"),
61 'groups': fields.many2many('res.groups', 'rule_group_rel', 'rule_group_id', 'group_id', 'Groups'),74 'groups': fields.many2many('res.groups', 'rule_group_rel', 'rule_group_id', 'group_id', 'Groups'),
62 'domain_force': fields.text('Domain'),75 'domain_force': fields.text('Domain'),
63 'domain': fields.function(_domain_force_get, method=True, string='Domain', type='text'),76 'domain': fields.function(_domain_force_get, method=True, string='Domain', type='text'),
6477
=== modified file 'bin/addons/base/res/res_user.py'
--- bin/addons/base/res/res_user.py 2011-05-06 09:37:04 +0000
+++ bin/addons/base/res/res_user.py 2011-05-09 10:31:04 +0000
@@ -38,7 +38,7 @@
38 'name': fields.char('Group Name', size=64, required=True),38 'name': fields.char('Group Name', size=64, required=True),
39 'model_access': fields.one2many('ir.model.access', 'group_id', 'Access Controls'),39 'model_access': fields.one2many('ir.model.access', 'group_id', 'Access Controls'),
40 'rule_groups': fields.many2many('ir.rule', 'rule_group_rel',40 'rule_groups': fields.many2many('ir.rule', 'rule_group_rel',
41 'group_id', 'rule_group_id', 'Rules', domain=[('global', '=', False)]),41 'group_id', 'rule_group_id', 'Rules'),
42 'menu_access': fields.many2many('ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id', 'Access Menu'),42 'menu_access': fields.many2many('ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id', 'Access Menu'),
43 'comment' : fields.text('Comment',size=250),43 'comment' : fields.text('Comment',size=250),
44 }44 }