odoo的权限管理

odoo的权限管理

 

 xml的内容编写

<?xml version="1.0" encoding="UTF-8" ?>

<odoo>
<!--    基于表的权限控制-->
    <data>

        <record model="ir.module.category" id="epidemic_record.module_category">
            <field name="name">疫情记录</field>
            <field name="description">疫情记录</field>
        </record>

        <record id="epidemic_record_table_security_base" model="res.groups">
<!--            归属于哪个标签-->
            <field name="category_id" ref="epidemic_record.module_category"/>
            <field name="name">初级权限</field>
<!--            基于哪个用户组进行控制:base.group_user这几个是最基础的用户组-->
            <field name="implied_ids" eval="[(4,ref(‘base.group_user‘))]"/>
            <field name="comment">疫情记录初级权限可以查看辅助填报人或者填报人包含当前登录账户的记录</field>
<!--            这里赋予指定用户权限-->
            <field name="users" eval="[(4,ref(‘base.user_root‘)),(4,ref(‘base.user_admin‘))]"/>
        </record>


        <record id="epidemic_record_table_security_admin" model="res.groups">
            <field name="category_id" ref="epidemic_record.module_category"/>
            <field name="name">管理员</field>
            <field name="implied_ids" eval="[(4,ref(‘base.group_user‘))]"/>
            <field name="comment">管理员拥有所有权限</field>
            <field name="users" eval="[(4,ref(‘base.user_root‘)),(4,ref(‘base.user_admin‘))]"/>
        </record>

    </data>

<!--    记录的权限控制-->
<!--
    noupdate="1"的作用是只会在安装模块的时候才会创建一次权限记录,在升级或者更新的时候不会在次创建防止替换已修改的权限记录
    noupdate="0"不管是安装还是更新都会创建权限记录
-->
    <data noupdate="1">
        <record id="epidemic_record_row_security_base" model="ir.rule">
            <field name="name">疫情初级记录权限</field>
<!--            model_模型名称(注意把“.”全部换成“_”,否则会报错)-->
            <field name="model_id" ref="model_epidemic_record"/>
            <field name="domain_force">[‘|‘,(‘fuzhu_create_user_id‘,‘child_of‘,[user.id]),(‘create_user_id‘,‘=‘,user.id)]</field>
            <field name="groups" eval="[(4,ref(‘epidemic_record_table_security_base‘))]"/>
            <field name="perm_read" eval="True"/>
            <field name="perm_write" eval="False"/>
            <field name="perm_create" eval="False"/>
            <field name="perm_unlink" eval="False"/>
        </record>

    </data>


</odoo>

csv的内容编写

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
epidemic_record_base,epidemic_record_base,model_epidemic_record,epidemic_record_table_security_base,1,0,0,0
epidemic_record_admin,epidemic_record_admin,model_epidemic_record,epidemic_record_table_security_admin,1,1,1,1
id:权限ID,自定义,不能重复
name:权限名称,自定义
model_id:id:model_模型名称(注意把“.”全部换成“_”,否则会报错)
group_id:id 组名称 (模块.用户组名)
perm_read:读权限,1表示有权限,0表示没有权限
perm_write:写权限,1表示有权限,0表示没有权限
perm_create:新建权限,1表示有权限,0表示没有权限perm_unlink:删除权限,1表示有权限,0表示没有权限

菜单权限

<!--    菜单配置
    groups 哪些用户可以拥有这个菜单的权限,可以有多个用","分割
    -->

    <menuitem name="疫情记录"
              id="sec_epidemic_record_menu"
              parent="epidemic_record_menu_root"
              action="epidemic_record_act_window"
              sequence="10"
              groups="epidemic_record_table_security_admin,epidemic_record_table_security_base"
    />

字段权限

<!--                            groups 哪些用户可以拥有这个菜单的权限,可以有多个用","分割-->
                            <field name="note" groups="epidemic_record_table_security_admin,epidemic_record_table_security_base"/>
                        

 

odoo的权限管理

上一篇:LeetCode226|剑指Offer27.二叉树的镜像


下一篇:容斥原理(基本形式及其证明)