odoo权限

https://www.odoogo.com/manual/odoo-dev-doc/701ffd98

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_todo_todo,todo.todo,model_todo_task,,1,1,1,1
access_todo_todo2,todo.todo2,model_todo_category,,1,1,1,1

id 唯一标识,模块内唯一
name 记录名称,也是唯一
model_id 访问的模型
group_id 用户组
perm 读 写 创建 删除

https://www.kancloud.cn/yangxunbo/odoo10dev/320704

每个用户只能看到自己的请假单

    <!--record 规则 -->
    <record id="rule_user_qingjia_qingjiadan" model="ir.rule">
      <field name="name">自己编辑自己的请假单</field>
      <field name="model_id" ref="model_qingjia_qingjiadan" />
      <field name="domain_force">[('create_uid','=',user.id)]</field>
      <field name="groups" eval="[(4,ref('base.group_user'))]"/>
    </record>

odoo三级权限

第一级是access rule,即表级权限,控制用户组对表的访问权限,一般是用security/ir.model.access.csv文件来管理

第二级是record rule,即行级权限,控制用户组对表中数据行的访问权限,可以写在views/views.xml文件中

第三级权限,是字段级权限,之后再学习。

https://www.cnblogs.com/Kingfan1993/p/10784031.html

组权限
用户权限

权限案例

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="0">


        <record id="module_category_my_task" model="ir.module.category">
            <field name="name">请假</field>
            <field name="description">请假app</field>
            <field name="sequence">1</field>
        </record>
        <!--创建应用权限分组-->

        <!--员工组-->
        <record id="my_task_employee" model="res.groups">
            <field name="name">员工</field>
            <!--category_id关联的应用权限分类-->
            <field name="category_id" ref="module_category_my_task"/>
            <!--继承基础员工组,添加的员工会自动添加到基础员工中去-->
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>

        <record id="my_task_manage" model="res.groups">
            <field name="name">管理员</field>
            <!--category_id关联的应用权限分类-->
            <field name="category_id" ref="module_category_my_task"/>
            <!--默认加入权限组的用户,base.user_root指系统管理员用户-->
            <field name="users" eval="[(4, ref('my_task_employee'))]"/>
            <field name="users" eval="[
                    (4, ref('base.user_root')),
                    (4, ref('base.user_admin'))
                ]"/>
        </record>

        <record id="qingjia_user_rule" model="ir.rule">
            <field name="name">员工访问</field>
            <!--model_id  ref,many2one到模型的id,model_表名-->
            <field name="model_id" ref="model_qingjia_qingjiadan"/>
            <!--domain_force过滤条件,订单销售人id是当前登录用户的id,或者没销售的订单-->
            <field name="domain_force">[('create_uid','=',user.id)]</field>
            <!--指定是哪个组-->
            <field name="groups" eval="[(4,ref('my_task_employee'))]"/>
        </record>
        <record id="qingjia_manage_rule" model="ir.rule">
            <field name="name">管理员访问</field>
            <field name="model_id" ref="model_qingjia_qingjiadan"/>
            <field name="domain_force">[(1,'=',1)]</field>
            <field name="groups" eval="[(4,ref('my_task_manage'))]"/>
        </record>

    </data>
</odoo>
posted @ 2020-06-03 18:43  zx125  阅读(283)  评论(0编辑  收藏  举报