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>