记录规则通过记录规则可以灵活地设置权限。规则保存在ir.rule模型表里,需要设置关联某个模型,关联很多组,访问权限控制和domian。通过domain_force过滤出的一些记录来执行约束。例子:经理只能删除状态为’cancel’的客户线索。注意向many2many字段添加值的写法。<record id=“delete_cancelled_only” model=“ir.rule”> <field name=“name”>Only cancelled leads may be deleted</field> <field name=“model_id” ref=“crm.model_crm_lead”/> <field name=“groups” eval="[(4, ref(‘base.group_sale_manager’))]"/> <field name=“perm_read” eval=“0”/> <field name=“perm_write” eval=“0”/> <field name=“perm_create” eval=“0”/> <field name=“perm_unlink” eval=“1” /> <field name=“domain_force”>[(‘state’,’=’,‘cancel’)]</field></record>例子:只有经理可以编辑课程,如果没有经理,任何人都可以编辑security.xml<record id=“group_manager” model=“res.groups”><field name=“name”>todufiledu / 管理员</field></record><record id=“only_responsible_can_modify” model=“ir.rule”><field name=“name”>只有经理可以编辑</field><field name=“model_id” ref=“model_todo_file”/><field name=“groups” eval="[(4, ref(’todufiledu.group_manager’))]"/><field name=“perm_read” eval=“0”/><field name=“perm_write” eval=“1”/><field name=“perm_create” eval=“0”/><field name=“perm_unlink” eval=“1”/><field name=“domain_force”> [’|’, (‘responsible_id’,’=’,False), (‘responsible_id’,’=’,user.id)]</field></record>odoo设置员工能看自己新建的记录规则 经理能看所有记录的规则增加2个组组1 能看全部记录组2 增加只能看自己的记录增加一个经理能看所有记录的规则关联模型 res.partner规则填入 [(1,’=’,1)]组加入 全部记录组增加一个员工能看自己记录的规则关联模型 res.partner规则 [’|’,(‘user_id’,’=’,user.id),(‘id’,’=’,user.partner_id.id)]组加入 只能看自己记录组