第六節 ODOO開發教程之規則許可權
阿新 • • 發佈:2021-02-04
技術標籤:odooodoo教程pythonpostgresqljavascript其他linux
點選跳轉進入免費課程(課程持續更新中…)
課件文件地址:點選跳轉
課程環境地址:點選跳轉 賬密:testuser
gitee程式碼地址:點選跳轉(分支learning_odoo12)
微信公眾號二維碼:
第五節內容補充:
orm使用create,write,unlink,update
1 建立許可權
<odoo>
<data>
<record model="ir.module.category" id="module_category" >
<field name="name">疫情記錄</field>
<field name="description">疫情記錄</field>
<field name="sequence">1</field>
</record>
<!-- 1.PMO角色:全域性可編輯、可檢視; -->
<record model="res.groups" id="group_PMO">
<field name="category_id" ref="module_category"/>
<field name="name">PMO</field>
<field name="implied_ids" eval="[(4, ref('hr_timesheet.group_timesheet_manager' )),(4, ref('project.group_project_manager')),(4, ref('base.group_user'))]"/>
<field name="comment">PMO角色:全域性可編輯、可檢視;</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
</data>
</odoo>
使用ir.module.category來定義許可權組的分類
res.groups模型,定義許可權角色
繼承的許可權implied_ids
users 預設指定
ref屬性,其值必須是有效的 外部id,它將被查詢並設定為該欄位的值。
eval 屬性提供的Python表示式並將結果設定為該欄位的值。
2 表級別許可權
security/ir.model.access.csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
唯一識別符號,名稱,模型,許可權,1/0,1/0,1/0,1/0
3 記錄級別許可權(記錄規則)
<record id="timesheet_group_timesheet_readonly_all_views" model="ir.rule">
<field name="name">全域性只讀</field>
<field name="model_id" ref="model_account_analytic_line"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('group_timesheet_readonly'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="False"/>
</record>
- name,記錄規則名稱
- model_id,模型id,ref可以理解為一個函式用來獲取模型的id
- domain_force,記錄規則檢視條件
- groups,指定許可權,可以是多個
- perm_read,讀
- perm_write,寫
- perm_create,新增
- perm_unlink,刪除
4 選單許可權
<!-- 跳轉到markdown-->
<menuitem name="疫情記錄"
id="sec_epidemic_record_menu"
parent="epidemic_record_menu_root"
action="epidemic_record_act_window"
groups="base.group_user"
sequence="10"/>
base.group_user, base.group_no_one;
標籤menuitem 有一個groups屬性,可以是一個或多個許可權角色,多個許可權角色使用逗號分隔
對擁有groups許可權組的人可見
5 欄位許可權
field標籤有一個groups屬性,可以是一個或多個許可權角色,多個許可權角色使用逗號分隔
對擁有groups許可權組的人可見