Openerp 记录规则,允许用户更新自己的员工记录,而不属于职员组

Openerp 记录规则,允许用户更新自己的员工记录,而不属于职员组,openerp,Openerp,我试图在OpenERP 7.0中定义一个记录规则,该规则允许不在高级职员组中的用户仅更改其自己的员工记录,同时仍保留现有的全局规则,允许高级职员组中的用户拥有全部权限。我已通过以下详细信息建立了自定义规则: 名称:用户\编辑\自己\员工\规则 对象:雇员 申请阅读:已选中 申请写入:已选中 规则定义:[('user\u id','=',user.id)] 然而,所有这一切似乎都是为了消除用户读取任何员工记录的能力,除了他们自己的记录。据我所知,我需要将此规则与逻辑OR运算符结合起来,并将组规

我试图在OpenERP 7.0中定义一个记录规则,该规则允许不在高级职员组中的用户仅更改其自己的员工记录,同时仍保留现有的全局规则,允许高级职员组中的用户拥有全部权限。我已通过以下详细信息建立了自定义规则:

  • 名称:用户\编辑\自己\员工\规则
  • 对象:雇员
  • 申请阅读:已选中
  • 申请写入:已选中
  • 规则定义:
    [('user\u id','=',user.id)]
然而,所有这一切似乎都是为了消除用户读取任何员工记录的能力,除了他们自己的记录。据我所知,我需要将此规则与逻辑OR运算符结合起来,并将组规则应用于Officer组中的用户。有谁能给我一些如何实现这一目标的建议吗

编辑:因此,我期望的行为是:

  • 所有用户(员工组)都可以搜索和读取所有员工记录
  • 员工组中的用户可以编辑自己的员工记录,但不能编辑其他员工记录
  • 高级职员组中的用户可以编辑所有员工记录(这是人力资源模块的默认行为)
迄今为止:

  • 修改上述记录规则(用户编辑自己的员工规则)以仅应用于写入操作,而不应用于读取操作(用户可以查看所有员工记录,但不能编辑任何记录,包括自己的记录)
  • 修改hr.employee系统用户访问控制规则以允许写入操作(用户现在可以编辑所有员工记录)

我得到的一个线索是,使用API在shell中返回员工的用户id,OpenERP返回
[5,'Joe Bloggs']
。我想知道我的记录规则是否正确地查询外键关系?

提供访问规则是解决方案的一部分。如果查看“设置>技术>安全>访问控制列表”中的“访问控制列表”,您可以看到集团Hr员工仅对模型Hr.Employee具有读取权限。因此,首先您还必须为集团员工提供对模型hr.employee的写访问权限。 允许对模型hr.Employee的组员工进行写访问后

  • 从“设置”>“技术”>“安全”>“记录规则”中创建名为“用户\编辑\自己\员工\规则”的新记录规则(如您所愿)
  • 为该组用户提供域\u编辑\u自己的\u员工\u规则为[('User\u id','=',User.id)]。并且这个域应该申请读写。ie;通过选中“申请读取”和“申请写入”布尔字段
  • 创建另一个名为User\u edit\u own\u employee\u rule\u 1的记录规则
  • 为该组用户提供域\u编辑\u自己的\u员工\u规则为[('User\u id','!=',User.id)]。此域应申请只读。ie;勾选“申请阅读”
现在,通过为集团员工创建两条记录规则,我们可以提供读取和写入其自己记录的权限,但只能读取其他员工记录

让我总结一下:

在访问控制列表中为集团员工的hr.employee模型提供写访问权限。创建两个记录规则:

用户编辑自己的员工规则:

  • 名称:用户编辑自己的员工规则
  • 对象:员工
  • 申请读取:已选中
  • 申请写入:已选中
  • 规则定义:[('user\u id','=',user.id)]
  • 组:人力资源/员工
用户\u编辑\u自己的\u员工\u规则\u 1:

  • 名称:用户\u编辑\u自己的\u员工\u规则\u 1
  • 对象:员工
  • 申请读取:已选中
  • 申请写入:未选中
  • 规则定义:[('user\u id','!=',user.id)]
  • 组:人力资源/员工

希望这有帮助….

提供访问规则是解决方案的一部分。如果查看“设置>技术>安全>访问控制列表”中的“访问控制列表”,您可以看到集团Hr员工仅对模型Hr.Employee具有读取权限。因此,首先您还必须为集团员工提供对模型hr.employee的写访问权限。 允许对模型hr.Employee的组员工进行写访问后

  • 从“设置”>“技术”>“安全”>“记录规则”中创建名为“用户\编辑\自己\员工\规则”的新记录规则(如您所愿)
  • 为该组用户提供域\u编辑\u自己的\u员工\u规则为[('User\u id','=',User.id)]。并且这个域应该申请读写。ie;通过选中“申请读取”和“申请写入”布尔字段
  • 创建另一个名为User\u edit\u own\u employee\u rule\u 1的记录规则
  • 为该组用户提供域\u编辑\u自己的\u员工\u规则为[('User\u id','!=',User.id)]。此域应申请只读。ie;勾选“申请阅读”
现在,通过为集团员工创建两条记录规则,我们可以提供读取和写入其自己记录的权限,但只能读取其他员工记录

让我总结一下:

在访问控制列表中为集团员工的hr.employee模型提供写访问权限。创建两个记录规则:

用户编辑自己的员工规则:

  • 名称:用户编辑自己的员工规则
  • 对象:员工
  • 申请读取:已选中
  • 申请写入:已选中
  • 规则定义:[('user\u id','=',user.id)]
  • 组:人力资源/员工
用户\u编辑\u自己的\u员工\u规则\u 1:

  • 名称:用户\u编辑\u自己的\u员工\u规则\u 1
  • 对象