Odoo安裝教程7-創建新的插件模塊第六講

添加權限組

普通用戶在使用功能前需獲得相應的權限。 Odoo 中使用安全組來實現,權限授予組,組中分配用戶。 Odoo 應用通常有兩個組:針對普通用戶的用戶組,包含額外應用配置權限的管理員組。
下面我們就來添加這兩個安全組。權限安全相關的文件通常放在模塊下/security 子目錄中,這裏我們創建 security/library_security.xml 文件來進行權限定義。安全組使用分類來更好地組織關聯應用。所以第一步我們在 ir.module.category 模型中創建針對圖書應用的分類:

<?xml version="1.0" ?>
<odoo>
<record id="module_library_category" model="ir.module.category">
<field name="name">Library</field>
</record>
</odoo>

下一步,我們要添加兩個安全組,首先添加用戶組。在以上結束標籤前添加如下 XML 代碼塊:

<!-- Library User Group -->
<record id="library_group_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="module_library_category" />
<field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
</record>

記錄在 res.groups 模型中創建,添加了三個字段:
⚫ name:組名
⚫ category_id:關聯應用,這是一個關聯字段,因此使用了 ref 屬性來通過 XML ID 連接已
創建的分類
⚫ implied_ids:這是一個 one-to-many 關聯字段,包含一系列組來對組內用戶生效。這裏使用了一個特殊語法,在本系列文章第五篇 Odoo 12 開發之導入、導出以及模塊數據中會進行介紹。我們使用了編號 4 來連接基本內部用戶組 base.group_user。
然後我們創建管理員組,授予用戶組的所有權限以及爲應用管理員保留的其它權限:

<!-- Library Manager Group -->
<record id="library_group_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="module_library_category" />
<field name="implied_ids" eval="[(4, ref('library_group_user'))]" />
<field name="users" eval="[
(4, ref('base.user_root')),
(4, ref('base.user_admin'))
]" />
</record>

像用戶組一樣,這裏也有 name, category_id 和 implied_ids , implied_ids 關聯了圖書用戶
組,以繼承其權限。還添加了一個 users 字段,讓管理員和內部 root 用戶自動成爲應用管理員。
“ 小貼士: 在 Odoo 老版本中, admin 管理員用戶同時也是 root 用戶。 Odoo 12 中有一個系統 root 用戶,在用戶列表中不顯示,僅在框架需要進行提權(sudo)時在內部使用。 admin 可以登入系統並應擁有所有功能的訪問權限,但不再像系統 root 用戶那樣可以繞過訪問限制。 ”同樣需要在聲明文件中添加該 XML 文件:

'data': [
'security/library_security.xml',
'views/library_menu.xml',
],

注意 library_security.xml 加在 library_menu.xml 文件之前,數據文件的加載順序非常重要,因爲我們只能引用已經定義過的標識符。菜單項經常引用到安全組,所以建議將安全組定義文件放到菜單和視圖文件之前。

更多教程:https://www.erpdaxue.cn/odoo/odoo-teach/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章