Oejia 技术栈
首页
分享
微信模块
关于
编辑器
登录
Odoo 权限控制解析及 eval 详解
on 2016-02-21
### 创建权限组 示例 ```xml <record id="base.group_website_publisher" model="res.groups"> <field name="name">Display Editor Bar on Website</field> <field name="category_id" ref="base.module_category_website"/> </record> <record id="base.group_website_designer" model="res.groups"> <field name="name">Manage Website and qWeb view</field> <field name="users" eval="[(4, ref('base.user_root'))]"/> <field name="implied_ids" eval="[(4, ref('base.group_website_publisher'))]"/> <field name="category_id" ref="base.module_category_website"/> </record> ``` 以上截选自 odoo website 模块源码,创建了两个组 **name** 组的描述名称 **category_id** 指定此组属于哪个应用程序(模块) **users** 指定了组里面的用户,这里表示把admin用户添加到该组 eval 解析 `(4,ID)`添加主从链接关系到id=ID的对象。 `(3,ID)`去除和id=ID的对象主从链接关系,但是不删除这个对象 `(2,ID)` 去除和id=ID的对象主从链接关系,并且删除这个对象(调用unlink方法) `(5)` 去除所有的链接关系,也就是循环所有的从数据且调用(3,ID) `(6,0,[IDs])` 用IDs里面的记录替换原来链接的记录,即先执行`(5)`再循环IDs执行`(4,ID)` ### 组和菜单 ```xml <record model="ir.ui.menu" id=" memu_id1"> <field name="name" >menu1</field> <field name="groups_id" eval="[(6,0,[ref('A'),ref('B')]),]"/> <field name="sequence">1</field> </record> ``` **name** 菜单名称 **groups_id** 哪些组可以访问该菜单 以上内容表示A组与B组的成员都可以访问menu1菜单 另一中写法: ```xml <menuitem id="menu_id1 " name="menu1" parent="menu_p" sequence="1" groups="A,B "/> ``` base.group_user 是一个通用的系统内置用户组, Odoo系统中所有用户默认属于此组 ### 记录规则 权限规则可用于更精细化的权限控制,对应【设置】->【安全】->【记录规则】的数据 ```xml <record model="ir.rule" id="rule1"> <field name="name">rule1</field> <field name="model_id" ref="model_model1"/> <field name="global" eval="True"/> <field name="domain_force">[1,’=’,1]</field> <field name="groups" eval="[(4,ref('A'))]"/> </record> ``` name 规则名称 **model_id** 对应的模型 **global** 是否是全局 **domain_force** 过滤条件 **groups** 属于哪个组 以上表示A组的成员就可以获取model_model1的所有数据,可以看出domain_force是控制的关键 ### 访问控制列表(组和权限映射表) 另一种表达权限规则的方式是编写 ir.model.access.csv 文件 对应【设置】->【安全】->【访问控制列表】的数据 示例: id|name|model_id:id|group_id:id|perm_read|perm_write|perm_create|perm_unlink --|----|----|---|---|----|----|--- access_xxx|xxxxx|model_website_menu|base.group_website_designer|1|1|1|1 **model_id:id** 对应的对象模型, 写法示例:`website.model_website_config_settings` 如果内容本身在website模块中则可以省略`website.` 后面则为模型的name将"."替换成"-"的结果,在前面加`model_` **group_id:id** 哪个组 **perm_read**、**perm_write**、**perm_create**、**perm_unlink** 增删改查权限。1 有权限 0 无权限
Information
Odoo 权限控制解析及 eval 详解
http://www.oejia.net/article/1ba0295534a6d2a77837c85d58fffe24
http://www.oejia.net/raw/1ba0295534a6d2a77837c85d58fffe24
on 2016-02-21
Category
Odoo
Related
2020-03-19 :
商城——小程序端项目管理
2019-01-29 :
微信模块 Oejia_wx v0.5.7 发布,卡片消息及企业微信审批流消息的支持
2021-08-31 :
Odoo 商城模块 Oejia_weshop v0.2.4 发布,可融合POS构建线上线下一体化会员系统
2017-01-12 :
Postgresql 数据库相关
2016-03-12 :
Odoo 的微信模块 Oejia_wx v0.2 发布!兼容 Odoo 9.0
2019-03-25 :
Odoo 企业微信审批模块之配置服务器动作的说明
2018-11-13 :
微信模块 Oejia_wx v0.5.5 发布,优化菜单配置及会话管理增加素材支持
2022-12-30 :
企业微信错误码:60020 的处理
2018-07-09 :
在Odoo中使用task_queue实现异步任务队列
2016-03-07 :
odoo 9.0 CSS 编译环境安装及执行过程的研究
分类
(23)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (127)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
官方公众号
关注公众号实时咨询我们
About This Entry
YouMd 基本使用说明
Python 运行参数解析的使用示例
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
HTML5
OE商城
审批OA
DjangoX
Markdown
示例
markdown
Python
解析
服系统
oeshop
PyQT
Excel
md
YouPBX
最近发布
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Odoo16 开启客屏时如何实现在POS设备上自动打开到第二屏
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子