コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
4855 ビュー

I tried this with several security group settings but it's not working.

I created new group and added the user to this group, then I created a new security group with this domain= [('supplier', '=', False)] and put the group in. 

Nothing happends, it only works when I don't define a group and let this rule global.


How can I fix this ? Is this an Odoo Bug?

アバター
破棄

It should work, but can you explain exactly what you did?

最善の回答

This might be what is causing your problem.  Odoo 12 introduced a Record Rule that was designed to limit access to “private addresses”. It’s on the Contacts model (res.partner).

There are a pair of Record Rules:

1.  Allow access to “private addresses” for selected users

[('type', '=', 'private')]

2. Allow access for all users to other “non-private addresses”

['|', 
('type', '!=', 'private'),
('type', '=', False)
]

This Record Rule grants access to all internal users through the “Internal User” access group. This group is inherited by all application access groups.

The problem is that the second Record Rule effectively overrides other Record Rules for Contacts.

  • If you have created a Record Rules to limit access to suppliers:
    • a user who should not have access to suppliers would be granted access (because type will be blank).
      • They would also be able to access private addresses for customers and other types of contact!

That’s because access is granted if the conditions for ANY of the Group-specific rules are satisfied – and these can come from multiple access groups.

The solution is either to remove the two “private address” Record Rules or to replace them with several rules that cover all the combinations.

This would also explain why a global record rule would work.

https://odootricks.tips/record-rules

アバター
破棄
関連投稿 返信 ビュー 活動
0
10月 19
3600
2
12月 22
6740
0
3月 15
3840
0
4月 24
1616
3
3月 22
17516