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



我想组成一个将允许其用户添加新的组的组,但仅使用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扩展允许的公司。

预期行为:给定组的用户能够修改所有用户的允许公司字段,但无法分配他本人所没有的允许的公司。

您可以向允许的公司添加域名,因此使用该组的用户只能访问允许的公司字段或您可以修改记录规则。检查此链接找到类似的问题

最新更新