OpenERP权限管理层次
来源:互联网 发布:太仓市司法拍卖淘宝网 编辑:程序博客网 时间:2024/06/05 05:20
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对象只有读权限。
默认情况下,菜单项没有车辆管理菜单。
在 设置—用户—用户中,选择用户,点击地利车辆下拉菜单,选择 用户。
点击车辆管理,可以看到车辆中,有查看,新建,修改权限,但没有删除权限。
在车型中,只有查看权限,如果新建车型,则会提示权限不足。
在设置中,选择 管理员。回到车辆管理页面,可以看到现在对车辆和车型均有查看,新建,修改,删除权限。
上面提到用户对车型只有查看权限,这里我们可以对用户隐藏车型菜单,在需要隐藏的菜单代码中加入groups选项。
重新运行并更新模块后,可以看到用户只能看到车辆菜单,但是看不到车型菜单。
上述隐藏菜单方法虽然符合用户习惯,但是不具备安全性。因为用户具有对模型对象的访问权限,所以可以获取菜单ID,输入URL获取界面。这里我们修改menu_id和action,获取信息。所以应尽量避免使用该方法。
注:新建车辆时需要查看选择车型,所以需要车型的访问权限。
3.记录规则表示
记录规则是一个记录模型”ir.rule”,关联到一个模型。
在xxx_security.xml文件中添加如下语句。
noupdate=”1”表示模块升级时不更新。
Domain_force表示自定义Domain 表达式,用于过滤条件,含义是只能访问符合本过滤条件的记录。这里过滤条件是操作人必须是当前用户。
其他字段和ir.model.access.csv文件中字段含义相同,注意ID不能重名。
下面进行验证操作。
1.管理员新建自己的车辆
2.用户1新建自己的车辆
3.用户2新建自己的车辆
4.管理员可以查看到所有用户和管理员新建的车辆
5.用户1和用户2只能查看自己新建的车辆。
4.字段表示
字段表示权限可以指定权限组能访问记录里的哪个字段,可以在视图和对象上指定字段访问权限。
1.在视图上指定字段访问权限
在视图中加入下述语句,指定group_dl_vehicle_manager权限组才能看到vehicle_driver(司机)字段。
模块升级后管理员登录后可以看到’司机’字段。
用户登录界面没有’司机’字段。
2.在对象上指定字段访问权限
除了在视图上指定,还可以在对象上指定字段访问权限。如下图所示,只有 group_dl_vehicle_manager权限组才可以读、写vehicle_driver字段。
注:这里也可以使用groups进行组限定,效果和在视图上操作效果相同。
模块升级后管理员可以添加车辆信息。
用户登录后新建车辆信息,输入司机字段。
点击保存(司机字段不能限定非空),可以看到司机字段为空,说明用户无法对司机字段进行编辑,同理也无法读取司机字段。
第2节介绍到菜单隐藏方法中不安全的方法,这里对字段进行权限设定,可以避免。
5.工作流表示
在前一篇中任何人都可以进行车辆审批,这里加入权限控制,用户和管理员都可以提交车辆,只有管理员可以审批。
工作流权限在工作流的迁移(Transition)定义中指定,下面指定管理员可以审批,即触发本迁移。
因为用户没有审批权限,我们在页面中加入权限,只有管理员登录页面才会出现同意和拒绝按钮。
1.用户填写车辆信息,并保存。
2.点击提交按钮,用户页面没有审批按钮。
3.使用管理员帐号登录,出现审批按钮,工作流继续,这里点击拒绝按钮,流程结束。
4.使用用户帐号登录,可以看到状态是拒绝。
- OpenERP权限管理层次
- OpenErp的权限
- Openerp权限设置总结
- openerp 生产模块管理
- OpenERP之库存管理
- openerp/odoo权限设置总结
- OpenERP库存管理的若干概念
- Odoo(OpenERP)应用实践:代发货管理
- Qt层次化管理
- UIView层次管理
- UIView层次管理
- UIView层次关系管理
- IOS 视图层次管理
- UIView的层次管理()
- UIView层次管理
- OPENERP创建用户(权限设置、密码修改)
- linux 下使用supervisor管理源码启动的openerp
- OpenERP库存管理的若干概念讲解(新增库存价值)
- System.in中的read()方法
- json-lib-2.4 所需要的依赖包
- Android 相对布局 控件属性
- JSP知识5
- 关联规则基本概念
- OpenERP权限管理层次
- UART串口处理经典程序
- java 2.6** Summing the digits in an integer
- Java-Executor的UML类图
- JSP知识6
- 使用GDataXML解析XML文档
- ETL架构设计
- linux:查看内核锁
- StringUtils 工具类的常用方法