允许用户仅使用其允许的公司和权限添加新用户

时间:2019-07-07 16:49:05

标签: odoo odoo-12

我想创建一个允许其用户添加新用户的组,但只能使用他们自己拥有的Allowed Companies和权限。当前,Administration/Access Rights组确实为用户提供了创建新用户的能力,但是它并没有以任何方式限制他们可以分配的权限。

我尝试修改Access Rights组的权限。我在该组中找到了对象Company的记录规则,并对此进行了修改:

[(1, '=', 1)] 

更改为:

['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]

我基本上从其他限制用户使用自己公司的规则中复制了它。但是,当该组中的用户尝试访问任何用户时,它崩溃并给出错误:

ValueError: Invalid field 'company_id' in leaf "<osv.ExtendedLeaf: ('company_id', '=', False) on res_company (ctx: )>"

我还将两个管理组(Access RightsSettings)都移到了另一个应用程序Extra Rights中。这是我限制用户可以看到的选项的唯一方法。这样一来,如果用户有权访问用户编辑,他就不能简单地在其中进行任何更改(例如给自己Setting权限。我真的不明白为什么Odoo选择了这种行为。

重现此问题的步骤: -创建多个公司(在此示例中,为CompanyA,CompanyB,CompanyC) -添加具有“管理/访问权限”组的用户,并将其分配给某些公司(并非所有公司-例如公司A和B)

当前行为: 具有给定组的用户能够修改(对于所有用户)“允许的公司”字段并添加他无权访问的公司-在此示例中,他可以使用CompanyC扩展他的“允许的公司”。

预期的行为: 具有给定组的用户可以修改所有用户的“允许的公司”字段,但不能分配他本人没有的“允许的公司”。

1 个答案:

答案 0 :(得分:2)

您可以将域添加到允许的公司,以便该组的用户只能访问允许的 公司字段,也可以修改记录规则。选中此link找到类似的问题