要解决的基本问题
我试图在Odoo 10中使用用户组和ir.rules配置灵活的规则。基本上,我希望基于列中的特定值,仅授予用户访问某些记录的权限。我想限制一些记录-不管是否基于不同的条件在另一个组中允许记录。
以下是我要完成的工作的一些简化示例:
1。
(country = 'USA'
or
office= London)
and
vip = false
2。
(country = 'uk'
or
country = 'netherlands'
or
office = London)
etc
为了使访问规则更灵活,我想创建以下组:
等
等
我对以上每个组都有相应的ir.rules记录:
[('country','=', 'usa')]
etc
[('office','=', 'amsterdam')]
etc
[('vip','=', False)]
根据我的测试,我不相信仅使用单独的ir.rules记录就可以完成上述操作。
有没有办法实现我的目标?
我希望以上所述是有意义的,并且希望有人可以向我暗示正确的方向。
答案 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。