我正在尝试在 OpenERP 7.0 中定义一个记录规则,该规则允许不在官员组中的用户仅更改他们自己的员工记录,同时仍保留现有的全局规则,允许官员组中的用户拥有完全权限。我已经设置了具有以下详细信息的自定义规则:
- 名称:User_edit_own_employee_rule
- 对象:员工
- 申请阅读:勾选
- 申请写:勾选
- 规则定义:
[('user_id', '=', user.id)]
然而,这一切似乎只是消除了用户读取除他们自己之外的任何员工记录的能力。据我所知,我需要将此规则与逻辑 OR 运算符与适用于 Office 组中用户的组规则结合起来。任何人都可以给我任何关于如何实现这一点的指示吗?
编辑:我想要的行为是:
- 所有用户(员工组)都可以搜索和阅读所有员工记录。
- 员工组中的用户可以编辑他们自己的员工记录,但不能编辑其他人。
- 官员组中的用户可以编辑所有员工记录(这是 HR 模块的默认行为)。
到目前为止尝试过:
- 修改上述记录规则(User_edit_own_employee_rule),使其仅适用于写入操作,而不适用于读取操作(用户可以查看所有员工记录,但不能编辑任何记录,包括他们自己的记录)。
- 修改hr.employee 系统用户访问控制规则以允许写入操作(用户现在可以编辑所有员工记录)。
我的一个线索是,使用 API 在 shell 中返回员工的 user_id,OpenERP 返回[5, 'Joe Bloggs']
. 我想知道我的记录规则是否正确查询外键关系?