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

如何在自定义模块中创建新用户组并为特定组分配新模型权限?

关于Odoo自定义模块中用户组创建与权限配置的解决方案

一、如何在自定义模块中创建新用户组?

创建自定义用户组步骤很清晰,按下面的流程来就行:

  • 先在你的自定义模块目录下,新建security文件夹(如果还没有的话),然后在里面创建groups.xml文件。
  • 在groups.xml里写入创建用户组的XML代码,以你需要的「Product Extended User」组为例:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="group_product_extended_user" model="res.groups">
        <field name="name">Product Extended User</field>
        <!-- 关联到你的模块所属分类,这里替换成你模块对应的分类ID,比如自定义模块分类 -->
        <field name="category_id" ref="base.module_category_custom"/>
        <!-- 如果需要继承普通用户的基础权限,可添加这个字段,不需要的话可以删掉 -->
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        <field name="comment">用于授予访问Product Extended模型及自定义模块的权限</field>
    </record>
</odoo>
  • 最后把这个XML文件添加到模块的__manifest__.py的data列表中,保证模块加载时能读取到:
'data': [
    # 其他数据文件...
    'security/groups.xml',
    'security/ir.model.access.csv',
],

二、解决你配置权限时遇到的问题

看了你提供的ir.model.access.csv配置,大概率是引用ID的问题,给你梳理几个关键点和修正方案:

  1. 组ID引用错误:你写的base.group_product_extended_user不对,这个组是你自定义的,不属于base模块,应该用你的模块名.group_product_extended_user(比如你的模块叫product_extended,那就是product_extended.group_product_extended_user)。
  2. 确认模型ID正确性:model_product_extended是模型product.extended对应的默认XML ID,这个一般没问题,但要确保你的模型定义里没有手动修改过ID。
  3. 修正后的CSV配置示例:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_extended_user_group,Product Extended User Access,model_product_extended,product_extended.group_product_extended_user,1,1,1,1
  1. 模块升级验证:修改完配置后,一定要在Odoo后台升级你的自定义模块(或者用命令行odoo-bin -u your_module_name),确保新的权限和组被加载。
  2. 后台验证:升级后去「设置 > 用户与公司 > 用户组」里找到「Product Extended User」组,检查它的权限列表里是否包含了「Product Extended」模型的读写创建删除权限。

如果还是有问题,可以查看模块的运行日志,看看有没有加载时的报错(比如ID不存在、权限重复之类的提示),这些信息能帮你快速定位问题。

内容的提问来源于stack exchange,提问作者M.E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:52:17