콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
4874 화면

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
3624
2
12월 22
6824
0
3월 15
3859
0
4월 24
1657
3
3월 22
17558