zoukankan      html  css  js  c++  java
  • 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.epidemic_record_table_security_admin"/>
  • 相关阅读:
    Docker 0x05: Dockerfile制作镜像
    Docker 0x04: Docker 基本使用
    Docker 0x03:Install Docker
    Docker 0x02: Docker生态
    Docker 0x01:Docker Container容器技术
    Axios发送AJAX请求
    Django学习之十三:提高页面开发效率减少冗余的模板系统
    javascript获取指定区间范围随机数
    完美解决eclipse编辑器中文字符过小问题
    mysql查询表所有列名,并用逗号分隔
  • 原文地址:https://www.cnblogs.com/wtil/p/15110392.html
Copyright © 2011-2022 走看看