Odoo 13 如何隐藏所有表单删除按钮仅指定用户组可见?是否有对应模块?
Odoo 13全局删除按钮权限控制方案
现成模块方案
- 有完全匹配需求的OCA标准模块
web_group_delete,适配Odoo 13版本,功能如下:- 全局默认隐藏所有表单的删除按钮
- 支持绑定指定用户组,仅组内用户可见并使用删除功能
- 无需修改现有业务代码,安装后直接在后台用户组设置页完成配置即可生效
自定义实现方案(无第三方模块依赖)
如果不想引入外部模块,可通过少量代码自定义实现,步骤如下:
- 首先在自定义模块的安全XML文件中新增专属权限组:
<record id="group_allow_global_delete" model="res.groups"> <field name="name">允许全局删除单据</field> <field name="category_id" ref="base.module_category_administration"/> </record>
- 继承Odoo基础form视图,给删除按钮增加权限组判断条件:
<record id="base_form_inherit_delete_perm" model="ir.ui.view"> <field name="name">base.form.inherit.delete.permission</field> <field name="model">base</field> <field name="inherit_id" ref="web.view_form"/> <field name="arch" type="xml"> <xpath expr="//button[@name='delete']" position="attributes"> <attribute name="groups">你的自定义模块名.group_allow_global_delete</attribute> </xpath> </field> </record>
- 升级自定义模块后,只需将需要删除权限的用户加入
允许全局删除单据用户组即可,其余用户默认看不到删除按钮。
注意:自定义方案需要先排查现有实例是否有修改表单删除按钮的其他视图继承规则,避免冲突。
内容的提问来源于stack exchange,提问作者Pablo Cavero Pérez
相关产品推荐
相关产品推荐

