18.odoo入门——odoo权限控制(一)模型(数据表)级别权限控制
来源:互联网 发布:水池结构设计软件 编辑:程序博客网 时间:2024/06/07 00:04
进入正常工作流程,首先要解决odoo后台中,财务部门和管理部门分别进入后台中应该有对应的不同的权限,那么在项目中需要security/ir.model.access.csv
————大致参考 http://www.jianshu.com/p/bc4e9db349a2——不过里面有一个地方弄错了!就是id并不是有固定写法的,随意取名字,只要确保每天权限记录的id不同不要互相覆盖就好了
在这里我遇到了一个特别的问题,就是在model_id:id字段的值中,由于我的模块名和类名的前缀是相同的,按网站上的实现就出错了,然后将原本的model_模块名_类名中的模块名删掉,变成model_类名就可以正常工作了。(反正我的odoo10.0就是用的model_类名而不是参考的简书网站上所说的model_模块名_类名)
在odoo中,我查看一条记录,希望能看到这条记录的create_uid,create_date, write_uid,write_date,但是在创建记录的时候不能有这几个字段(因为这是系统自动生成的,不应该是人为输入的),在xml中如何控制呢?
一位大佬教的:
<field name="id" invisible="1"/><field name="create_uid" attrs="{'invisible': [('id', '<=', 0)]}" string="XXX"/><field name="create_date" attrs="{'invisible': [('id', '<=', 0)]}"/><field name="write_uid" attrs="{'invisible': [('id', '<=', 0)]}"/><field name="write_date" attrs="{'invisible': [('id', '<=', 0)]}"/>
这样的写法就可以了,使id字段不可见,再利用id<=0(不存在的)的情况使其不可见
接下来进行权限分组,分别是管理部门,财务部门,普通用户,管理员,组的概念在哪里呢?
看一些开发者文档好像都没什么用,感觉急缺一份详细而有针对性的官方文档,看了几份文档都没有提到我这个问题,不过在我拿到的一个demo模块中看到了security的3个文件,分别是:
ir.model.access.csv ir_rule.xml group.xml
去百度一下,就可以看到第一个网页:http://www.cnblogs.com/crazyguo/p/6999408.html
利用xml文件分组成功,security/group.xml代码如下图所示:
<?xml version="1.0" encoding="utf-8"?><!--建立权限组,定义组和组对菜单的访问权限,--><openerp> <data noupdate="0"> <!--#######################################应用系统分类设置#######################################--> <record model="ir.module.category" id="wens_investment_finance"> <field name="name">投资理财</field> <field name="description">针对公司内部使用的投资理财项目</field> </record> <!--#######################################应用系统分类设置#######################################--> <!-- #################################角色设置#################################--> <record id="administration_section" model="res.groups"> <field name="name">管理部门</field> <field name="category_id" ref="wens_investment_finance"></field> <!--category_id表示:administration_section属于group_wens_investment分组,并且只能选择其中一个角色。--> <!--ref表示用户组所属的模块名--> </record> <record id="finance_staff" model="res.groups"> <field name="name">财务部门</field> <field name="category_id" ref="wens_investment_finance"></field> </record> <record id="ordinary_user" model="res.groups"> <field name="name">普通用户</field> <field name="category_id" ref="wens_investment_finance"></field> </record> <!-- #################################角色设置#################################--> </data></openerp>
成功后,在odoo端创建新用户时可以看到可以选择不同的角色,说明我们分组成功了。
接下来我们在security/ir.model.access.csv下写好字段控制,就可以成功地控制每个角色对于每个对象的权限——需要一提的是,这是对象(或者说,模型,数据库表)级别的权限控制
示例代码为:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_1,wens_investment_finance.wens_investment_program,model_wens_investment_program,wens_investment_finance.administration_section,1,1,1,1
access_2,wens_investment_finance.wens_investment_subscription,model_wens_investment_subscription,wens_investment_finance.administration_section,1,1,1,1
access_3,wens_investment_finance.value_change_record,model_value_change_record,wens_investment_finance.administration_section,1,1,1,1
access_4,wens_investment_finance.cash_transfer_record,model_cash_transfer_records,wens_investment_finance.administration_section,1,1,1,1
- 18.odoo入门——odoo权限控制(一)模型(数据表)级别权限控制
- Odoo 权限控制解析及 eval 详解
- Odoo 权限控制解析及 eval 详解
- Odoo的权限
- 权限控制模型—RBAC
- 25.odoo入门——工作杂记之many2many, git删除版本控制
- 权限管理——权限模型和权限控制
- 7.odoo入门——初探odoo后台启动过程(一)
- 8.odoo入门——jinja2入门(一)
- 19.odoo入门——odoo的session
- openerp/odoo权限设置总结
- Project级别的权限控制
- Project级别的权限控制
- 10.11.12.odoo入门——杂记
- 20.odoo入门——杂记
- 21.odoo入门——杂记
- 22.odoo入门——工作杂记
- 23.odoo入门——工作杂记
- vue2.0脚手架的webpack 配置文件分析
- 利用tomcat启动本地jsp页面
- [JavaEE
- APUE第七章 进程环境
- TI-RTOS-SPI深度解析
- 18.odoo入门——odoo权限控制(一)模型(数据表)级别权限控制
- 公式摘录
- 利用 uic.exe 手动生成ui头文件
- VS2010中单文档/多文档程序----状态栏操作
- Android开源框架Universal-Image-Loader的详情讲解
- vxworks常用API总结
- linux如何查看一段时间的日志sed和grep的使用
- Qt软件开发文档15---聊天窗口的实现(2),QTextEdit+QPainter实现聊天框自适应大小
- 对象字节数组转换工具类