博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ODOO权限管理,在两个方面设置权限
阅读量:6571 次
发布时间:2019-06-24

本文共 2584 字,大约阅读时间需要 8 分钟。

转载参考https://zhuanlan.zhihu.com/p/29130388

在odoo中新建两个用户user1,user2

新建用户

建完了用户,记得编辑用户,设置密码。

然后以user1用户登录系统,在导航菜单中我们看不到请假菜单,因为我们没有给user1这个用户请假模块的权限。编辑security/ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_qingjia_qingjiadan,qingjia.qingjiadan,model_qingjia_qingjiadan,base.group_user,1,1,1,1

id

权限id,默认规则是access_模块名_类名,还没发现有什么用

name

权限名,默认规则是模块名.类名,还没发现有什么用

model_id:id

这个是固定写法,规则是model_模块名_类名,其它地方引用权限会用这个id

group_id:id

组id,这里的base.group_user是系统内置组,即员工.员工组,创建帐户时,默认属于这个组。所以给这个组赋权限,相当于给新帐户的默认权限。

perm_read,perm_write,perm_create,perm_unlink

对应读、写、增加、删除权限,1是有权限,0是无权限,具体根据需要来设置权限

 

编辑__manifest__.py

# -*- coding: utf-8 -*-{    'name': "qingjia", 'summary': """ 请假模块""", 'description': """ 请假模块 """, 'author': "leo", 'website': "http://www.yourcompany.com", # Categories can be used to filter modules in modules listing # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml # for the full list 'category': 'Uncategorized', 'version': '0.1', # any module necessary for this one to work correctly 'depends': ['base'], # always loaded 'data': [ 'security/ir.model.access.csv', 'views/views.xml', 'views/templates.xml', ], # only loaded in demonstration mode 'demo': [ 'demo/demo.xml', ], 'application': True, }

'data':[]中添加权限文件'security/ir.model.access.csv',

新增一行'application':True,这样在应用中默认能搜索到请假单模块,因为应用列表默认使用应用过滤器的。

以管理员身份登录系统,在应用>应用查找qingjia模块。然后升级。

 

新增请假单

使用user1用户登录系统,现在可以看到请假菜单了。新建一个请假单。看起来功能正常。然后我们用user2登录系统。也可以看到这个请假单。如果我们希望用户只能看到自己的请假单,如何做呢,修改代码views/views.xml

请假单列表
qingjia.qingjiadan
请假单
qingjia.qingjiadan
自己编辑自己的请假单
[('create_uid','=',user.id)]

增加了一个record 规则,几个关键属性

model_id

模块id,对应ir.model.access.csv文件中定义的model_id

domain_force

domain表达式,'create_uid'qiangjia_qingjiadan表的字段,在insert数据时,odoo自动写入添加用户的id。user.id是当前用户id。这个domain表达式的含义就是请假单数据的添加用户id等于当前用户id。

groups

组id,base.group_user前面说过,是系统内置的员工组的外部id

再次升级请假模块,现在user1、user2都只能看到自己的请假单,管理员可以看到全部的请假单。odoo管理员默认拥有全部权限。

总结下odoo权限分级:

 

  • 第一级是access rule,即表级权限,控制用户组对表的访问权限,一般是用security/ir.model.access.csv文件来管理
  • 第二级是record rule,即行级权限,控制用户组对表中数据行的访问权限,可以写在views/views.xml文件中
  • 其实还有第三级权限,是字段级权限,之后再学习。

转载于:https://www.cnblogs.com/zcy1103/p/8143821.html

你可能感兴趣的文章
CSS3之超出隐藏
查看>>
通用Web后台魔方NewLife.Cube
查看>>
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
查看>>
Windows7下安装配置PostgreSQL10
查看>>
HSmartWindowControl 之 显示图像
查看>>
ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程
查看>>
dom4j解析xml获取所有的子节点并放入map中
查看>>
【spring boot】启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案...
查看>>
WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例
查看>>
C# 创建、部署和调用WebService的简单示例
查看>>
因为喜欢“对抗”,这位安全首席架构师一年为网易云节省上千万
查看>>
Dora.Interception,为.NET Core度身打造的AOP框架 [5]:轻松地实现与其他AOP框架的整合...
查看>>
Centos7通过yum安装最新MySQL
查看>>
poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)
查看>>
WPF 从文件加载字体
查看>>
Xshell出现要继续使用此程序必须应用到最新的更新或使用新版本
查看>>
JVM常见的七种垃圾收集器的简单比较
查看>>
异步调用webservice
查看>>
(原創) 如何在Ubuntu上啟動ADSL連線? (OS) (Linux) (Ubuntu)
查看>>
Orchard: module开发基础技术知识
查看>>