odoo 权限管理
Security 安全
基于组的访问控制机制
组作为模型上的正常记录创建。res.groups,并通过菜单定义授予菜单访问权限。但是,即使没有菜单,对象仍然可以间接访问,因此必须为组定义实际的对象级权限(读、写、创建、取消链接)。它们通常通过模块内的CSV文件插入。还可以使用字段的Groups属性限制对视图或对象上特定字段的访问。
存取权
访问权限定义为模型的记录。ir.model.access。每个访问权限都关联到一个模型、一个组(或没有一个组进行全局访问)和一组权限:读、写、创建、取消链接。这种访问权限通常由以其模型命名的CSV文件创建:ir.model.access.csv.
在csv中 id:是unique 唯一的 name: 随便取名 model_id:id 写法如下 model_开头,加上你model模型的名称,比如model_demo_odoo_tutorial; class 的name 位demo.odoo.tuorial group:id 为安全权限模块下的xml文件下的 group的id. 后面就为crud权限 0/1
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_idea_idea,idea.idea,model_idea_idea,base.group_user,1,1,1,0
access_idea_vote,idea.vote,model_idea_vote,base.group_user,1,1,1,0
记录规则
记录规则将访问权限限制在给定模型的记录子集上。规则是模型的记录。ir.rule,并与模型、多个组(多个2多个字段)、应用限制的权限和域相关联。域指定访问权限受限于哪些记录。
这里是一个防止删除不处于状态的引线的规则的示例。cancel。注意,字段的值groups必须遵循与方法相同的约定。write()ORM的。
<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('sales_team.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>