ODOO权限管理,在两个方面设置权限
转载参考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
<odoo><data><!-- tree视图 --><record id="view_tree_qingjia_qingjiadan" model="ir.ui.view"> <field name="name">请假单列表</field> <field name="model">qingjia.qingjiadan</field> <field name="arch" type="xml"> <tree> <field name="name"/> <field name="days"/> <field name="startdate"/> </tree> </field> </record> <!-- form视图 --> <record id="view_form_qingjia_qingjiadan" model="ir.ui.view"> <field name="name">请假单</field> <field name="model">qingjia.qingjiadan</field> <field name="arch" type="xml"> <form> <sheet> <group name="group_top" string="请假单"> <field name="name"/> <field name="days"/> <field name="startdate"/> <field name="reason"/> </group> </sheet> </form> </field> </record> <!-- 视图动作 --> <act_window id="action_qingjia_qingjiadan" name="请假单" res_model="qingjia.qingjiadan" view_mode="tree,form" /> <!-- 顶级菜单 --> <menuitem name="请假" id="menu_qingjia"/> <!-- 二级菜单 --> <menuitem name="请假单" id="menu_qingjia_qingjiadan" parent="menu_qingjia" action="action_qingjia_qingjiadan"/> <!--record 规则 --> <record id="rule_user_qingjia_qingjiadan" model="ir.rule"> <field name="name">自己编辑自己的请假单</field> <field name="model_id" ref="model_qingjia_qingjiadan" /> <field name="domain_force">[('create_uid','=',user.id)]</field> <field name="groups" eval="[(4,ref('base.group_user'))]"/> </record> </data> </odoo>
增加了一个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
ODOO权限管理,在两个方面设置权限相关推荐
- 权限管理 UGO 、 ACL 、特殊权限
权限管理 一.基本权限UGO 1.1权限的三种类型 读:r=4 读的权限有r来表示,也可以用数字4代替. 写:w=2写的权限用w来表示,也可以用数字2代替. 执行:写x=1执行的权限用x来表示,也可也 ...
- java创建文件 权限_JAVA创建文件后权限不足的问题,无法设置权限的问题
JAVA创建文件后权限不足的问题,无法设置权限的问题 凯哥java 凯哥java 前言: 在工作中,项目使用到文件上传,这个功能是很常见的吧.今天,凯哥修改自己的公众号的时候,遇到了一个问题:那就是上 ...
- android 权限管理适配 oppo,Android调app权限设置界面(适配各大手机厂商终极版本)...
背景: 众所周知,国内的android是在google之上,各大手机厂商加了一层,诸如MIUI.EUI,之类的系统.因此在我们开发过程中想调出某应用的权限设置页面,调出的是google原生的权限控制界 ...
- java实现权限_Java实现权限管理的两种方式
编辑特别推荐: 种方式:利用filter.xml文件和用户信息表配合使用来实现权限管理. 1.过滤器filter package cn.com.aaa.bbb.filter; import java. ...
- Java实现权限管理的两种方式
第一种方式:利用filter.xml文件和用户信息表配合使用来实现权限管理. 1.过滤器filter package cn.com.aaa.bbb.filter; import java.io.IOE ...
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
文章目录 一.申请权限 二.申请权限原理对话框 三.引导用户手动设置权限对话框 四.在 AndroidManifest.xml 中配置权限 五.完整代码示例 六.GitHub 地址 一.申请权限 申请 ...
- Linux系统学习: 用户和权限管理指令: 请简述 Linux 权限划分的原则
权限抽象 一个完整的权限管理体系,要有合理的抽象.这里就包括对用户.进程.文件.内存.系统调用等抽象.下面我将带你一一了解. 首先,我们先来说说用户和组.Linux 是一个多用户平台,允许多个用户同时 ...
- android 9.0 权限管理_你真的了解Android权限机制吗?
码个蛋(codeegg)第 610 次推文 作者:FeelsChaotic 原文:https://www.jianshu.com/p/a17c8bed79d9 前言 Android将安全设计贯穿系统架 ...
- linux中的权限管理,Linux中的用户和权限管理
Linux是多用户,多任务操作系统:多用户是指多个用户可以同时使用系统资源,而多任务指同时运行多个进程. 用户是能够获取系统资源的权限的集合,Linux通过用户实现资源分隔. 用户组是具有相同特征用户 ...
最新文章
- Robots.txt - 禁止爬虫(转)
- 【Leetcode】两个有序数组,求第k大的数
- .Net 零星小知识
- udf、utaf、udtf进出数量规律
- C语言中 \r, \n, \b
- mysql部署策略_MySQL延迟问题和数据刷盘策略流程分析
- 沃尔玛牵手Gatik推行自动驾驶试点项目 为客户配送订单
- iPhone SDK开发基础之iPhone程序框架
- 高级排序之快速排序(分割与整合)
- 关于FCN代码实现(实践篇)
- WPF/Silverlight深度解决方案:(四)基于像素的图像合成(For WPF)
- 老显卡都涨价了,所以我把坏的显卡拿出来修
- 学习了金字塔原理中的SCQA分析法
- 仅15%的L2智能驾驶搭载DMS,「安全」背后的市场爆发在即
- swper_Swiper 中文API手册(share)
- [llvm cookbook] 1、LLVM设计与使用
- 华为云桌面,带你见识不一样的系统桌面
- 攻防世界_Crypto_Decrypt-the-Message
- C++学习(二六六)LINK_DIRECTORIES
- 对文本进行分类方法python_pytorch实现用CNN和LSTM对文本进行分类方式