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

如何在Frappe ERPNext中配置团队权限与文档访问控制?

解决Frappe ERPNext团队文档互访权限配置问题

以下是三种可行的解决方案,按灵活性和自动化程度排序:

方法一:利用内置用户组与权限规则实现核心需求

这是最直接的内置功能方案,无需额外开发:

  • 创建团队专属用户组
    1. 进入用户与权限 > 用户组,为每个团队创建独立用户组(例如「销售团队A」「销售团队B」)
    2. 将对应团队的所有成员添加到各自的用户组中
  • 配置文档权限(以Sales Order为例)
    1. 进入用户与权限 > 角色管理器,找到对应业务角色(如「Sales User」)
    2. 编辑该角色对「Sales Order」的权限:
      • 取消勾选「Only if Creator」选项
      • 在权限规则中添加自定义条件(替换为目标用户组名称):
        doc.owner in frappe.get_list('User', filters={'user_group': '销售团队A'}, fields=['name'])
        
      • 根据业务需求设置「读」「写」等权限级别
    3. 为每个团队重复上述权限配置步骤,确保不同用户组仅能访问自身团队成员创建的文档

方法二:自定义字段+服务器脚本实现更灵活的权限控制

适合需要更精细化权限场景(如允许跨子团队访问等):

  • 添加团队关联字段
    1. 进入自定义 > 自定义字段,为「Sales Order」添加链接类型字段「团队」,关联到「用户组」文档
    2. 设置该字段为必填,确保创建订单时必须选择所属团队
  • 编写权限控制脚本
    1. 进入自定义 > 服务器脚本,新建脚本,类型选择「文档权限」,应用到「Sales Order」
    2. 粘贴以下脚本(可根据需求调整逻辑):
      def has_permission(doc, ptype, user):
          # 获取当前用户所属的所有用户组
          user_groups = frappe.get_list('User Group Member', filters={'user': user}, fields=['parent'])
          user_group_names = [item.parent for item in user_groups]
          # 验证文档所属团队是否在用户的组列表中
          return doc.团队 in user_group_names
      
    3. 保存后,用户仅能访问自身所属团队的Sales Order

方法三:批量共享功能(适合临时/一次性授权场景)

如果仅需临时批量授权,可使用内置共享工具:

  • 进入用户与权限 > 批量共享
  • 选择文档类型「Sales Order」,筛选出目标团队成员创建的所有订单
  • 选择对应团队的用户组,批量设置「读」权限
  • 注意:此方法仅对已存在的文档生效,新创建的文档需重新执行批量操作

注意事项

  • 所有配置建议先在测试环境验证,避免影响生产数据
  • 用户组成员变更后,权限会自动同步生效
  • 若需对多个文档类型(如Quotation、Delivery Note)配置权限,需重复对应步骤

内容的提问来源于stack exchange,提问作者user22956970

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:22:42