c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #22889
[Bug 766982] Re: If you associate 2 or more groups to an ir.rule, rules are not correctly applied
> From your scenario you have added a groups in your rules So
> the rules are combined with the "OR" operator not with the
> "AND" operator.
Incomplete.
In my scenario, 'rule2' has 2 groups: 'group1' and 'group2'.
But 'group1' has 2 rules: 'rule1' and 'rule2'. My user ('test') belongs to 'group1' only.
So, since "Group-specific rules are combined together with a logical AND operator", for user 'test', 'rule1' and 'rule2' should be combined with AND.
OR operator should be used if 'test' belonged to both 'group1' and 'group2'.
** Changed in: openobject-server
Status: Invalid => New
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/766982
Title:
If you associate 2 or more groups to an ir.rule, rules are not
correctly applied
Status in OpenERP Server:
New
Bug description:
Steps:
1- create new db with only 'base' module
2- create 2 groups: 'group1' and 'group2'
3- create 2 rules on res.partner:
- 'rule1' with domain: [('name','=','rule1')] and groups: 'group1'
- 'rule2' with domain: [('ref','=','rule2')] and groups: 'group1' and 'group2'
4- create user 'test' and associate to 'group1'
5- create 2 partners:
- with name: 'rule1' and ref: 'rule2'
- with name: 'test' and ref: 'rule2'
6- login with user 'test'
7- you'll see both of partners
This is wrong because since the user 'test' belongs to 'group1' and this group contains 2 rules, these rules must be combined with AND operator. So, user 'test' should see first partner only.
This happens because second rule and both 2 rules are combined with OR:
((rule1 AND rule2) OR rule2)
I suppose the problem to be connected with line 117 of ir_rule.py: http://bazaar.launchpad.net/~openerp/openobject-server/6.0/view/3404/bin/addons/base/ir/ir_rule.py#L115
Instead of adding every group of the rule, you should check whether the user belongs to the group that will be added
References