iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Odoo

Odoo開發系列 第 6

[Day 6] odoo14 - Security(權限)介紹

  • 分享至 

  • xImage
  •  

昨天帶大家建立完model以及需要的欄位後,今天要來換講建立權限的部分

建立完model後,要在ir.model.access.csv建立model的權限,使用者可否對model進行新增、刪除、修改、查詢的動作。
範例如下:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_idx_repair,access_idx_repair,model_idx_repair,base.group_user,1,1,1,1
access_idx_repair_detail,access_idx_repair_detail,model_idx_repair_detail,base.group_user,1,1,1,1
  • id:權限的id
  • name:權限的名稱
  • model_id:要設定權限的Model,需要以'model_' + model名稱來命名
  • group_id:群組的名稱,設定為base.group_user的話,即可讓所有使用者讀取
  • perm_read:可否讀取
  • perm_write:可否修改
  • perm_create:可否新增
  • perm_unlink:可否刪除

如果model需要對權限做其他設定,可以在security.xml來做設定
範例如下:

<record id="module_category_repair" model="ir.module.category">
    <field name="name">維修管理系統</field>
</record>

<record id="group_employee" model="res.groups">
    <field name="name">主檔-員工資料</field>
    <field name="category_id" ref="module_category_repair"/>
</record>

<record id="group_product_contract" model="res.groups">
    <field name="name">主檔-客戶產品</field>
    <field name="category_id" ref="module_category_repair"/>
</record>

在畫面上的呈現如下:
https://ithelp.ithome.com.tw/upload/images/20230921/20163263Vwvv8krwZE.png

根據範例可以發現權限中有兩種model可以設定,ir.module.category為類別,res.groups為群組,群組會隸屬於類別之下。需建立一個類別後再新增群組,方便日後進行管理。

記得權限建立好後需要將上面兩個檔案加到__manifest__.py的data中,才可在系統中看到新增的權限。

{
    'name': 'odoo14 idx repair',
    'version': '14.0.1',
    'category': 'Uncategorized',
    'summary': '維修管理模組',
    'description': '''
    2023鐵人賽-維修管理模組
    ====================
    ''',
    'author': "Eileen",
    'depends': ['base'],
    
    'data': [
        'security/security.xml',
        'security/ir.model.access.csv',
    ],

    'installable': True,
    'application': True,
    'auto_install': False,
}

上一篇
[Day 5] odoo14 - 建立基本model及欄位(二)
下一篇
[Day 7] odoo14 - view種類介紹
系列文
Odoo開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言