如何为Odoo销售订单表单操作菜单下的删除按钮配置用户组权限
Odoo销售订单删除按钮权限配置实现方案
以下是适配Odoo框架的两种常用实现方式,可根据你的开发场景选择:
方案1:XML视图继承修改(代码实现)
适合自定义模块开发场景,直接通过视图继承给按钮绑定权限组:
- 首先在你的自定义模块中继承销售订单表单视图,定位到动作菜单下的删除按钮,新增
groups属性,属性值替换为你提前创建好的权限组外部ID即可,示例代码如下:
<record id="sale_order_form_delete_permission_inherit" model="ir.ui.view"> <field name="name">sale.order.form.delete.permission</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <!-- 定位删除按钮,新增权限组属性 --> <button name="unlink" position="attributes"> <attribute name="groups">你的模块名.自定义销售订单删除权限组ID</attribute> </button> </field> </record>
- 如果该删除按钮是绑定的独立窗口动作/服务端动作,也可以直接给动作记录绑定权限组,示例代码如下:
<record id="sale.对应删除动作的外部ID" model="ir.actions.act_window"> <field name="groups_id" eval="[(4, ref('你的模块名.自定义销售订单删除权限组ID'))]"/> </record>
方案2:后台配置(无需修改代码)
适合不想改动代码的快速配置场景:
- 开启Odoo调试模式,依次进入设置 > 技术 > 动作,选择删除按钮对应的动作类型(通常是窗口动作/服务端动作)
- 搜索找到销售订单对应的删除动作记录,打开编辑页面
- 找到权限组字段,添加你预设的仅允许删除订单的用户组,保存后刷新页面即可生效
验证注意事项
- 分别使用属于权限组、不属于权限组的账号登录测试,确认删除按钮是否按预期显示/隐藏
- 同步调整销售订单的模型访问权限,避免无权限用户通过列表批量删除、接口调用等其他入口绕过按钮限制
内容的提问来源于stack exchange,提问作者Sakthi Priya
相关产品推荐
相关产品推荐

