如何配置灵活的访问规则

时间:2018-09-01 08:08:03

标签: odoo odoo-10 polish-notation

要解决的基本问题

我试图在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记录就可以完成上述操作。

有没有办法实现我的目标?

我希望以上所述是有意义的,并且希望有人可以向我暗示正确的方向。

1 个答案:

答案 0 :(得分:0)

假设存在一条允许访问所有记录的全局规则,那么使用您描述的Mapper.Initialize(cfg => { cfg.ValidateInlineMaps = true; cfg.AllowNullCollections = false; cfg.AllowNullDestinationValues = true; cfg.DisableConstructorMapping(); // <= In the case of my project, I do not use builders, I had a performance gain. cfg.AddProfile<DomainToViewModelMappingProfile>(); cfg.AddProfile<ViewModelToDomainMappingProfile>(); }); Mapper.AssertConfigurationIsValid(); ir.rule配置不会出现问题。但是,组规则是可加的,这意味着不可能像示例#1那样将res.groups域与ir.rule联接在一起。有关更多信息,请参见官方docs