【问题标题】:How to configure flexible access rules如何配置灵活的访问规则
【发布时间】:2018-09-01 08:08:03
【问题描述】:

要解决的基本问题

我正在尝试使用 Odoo 10 中的用户组和 ir.rules 配置灵活的规则。基本上,我希望根据列中的特定值,仅允许用户访问某些记录。有一些记录我想限制 - 无论是否根据不同的标准在另一个组中允许。

以下是我想要完成的一些简化示例:

1.

(country = 'USA'
or
office= London)

and

vip = false

2.

(country = 'uk'
or
country = 'netherlands'
or
office = London)

etc

为了使访问规则灵活,我想创建以下组:

  • group_country_usa
  • group_country_germany
  • group_country_uk
  • group_country_netherlands

  • group_office_london
  • group_office_new_york
  • group_office_paris
  • group_office_tokyo
  • group_office_st_petersburg

  • group_no_vips

我上面每个组都有对应的 ir.rules 记录:

[('country','=', 'usa')]
etc

[('office','=', 'amsterdam')]
etc

[('vip','=', False)]

根据我的测试,我认为仅使用单独的 ir.rules 记录我不能做到以上。

有什么方法可以实现我的目标吗?

我希望以上内容有意义,并且有人可以提示我正确的方向。

【问题讨论】:

    标签: odoo odoo-10 polish-notation


    【解决方案1】:

    假设有一个全局规则允许访问所有记录,我认为使用您描述的 ir.ruleres.groups 配置没有问题。但是,组规则是附加的,这意味着无法像示例 #1 中那样将 ir.rule 域与 and 加入。更多信息请见官方docs

    【讨论】:

    • 感谢您的澄清。那讲得通。是否有任何其他/更好的方式可以实现我的目标?
    • 如果没有额外的 python 开发,您将无法实现您描述的目标。我们通常如何实现这样的功能是我们在合作伙伴上定义allowed_countriesallowed_offices 等字段。然后ir.rule 在您的记录中定义为[('country', 'in', partner_id.allowed_countries)] 等域。但正如我所说,它需要额外的开发。
    猜你喜欢
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2017-05-25
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多