You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 13:为JS静态XML按钮分配用户组的问题求助

Odoo 13 JS模板按钮权限控制解决方案

直接给QWeb模板中的按钮添加groups属性不会生效,因为该属性仅适用于后端渲染的视图元素(如表单、列表视图的原生按钮)。前端JS模板需要通过用户权限判断逻辑来控制按钮显示,以下是具体实现方案:

解决方案:使用前端权限判断方法

利用Odoo前端提供的widget.session.user_has_group()方法,在模板的t-if条件中校验当前用户是否属于目标用户组,以此控制按钮的渲染。

修改后的代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<templates id="template" xml:space="preserve">
    <t t-extend="ListView.buttons">
        <t t-jquery="div.o_list_buttons" t-operation="prepend">
            <t t-if="widget.modelName == 'model.name' and widget.session.user_has_group('module_name.group_manager')">
                <button type="button"
                        class="btn btn-primary o_button_action"
                >
                    Action Name
                </button>
            </t>
        </t>
    </t>
</templates>

关键说明:

  • widget.session.user_has_group('module_name.group_manager'):传入用户组的外部ID(格式为模块名.组XML ID),返回布尔值,判断当前用户是否属于该组。
  • 移除原按钮上的groups属性,将权限判断逻辑整合到外层的t-if条件中。
  • 额外建议:按钮绑定的后端动作需同时添加组权限校验,避免用户通过前端控制台绕过显示限制触发操作。

内容的提问来源于stack exchange,提问作者NinjaBat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:10:34