1. 程式人生 > 其它 >第六節 ODOO開發教程之規則許可權

第六節 ODOO開發教程之規則許可權

技術標籤: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許可權組的人可見