Lập trình Odoo

Security trong odoo

Written by anhhien

Security giúp chúng ta bảo mật app cơ bản dự trên model .Ở mức sau hơn ta sẽ sử dụng domain ở phần sau nhé :

'data':[
        'security/user_group.xml',
        'security/ir.model.access.csv',

Nhớ là theo quy tắc ở trên đầu và user_group ở trên model.access.csv nhé

Đầu tiên chúng ta sẽ phải tạo các group người dùng

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
    <data>
        <!--Hiện thị trong phần setting người dùng lệnh odoo_security_category-->
        <record id="app1_category" model="ir.module.category">
            <field name="name">App 1 Group</field>
            <field name="sequence" eval="3"/>
        </record>
        <!--nhóm người dùng dùng lệnh odoo_security_group-->
        <record id="app1_groups_user" model="res.groups">
            <field name="name">User</field>
            <field name="category_id" ref="app1_category"/>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>
        <!--Nhóm quản trị-->
        <record id="app1_groups_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="app1_category"/>
            <field name="implied_ids" eval="[(4, ref('app1_groups_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_admin')),(4, ref('base.user_root'))]"/>
        </record>

    </data>
</odoo>

Để tạo 2 groups người dùng là user và manager :

<record id="app1_category" model="ir.module.category"> 
     <field name="name">App 1 Group</field> <field name="sequence" eval="3"/> 
</record>

Mục này sẽ hiển thị ở thiết lập giúp admin sử lý phân quyền cho người dùng trong hệ thống

 

Trong đó các mục tiếp theo sẽ chèn thêm các mục người dùng vào hệ thống

<record id="app1_groups_user" model="res.groups">
            <field name="name">User</field>
            <field name="category_id" ref="app1_category"/>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>
        <!--Nhóm quản trị-->
        <record id="app1_groups_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="app1_category"/>
            <field name="implied_ids" eval="[(4, ref('app1_groups_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_admin')),(4, ref('base.user_root'))]"/>
        </record>

Tiếp theo chúng ta tạo file ir.model.access.csv với các trường

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

Lấy model_id ở : mục kĩ thuật -> External Identifier :

và group_id chúng ta sẽ lấy ở đây 

Như vậy chúng ta đã thêm mục security thành công restart server và update ứng dụng để áp dụng thay đổi nhé bạn

About the author

anhhien

Leave a Comment