You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo权限配置:为休假专员/经理设置不同休假记录访问规则

解决Odoo中休假记录的权限分组问题

我来帮你搞定这个权限规则的问题!你当前的规则只覆盖了普通主管(leave/Officer)查看自己和直接下属休假的场景,却没给经理组(leave/Manager)开权限,所以才会出现经理看不到任何记录的情况。

正确的权限规则写法

你需要在原规则的基础上,加入「如果用户属于leave/Manager组,则允许查看所有休假记录」的判断逻辑。修改后的Domain规则如下:

['|', user.has_group('hr_leave.group_leave_manager'), '|', ('employee_id.user_id', '=', user.id), ('employee_id.parent_id.user_id', '=', user.id)]

注意事项:

  • 把hr_leave.group_leave_manager替换成你实际的leave/Manager组的外部ID:如果是自定义组,你可以在组的编辑页面找到「外部标识」字段的值,比如你创建的组外部ID是your_module.group_leave_manager,就替换成这个。
  • 逻辑解释:这条规则的意思是「要么用户是经理组(显示所有记录),要么是用户自己的休假,要么是用户直接下属的休假」,完美匹配你的需求。

操作步骤

  • 打开Odoo后台,进入「设置」-「技术」-「权限」-「记录规则」
  • 找到你之前创建的休假记录权限规则
  • 把Domain字段的内容替换成上面的代码
  • 确保这条规则的「应用于组」包含leave/Officer和leave/Manager两个组
  • 保存规则,刷新页面后测试权限

测试验证

  • employee1(leave/Officer组):只会看到自己和下属A、B、C的休假记录
  • employee2(leave/Officer组):只会看到自己和下属X、Y、Z的休假记录
  • employee3(leave/Manager组):能看到系统里所有的休假记录

如果你的需求是允许主管查看所有层级的下属(比如间接下属),可以把('employee_id.parent_id.user_id', '=', user.id)改成('employee_id.parent_id.user_id', 'child_of', user.id),这样就能匹配所有下级员工的休假记录了。

内容的提问来源于stack exchange,提问作者Hela Halloula GS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:01:51