老规矩的格式,先说遇到的问题。新建用户的时候没有自动选上我新建立的权限组,如下图:
但是需求是新建用户的时候默认选择权限组
失败的解决方案一
获取所有的权限group_id,创建用户的时候给group_ids值,如下图
但是这样创建会默认为不是内部用户
失败的解决方案二
先创建用户,再修改group_ids,这样的方式也是会默认为不是内部用户
成功的解决方案
查找创建res.user的源码,发现创建用户时默认给了权限,从此处着手,
发现默认给了group_ids
groups_id = fields.Many2many('res.groups', 'res_groups_users_rel', 'uid', 'gid', string='Groups', default=_default_groups)
查看_default_groups返回
def _default_groups(self):
default_user = self.env.ref('base.default_user', raise_if_not_found=False)
return (default_user or self.env['res.users']).sudo().groups_id
是这样给base.default_user添加记录的
<record id="base.default_user" model="res.users">
<field name="groups_id" eval="[(4,ref('group_users_customer360man'))]"/>
</record>
但是这得重新开一个数据库才有效。