sim*_*awk 4 permissions workflow openerp
我需要根据对象的工作流状态为对象设置不同的权限.例如,'manager group'只能在state = draft时编辑对象,但如果state = validated,'super manager group'也可以编辑它.
似乎不可能使用ir.model.access
,我正在评估是否可以使用ir.rule
.好像不是......
有没有official
办法得到这个或我需要实现这个功能(可能通过在ir.model.access机器中添加一个条件).
默认情况下,这是不可能的ir.model.access
,因为此权限模型的设计就像对CRUD操作的简单Unix权限一样,并且它是静态定义的,每个模型和每个组.
您可以使用这样的方法来实现ir.rule
,因为它实现了基于字段值的动态每记录访问控制.通过仅在write
和unlink
操作上定义一组规则并基于state
字段,您将能够阻止某些组修改某些状态的记录.通过使用始终为真的规则的技术,[(1,'=',1)]
您可以为具有"超级访问"组的用户放松非全局规则.另见这个答案.
但是,这个选项会有重要的警告:
read
,因为它会使记录完全消失,并且通常会对您的流程造成严重破坏attrs
以依赖于用户组的方式指定此过程.另请参阅此Launchpad问题.ir.rule
限制情况下的标准错误报告不是很清楚,因此肯定会使用户感到困惑(注意:它正在改进7.0)如您所见,ir.rule
为此目的使用过滤器远非完美的解决方案,您首先需要为上述问题找到合适的解决方案.
最终,您可能更容易实现自己的逻辑,在ORM原语API方法中插入新机制:( fields_view_get
用于根据用户组动态地只读字段)和CRUD方法(用于实际限制操作)
归档时间: |
|
查看次数: |
2150 次 |
最近记录: |