课 程 地 址:https://www.bilibili.com/video/BV1m54y167ET?from=search&seid=9421485045063291271 课 件 文 档 地 址:http://www.odoodev.cn/ 课 程 环 境 地 址:http://learning.odoodev.cn/, 账密:testuser gitee 代 码 地 址:https://gitee.com/bianjing123/learning_odoo12/tree/learning_odoo12/(分支learning_odoo12)
<odoo>
<data>
<record model="ir.module.category" id="module_category">
<field name="name">疫情记录</field>
<field name="description">疫情记录</field>
<field name="sequence">1</field>
</record>
<!-- 1.PMO角色:全局可编辑、可查看; -->
<record model="res.groups" id="group_PMO">
<field name="category_id" ref="module_category"/>
<field name="name">PMO</field>
<field name="implied_ids" eval="[(4, ref('hr_timesheet.group_timesheet_manager')),(4, ref('project.group_project_manager')),(4, ref('base.group_user'))]"/>
<field name="comment">PMO角色:全局可编辑、可查看;</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
</data>
</odoo>
使用ir.module.category来定义权限组的分类 res.groups模型,定义权限角色 继承的权限implied_ids users 默认指定 ref属性,其值必须是有效的 外部id,它将被查找并设置为该字段的值。 eval 属性提供的Python表达式并将结果设置为该字段的值。
security/ir.model.access.csv id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 唯一标识符,名称,模型,权限,1/0,1/0,1/0,1/0
<record id="timesheet_group_timesheet_readonly_all_views" model="ir.rule">
<field name="name">全局只读</field>
<field name="model_id" ref="model_account_analytic_line"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('group_timesheet_readonly'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- 跳转到markdown-->
<menuitem name="疫情记录"
id="sec_epidemic_record_menu"
parent="epidemic_record_menu_root"
action="epidemic_record_act_window"
groups="base.group_user"
sequence="10"/>
base.group_user, base.group_no_one; 标签menuitem 有一个groups属性,可以是一个或多个权限角色,多个权限角色使用逗号分隔 对拥有groups权限组的人可见
field标签有一个groups属性,可以是一个或多个权限角色,多个权限角色使用逗号分隔 对拥有groups权限组的人可见