﻿# HOMEVISTA C端权限与访问控制规则

## 修订记录

| 版本 | 日期 | 修改人 | 修改内容 |
|---|---|---|---|
| v0.1 | 2026-07-02 | 唐雷 | 建立文档大纲 |
| v0.2 | 2026-07-09 | Codex | 调整到页面模板、页面 PRD 和通用组件之后，作为权限消费规则 |
| v0.3 | 2026-07-09 | Codex | 承接身份验证组件规则，明确验证方式、触发场景和失败处理为权限待确认项 |
| v0.4 | 2026-07-15 | Codex | 因新增系统状态与错误页 PRD 顺延文档编号，并同步通用组件引用；权限规则范围不变 |
| v0.5 | 2026-07-17 | Codex | 明确实例内容范围与用户访问权限的术语边界：A端设置实例有效期和匿名访问，B端在非匿名场景授权具体顾客，C端统一校验；MVP 不设置单次分享链接有效期。 |
| v0.6 | 2026-07-20 | Codex | 删除页面实例有效期：MVP 实例上线后默认长期有效，直至下线；A端只设置匿名访问，B端授权具体顾客，身份验证会话有效期仍作为独立待确认规则。 |

## 一、文档目的

定义 C端内容资产和页面模板的访问权限、异常处理和降级规则。

本文档承接内容资产、功能模块、页面模板、页面 PRD 和通用组件的定义结果，不反向决定页面结构、模块边界或组件样式。

## 二、权限设计原则

- 权限规则只决定“谁在什么条件下可以访问什么内容或流程”，不反向决定模块是否成立、页面如何排版或组件如何设计。
- 进入已上线页面实例或其他已启用页面的数据，只有通过实例与页面访问规则后才可面向顾客展示；如需进一步限制，必须由页面、内容资产或流程配置显式声明权限规则。
- 需要身份验证时，由页面、模块或流程自动调用 `06-通用组件说明.md` 中的身份验证组件；用户不需要手动选择验证路径。
- 权限不足、验证失败、配置缺失或验证服务不可用时，必须提供明确提示和返回路径，不进入空页面或无反馈状态。
- 涉及手机号、邮箱、访问码、链接口令等个人信息或身份信息收集时，必须具备隐私 / 同意说明；缺失时不得收集。

### 2.1 跨端权限术语

| 术语 | 含义 | 责任端 |
|---|---|---|
| 实例内容范围 | 一个项目页面实例实际包含哪些文字、图片、视频、PDF、户型或其他内容资产。 | A端在项目管理中配置；它不是“哪些顾客能看”的权限。 |
| 用户访问权限 | 某个访问者或顾客是否可以访问该实例。 | A端设置是否允许匿名访问；不允许匿名时，B端分享流程授权具体顾客；C端执行校验。 |

MVP 不设置实例有效期或单次分享链接有效期。实例上线后默认长期有效，直至实例下线；所有链接共同受实例状态、匿名访问规则和 B端顾客授权约束。

## 三、访问身份类型

| 身份类型 | 定义 | 典型场景 | 当前状态 |
|---|---|---|---|
| 匿名顾客 | 未经过任何身份验证的访问者 | 公开项目页面、公开资料、投放落地页 | 默认支持 |
| 分享访问顾客 | 通过销售、渠道、活动或企业分享链接进入的访问者 | 销售分享页、指定资料页、轻量组合页 | 实例允许匿名时可直接访问；不允许匿名时须通过 B端授权结果校验 |
| 已验证顾客 | 已通过手机号、邮箱、验证码、访问码或链接口令验证的访问者 | 受限页面、受限资料、来场预约、指定客户页面 | 验证方式待确认 |
| 内部演示访问者 | 销售、运营或企业内部人员用于演示的访问者 | 桌面 / PAD 销售演示页、内部预览 | 是否纳入 C端权限待确认 |

## 四、内容资产权限

内容资产默认不在本文件中逐项重复判断是否公开。对于 A端生成的页面实例，哪些资产进入页面由“实例内容范围”决定；对于不属于该实例流程的既有页面，仍按 `01-内容资产字典.md`、其装配启用状态和页面 / 模块调用关系决定。

以下情况必须显式配置权限或隐藏规则：

- 价格与费用：受 B端价格控制开关影响；关闭时不得展示金额或费用入口。
- 受限资料：如销售资料、客户专属资料或企业指定不公开资料，需要声明访问身份、验证方式和失败处理。
- 个人信息收集资料：涉及顾客手机号、邮箱、预约信息或身份信息时，必须有隐私 / 同意说明。
- 外部页面嵌入：外部页面自身权限不由 C端强行判断，但 C端入口是否可见、不可访问提示和责任边界需要配置。

## 五、页面访问权限

页面访问权限由页面模板和页面 PRD 消费，不由功能模块自行决定。

| 权限场景 | 规则口径 | 失败 / 缺失处理 |
|---|---|---|
| 公开页面 | 实例已上线且允许匿名访问时，匿名顾客可直接访问 | 模块缺失按页面 PRD 降级；实例下线时显示统一不可用状态 |
| 分享页面 | 先校验实例状态；允许匿名时可直接访问，不允许匿名时校验 B端对具体顾客的授权结果 | 未获得授权时提示无访问权限；A端不补选顾客 |
| 受限页面 | 必须配置访问身份、验证方式和失败处理；身份验证会话有效期按组件规则处理，不作为实例有效期 | 配置缺失时页面不可发布或入口隐藏 |
| 指定客户页面 | 具体顾客授权由 B端分享流程确定，C端消费授权结果 | 身份无法确认或授权不匹配时提示无权限并提供返回路径 |
| 内部演示页面 | 是否纳入 C端正式权限体系待确认 | 不应默认暴露给匿名顾客 |

## 六、功能模块的权限消费方式

功能模块只声明自身是否需要消费权限，不在模块内定义完整权限策略。

- `M-26 来场预约`：如需要确认身份，应自动调用身份验证组件；未配置隐私 / 同意说明时不得收集个人信息。
- `M-25 外部页面嵌入`：C端只处理入口权限、不可访问提示和返回路径，不承诺识别外部页面内部登录态或业务权限。
- 价格、费用、销售状态相关模块：消费价格控制、内容可见性和资产启用状态，不自行定义权限开关。

Widget 注册记录不设置“权限消费方式”。Widget 内部何时调用身份验证、如何处理内部受限动作，由 Widget 开发定义和相应页面 / 流程规则约束；A端只读登记 Widget 定义，不人工配置这类行为。

## 七、通用组件的权限消费方式

身份验证组件只承载验证输入和反馈，不决定哪些页面、资料或流程需要验证。

| 组件 | 消费的权限配置 | 不承担内容 |
|---|---|---|
| 身份验证组件 | 验证方式、触发场景、字段配置、有效期、重试次数、失败处理、返回路径、隐私 / 同意说明 | 不定义访问策略、销售分配、CRM 同步、获客归属、登录态技术实现和埋点统计 |
| 导航与返回组件 | 调用页面或模块传入的目标可访问结果、来源路径、默认返回路径和不可用处理 | 不决定页面信息架构、菜单样式、权限策略、销售路径和埋点统计 |
| 对象对比组件 | 调用页面或模块传入的对象权限结果和字段可见性 | 不决定对象是否可比、价格是否可见或结果是否可分享 |
| 户型卡片组件 | 调用模块传入的字段可见性和入口可访问结果 | 不决定价格权限、客户可见权限和销售分配 |

## 八、页面 PRD 中的权限降级

页面 PRD 需要说明：

- 主模块无权限或不可用时，页面是否不可发布、隐藏入口，还是展示无权限提示。
- 辅助模块无权限或不可用时，页面是否仍可访问。
- 触发身份验证后，验证成功、失败、过期、取消和服务不可用分别返回哪里。
- 页面中涉及价格、费用、资料下载、预约提交、外部嵌入时，是否需要额外权限或同意说明。

## 九、权限异常与提示规则

| 异常类型 | 处理规则 |
|---|---|
| 实例已下线 | 所有分享链接统一展示实例不可用状态；MVP 不存在实例到期或单次分享链接到期 |
| 实例不允许匿名且顾客未获授权 | 提示当前内容无访问权限；具体授权返回 B端处理，A端不选择顾客 |
| 无访问权限 | 提示当前内容不可访问，并提供返回路径 |
| 验证方式未配置 | 不展示验证入口，不收集身份信息 |
| 隐私 / 同意说明缺失 | 不得收集手机号、邮箱、预约信息等个人信息 |
| 验证失败 | 提示失败原因或通用失败提示，允许重试或返回 |
| 验证过期 | 提示重新验证，不保留未确认的受限访问状态 |
| 重试次数超限 | 暂停继续验证，并按配置展示联系或返回入口 |
| 服务不可用 | 提示稍后再试或联系销售，不进入空白流程 |

## 十、权限与数据统计关系

权限规则只决定访问和验证状态，统计口径进入 `08-埋点与统计规则.md`。是否记录分享来源、验证通过、预约提交、受限资料访问、无权限拦截等事件，应由统计文档定义，不能在权限文档中反向定义销售归因或 CRM 线索规则。

## 十一、待确认问题

| 编号 | 待确认问题 | 影响范围 | 当前处理 |
|---|---|---|---|
| AC-01 | 分享页面、受限页面或流程采用哪种身份验证方式：手机号、邮箱、验证码、访问码、链接口令或其他方式 | 身份验证组件、页面模板、受限资料、来场预约 | 当前只要求需要验证时自动调用身份验证组件，不预设验证方式 |
| AC-02 | 除项目页面实例的匿名访问开关外，哪些受限动作仍必须自动触发身份验证 | 受限资料、来场预约、指定流程 | 项目页面实例是否允许匿名已由 A端实例配置确定；其他动作仍由页面 PRD 或流程配置声明 |
| AC-03 | 身份验证会话的有效期、重试次数、过期处理和失败提示规则如何设置 | 身份验证组件、权限异常、页面访问 | 页面实例不设置有效期；本项只讨论身份验证会话规则，不增加实例或分享链接有效期 |
| AC-04 | 验证通过后是否需要绑定顾客身份，并是否进入销售线索、CRM 或统计系统 | 销售运营、CRM、数据统计、隐私合规 | 当前不纳入身份验证组件边界，后续由获客 / CRM / 埋点规则确认 |
