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

Hi guys,


I have a strange issue regarding a new security rule that I've added.
Under __openerp__.py I added a dependency to the following modules:

'depends': ['website_portal', 'project_issue', 'website_project_issue', 'project']


I then created a new CSV for the security rules (named ir.model.access.csv) with the following rule:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink

"access_project_project_public_access","Public user access to project.project","model_project_project","base.group_portal",1,1,1,0

When I now try to install / update the module I will get the following error:

Exception: Module loading my_custom_module failed: file my_custom_module/security/ir.model.access.csv could not be processed:

Line 4 : No matching record found for external id 'model_project_project' in field 'Object'

Why do I get this? I have a dependency on the project module, it is installed and a very similar security rule for project.issue works fine:

access_project_issue_public_access","Public user access to project.issue","model_project_issue","base.group_portal",1,1,1,


So what is wrong with this?

Thanks,
Yenthe

아바타
취소
베스트 답변

If the model it's not defined in the same module of the ir.model.access.csv then you need to specify the module when defining the security line,

like in the module portal_project:

access_project,project,project.model_project_project,base.group_portal,1,0,0,0

For your case is the same:

"access_project_project_public_access","Public user access to project.project","project.model_project_project","base.group_portal",1,1,1,0

Also the "..." are not necessary, the separator is the comma

아바타
취소
작성자

Wow, that was a really stupid mistake there, sorry.. @Axel what I do find strange is that my other security rule for the model project.issue is working fine without adding project. in front of it, why is this the case? Could this be because I have an inherit of project.issue in one of my Python files?

That's the only reason that I could imagine for that

작성자

Interesting that this one option slipped through, I'm going to guess it comes because of the inherit. This set me on the wrong side and never made me think about adding the external module name in front of it. Thank you Axel.

I found myself, in the exact situation. I found success with an inherited module and could not for the life of me understand why other modules (not inherited) would not allow me to alter their permissions. Great job Axel

베스트 답변

I had same problem and I solve it by put the new python file name I created in models/__init__

from . import "add your py file here"

ex: 

from . import appointment

which I forget to do in first time ,,

so give it a try


아바타
취소
베스트 답변

Be careful about the white-space between comma, there must not be any white-space. like this

#incorrect access_hospital_patient,access.hospital.patient, model_hospital_patient, ,1,1,1,1

#correct access_hospital_patient,access.hospital.patient,model_hospital_patient,,1,1,1,1

아바타
취소
관련 게시물 답글 화면 활동
0
4월 16
3228
0
12월 21
2208
3
9월 19
7357
3
7월 19
4675
1
7월 17
5675