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
1=== modified file 'bin/addons/base/ir/ir_rule.py'
2--- bin/addons/base/ir/ir_rule.py 2011-03-02 11:08:16 +0000
3+++ bin/addons/base/ir/ir_rule.py 2011-05-09 10:31:04 +0000
4@@ -51,13 +51,26 @@
5 res[rule.id] = False
6 return res
7
8+ def _store_get_rule_ids(self, cr, uid, ids, context=None):
9+ groups = self.pool.get('res.groups')
10+ result = set()
11+ for g in groups.browse(cr, uid, ids, context):
12+ result.update(r.id for r in g.rule_groups)
13+ return result
14+
15+
16 def _check_model_obj(self, cr, uid, ids, context=None):
17 return not any(isinstance(self.pool.get(rule.model_id.model), osv.osv_memory) for rule in self.browse(cr, uid, ids, context))
18
19 _columns = {
20 'name': fields.char('Name', size=128, select=1),
21 'model_id': fields.many2one('ir.model', 'Object',select=1, required=True),
22- '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"),
23+ 'global': fields.function(_get_value, method=True, string='Global', type='boolean',
24+ store={
25+ _name: (lambda s,c,u,i,ctx=None: i, ['groups'], 10),
26+ 'res.groups': (_store_get_rule_ids, ['rule_groups'], 10),
27+ },
28+ help="If no group is specified the rule is global and applied to everyone"),
29 'groups': fields.many2many('res.groups', 'rule_group_rel', 'rule_group_id', 'group_id', 'Groups'),
30 'domain_force': fields.text('Domain'),
31 'domain': fields.function(_domain_force_get, method=True, string='Domain', type='text'),
32
33=== modified file 'bin/addons/base/res/res_user.py'
34--- bin/addons/base/res/res_user.py 2011-05-06 09:37:04 +0000
35+++ bin/addons/base/res/res_user.py 2011-05-09 10:31:04 +0000
36@@ -38,7 +38,7 @@
37 'name': fields.char('Group Name', size=64, required=True),
38 'model_access': fields.one2many('ir.model.access', 'group_id', 'Access Controls'),
39 'rule_groups': fields.many2many('ir.rule', 'rule_group_rel',
40- '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'),
43 'comment' : fields.text('Comment',size=250),
44 }