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

如何配置ERPnext门户网站权限,让客户仅查看自身订单与问题?

实现ERPNext门户网站用户仅查看自身订单与问题的方案

1. 绑定门户网站用户与客户身份

  • 门户网站用户必须关联到对应Contact记录,且该Contact需绑定唯一Customer。创建门户用户时,勾选「关联联系人」并选择目标客户的联系人记录,确保用户身份与客户强绑定。

2. 配置Doctype的权限过滤规则(核心)

针对Sales Order(订单)和Issue(问题)两个Doctype,设置基于关联字段的权限限制:

  • 进入「系统设置」→「Doctype列表」,找到对应Doctype并编辑
  • 切换到「权限」标签页,给Portal User角色添加读取权限,同时开启「应用权限规则」
  • 添加权限规则:
    • 订单(Sales Order):字段选customer,操作选「等于」,值填get_current_user().contact.customer
    • 问题(Issue):字段选contact,操作选「等于」,值填get_current_user().contact.name
  • 保存Doctype设置

3. 调整门户网站页面的查询逻辑

如果默认门户页面未自动过滤数据,需修改页面查询条件:

  • 进入「网站」→「网页列表」,找到「我的订单」「我的问题」这类页面并编辑
  • 在页面的「查询」区域添加过滤条件:
    • 订单页面:filters = {"customer": frappe.session.user_contact.customer}
    • 问题页面:filters = {"contact": frappe.session.user_contact.name}
  • 保存页面设置

4. 验证权限效果

  • 用测试门户用户登录,确认仅能看到自身关联客户的订单与问题
  • 尝试直接访问其他客户的记录链接,验证是否触发权限拦截

5. 额外注意事项

  • 禁止给Portal User角色赋予Customer或Contact的「全部读取」权限,避免绕过过滤规则
  • 若自定义了问题类Doctype,需同步配置上述基于客户/联系人的权限规则
  • 定期清理无效的门户用户与客户关联关系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:57:51