Odoo 11 默认用户组配置:如何使新建用户自动关联自定义用户组
实现新用户默认分配自定义组的解决方案
你已经搭建了模块分类和两个层级的日记账相关用户组(See his Journals作为基础组,See all Journals作为管理级组),现在要让新创建的用户自动加入基础组,这里给你两种实用的Odoo实现方式:
方法1:设置用户组字段的全局默认值
这种方式会给新用户自动添加目标组,后续如果需要,用户可以手动移除该组。只需在你的XML代码中新增以下记录:
<!-- 给res.users的groups_id字段设置默认值,自动关联自定义组 --> <record id="default_res_users_groups_journal" model="ir.default"> <field name="model_id" ref="base.model_res_users"/> <field name="field_id" ref="base.field_res_users__groups_id"/> <field name="value" eval="[(4, ref('group_account_move_journal'))]"/> <field name="company_id" eval="False"/> <!-- 全局生效,如需按公司配置可指定对应公司ID --> </record>
代码说明:
ir.default是Odoo专门用来设置系统字段默认值的模型model_id指定目标模型为用户模型res.usersfield_id锁定要配置的字段为用户所属组字段groups_idvalue里的(4, ref('...'))是Odoo的Many2many字段添加语法,作用是把指定的自定义组添加到新用户的组列表中
方法2:通过隐含组自动关联
这种方式会让所有属于base.group_user(普通用户组)的用户自动拥有你的自定义组,包括新创建的用户。这种关联是隐含绑定的,用户无法手动移除该组(除非修改组的隐含关系配置)。
只需修改base.group_user的记录,把你的自定义组加入其隐含组列表:
<record id="base.group_user" model="res.groups"> <field name="implied_ids" eval="[(4, ref('group_account_move_journal'))]"/> </record>
适配你的现有结构:
你现有代码里已经让group_account_move_journal通过implied_ids继承了base.group_user(意思是加入这个自定义组会自动成为普通用户),而上述代码是反向绑定——让所有普通用户自动加入你的自定义组,刚好匹配你“新用户默认拥有该组”的需求。
内容的提问来源于stack exchange,提问作者Elhagag Abdalla
相关产品推荐
相关产品推荐

