我正在尝试在OpenERP 7.0中定义记录规则,该记录规则允许不在Officer组中的用户仅更改其自己的Employee记录,同时仍保留现有的全局规则,允许Officer组中的用户具有完全权限。我已经设置了一个包含以下详细信息的自定义规则:
[('user_id', '=', user.id)]
但是,所有这些似乎都是删除用户读取除自己以外的任何Employee记录的能力。据我所知,我需要将此规则与逻辑OR运算符结合使用,并将Group规则应用于Officer组中的用户。谁能给我任何关于如何实现这个目标的指示?
编辑:因此我想要的行为是:
到目前为止尝试过:
我的一个线索是,使用API在shell中返回员工的user_id,OpenERP返回[5, 'Joe Bloggs']
。我想知道我的记录规则是否正确地查询了外键关系?
答案 0 :(得分:3)
提供访问规则是解决方案的一部分。如果您查看“设置>技术>安全性>访问控制列表”中的“访问控制列表”,您可以看到组Hr员工只具有对模型hr.employee的读访问权限。因此,首先您必须提供写访问权限,以便为组Employee建模hr.employee。 在您允许对hreemployee模型组Employee进行写访问之后,
现在,通过为Employee组创建两个记录规则,我们可以提供读取和写入自己记录的权限,但只能读取其他员工记录。
让我总结一下:
在访问控制列表中提供写访问权限,以便为组Employee建模hr.employee。创建两条记录规则:
User_edit_own_employee_rule:
User_edit_own_employee_rule_1:
希望这有助于......