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

如何在Odoo15自定义模块中通过Merchant菜单管理指定组内部用户?

实现方案:自定义Merchant菜单管理特定组用户(Odoo 15)

1. 隐藏原生Users菜单项

通过继承ir.ui.menu模型,将系统自带的Users菜单设为不活跃,使其不再在界面显示:

from odoo import models

class IrUiMenu(models.Model):
    _inherit = 'ir.ui.menu'

    def _load_menus(self, debug):
        menus = super()._load_menus(debug)
        user_menu_id = self.env.ref('base.menu_users').id
        if str(user_menu_id) in menus:
            menus[str(user_menu_id)]['active'] = False
        return menus

2. 创建自定义Merchant菜单及视图

在模块XML文件中定义新菜单、动作和视图,关联res.users模型并通过domain过滤仅显示目标用户组的记录:

<!-- 假设目标用户组的XML ID为your_module.group_merchant -->
<record id="action_merchant_users" model="ir.actions.act_window">
    <field name="name">Merchants</field>
    <field name="res_model">res.users</field>
    <field name="view_mode">tree,form</field>
    <field name="domain">[('groups_id', 'in', [ref('your_module.group_merchant')])]</field>
</record>

<menuitem id="menu_merchant_users" name="Merchant" parent="base.menu_administration" action="action_merchant_users"/>

3. 创建新用户时自动分配指定用户组

继承res.users模型,重写create方法,确保新建用户自动加入目标组:

from odoo import models, api

class ResUsers(models.Model):
    _inherit = 'res.users'

    @api.model
    def create(self, vals):
        merchant_group = self.env.ref('your_module.group_merchant')
        if 'groups_id' not in vals:
            vals['groups_id'] = [(6, 0, [merchant_group.id])]
        else:
            # 避免覆盖用户手动选择的其他组,仅追加目标组
            vals['groups_id'].append((4, merchant_group.id))
        return super().create(vals)

4. 菜单权限限制(可选)

如果需要仅让特定角色访问Merchant菜单,可在XML中给菜单绑定权限组:

<menuitem id="menu_merchant_users" name="Merchant" parent="base.menu_administration" action="action_merchant_users" groups="your_module.group_merchant_manager"/>

注意事项

  • 替换your_module为你的自定义模块名称
  • 提前在模块中创建好目标用户组group_merchant(可通过XML或后台界面创建)
  • 模块安装后需验证:原生Users菜单隐藏、Merchant菜单仅显示目标组用户、新建用户自动加入指定组

内容的提问来源于stack exchange,提问作者Abdus Sattar Bhuiyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:36:17