others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

ODOO开发教程之规则权限

访问量:1257 创建时间:2021-07-12

课 程 地 址:https://www.bilibili.com/video/BV1m54y167ET?from=search&seid=9421485045063291271 课 件 文 档 地 址:http://www.odoodev.cn/ 课 程 环 境 地 址:http://learning.odoodev.cn/, 账密:testuser gitee 代 码 地 址:https://gitee.com/bianjing123/learning_odoo12/tree/learning_odoo12/(分支learning_odoo12)

创建权限

<odoo>
<data>
<record model="ir.module.category" id="module_category">
            <field name="name">疫情记录</field>
            <field name="description">疫情记录</field>
            <field name="sequence">1</field>
        </record>
        <!--        1.PMO角色:全局可编辑、可查看; -->
        <record model="res.groups" id="group_PMO">
            <field name="category_id" ref="module_category"/>
            <field name="name">PMO</field>
            <field name="implied_ids" eval="[(4, ref('hr_timesheet.group_timesheet_manager')),(4, ref('project.group_project_manager')),(4, ref('base.group_user'))]"/>
            <field name="comment">PMO角色:全局可编辑、可查看;</field>
            <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
        </record>
</data>
</odoo>

使用ir.module.category来定义权限组的分类 res.groups模型,定义权限角色 继承的权限implied_ids users 默认指定 ref属性,其值必须是有效的 外部id,它将被查找并设置为该字段的值。 eval 属性提供的Python表达式并将结果设置为该字段的值。

表级别权限

security/ir.model.access.csv id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 唯一标识符,名称,模型,权限,1/0,1/0,1/0,1/0

记录级别权限(记录规则)

<record id="timesheet_group_timesheet_readonly_all_views" model="ir.rule">
        <field name="name">全局只读</field>
        <field name="model_id" ref="model_account_analytic_line"/>
        <field name="domain_force">[(1, '=', 1)]</field>
        <field name="groups" eval="[(4, ref('group_timesheet_readonly'))]"/>
        <field name="perm_read" eval="True"/>
        <field name="perm_write" eval="True"/>
        <field name="perm_create" eval="True"/>
        <field name="perm_unlink" eval="False"/>
    </record>

菜单权限

<!--    跳转到markdown-->
<menuitem name="疫情记录"
              id="sec_epidemic_record_menu"
              parent="epidemic_record_menu_root"
              action="epidemic_record_act_window"
               groups="base.group_user"
              sequence="10"/>

base.group_user, base.group_no_one; 标签menuitem 有一个groups属性,可以是一个或多个权限角色,多个权限角色使用逗号分隔 对拥有groups权限组的人可见

字段权限

field标签有一个groups属性,可以是一个或多个权限角色,多个权限角色使用逗号分隔 对拥有groups权限组的人可见

登陆评论: 使用GITHUB登陆