OpenERP的权限的核心是权限组(res_groups)。对每个权限组,可以设置权限组的菜单表示,对象表示,记录规则表示,字段表示。
1.菜单/对象级别
设置哪些人可以访问哪些菜单/对象,对象的访问权限包括创建、读、写、删除。
2.记录级别
设置哪些人可以访问哪些记录,也就是设置表的查询条件。
3.字段级别
设置表中的字段的访问权限。
4.工作流级别
在工作流的每一步迁移中,设置哪些角色允许触发本迁移。
OpenERP 的每个登录用户都属于某些组,以及拥有某些角色。
以下均以代码编写为例。
2.菜单/对象表示
模块下 security 目录有两个文件:xxx_security.xml、ir.model.access.csv。
其中,x_security.xml文件定义组和组对菜单的访问权限,ir.model.access.csv定义组对对象的权限矩阵。
x_security.xml文件:
Noupdate 表示,当模块升级时是否更新本条数据。对于demo 数据,通常设置成noupdate=”1”,即不更新,不指定noupdate 的话,默认值是noupdate=”0”。
Category_id和Implied_ids表示,group_dl_vehicle_manager和group_dl_vehicle_user属于module_dl_vehicle_category分组,并且只能选择其中一个。
product\security 目录下的文件ir.model.access.csv:
这四行定义了组dl_vehicle_management.group_dl_vehicle_user、dl_vehicle_management.group_dl_vehicle_manager对对象model_dl_vehicle_management和model_dl_vehicle_type_management的读、写、新建、删的权限。从权限定义可以看出,manager对两个model具有全部权限,user对model_dl_vehicle_management对象具有读、写、新建权限,对model_dl_vehicle_type_management对象只有读权限。
默认情况下,菜单项没有车辆管理菜单。