51 lines
5.8 KiB
Markdown
51 lines
5.8 KiB
Markdown
# 权限影响提示与快捷授权
|
||||
|
|
|
|||
|
|
本次修改针对网页家庭入口。使用现有授权接口,未修改服务端权限规则,未为任何真实用户开通授权。网页已发布到 https://82.157.201.114/,版本 `0.99.42-rc.permission-impact1`。
|
|||
|
|
|
|||
|
|
## 数据用途授权
|
|||
|
|
|
|||
|
|
| 授权 | 缺少时的影响 | 依赖与边界 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 保存文字记录 | 新聊天文字不能保存,无法从这些文字生成故事、摘要或记忆 | 通话条目仍可存在;故事和记忆另需相应授权。未入库文字不能凭补授权恢复 |
|
|||
|
|
| 保存原始录音 | 新聊天不生成可回听、下载的录音;已有录音访问也受当前有效授权检查约束 | 设备与云端录制能力仍需支持;播放和下载是两种独立权限。补授权不能生成过去未录制的音频 |
|
|||
|
|
| 整理故事与摘要 | 新聊天不自动整理为故事候选或摘要 | 需要文字保存;候选仍需家人核对。不会自动补齐历史故事 |
|
|||
|
|
| 个性化记忆 | 新聊天不使用长期记忆,也不从聊天生成并同步新记忆 | 生成新记忆需要文字保存;故事摘要需要故事整理。家人的记忆访问权另行管理 |
|
|||
|
|
| 家庭资源分享 | 尚未记录家庭分享的数据用途授权,家庭角色也不会自动创建资源分享 | 开启此项目不自动开放任何资源,仍需在内容分享中指定资源、接收人、用途、能力和有效期 |
|
|||
|
|
|
|||
|
|
设置路径:**长者资料 → 选择当前长者 → 资料与授权 → 新增分项授权**。家庭所有者、管理员、编辑者可以新增分项授权;查看者看到明确的联系对象和设置路径。
|
|||
|
|
|
|||
|
|
说明依据:`internal/saas/service.go` 的 `GrantConsent` 校验 `subject.write`;`internal/callmemory/events.go` 检查文字保存;录音、故事提取、记忆处理分别检查自身授权。现有 `family_sharing` 是单独记录的数据用途授权,当前分享服务主要依据具体资源分享授权,并不统一以该字段拦截全部资源分享。因此页面没有断言“未开通家庭分享就绝对无法分享”;本次没有扩大为服务端分享策略变更。
|
|||
|
|
|
|||
|
|
## 内容访问与家庭角色
|
|||
|
|
|
|||
|
|
- 设备聊天文字:家庭所有者默认保留访问权,其他角色需由所有者在 **故事与记忆 → 记忆授权** 同时开通“查看”和“敏感记忆”。权限说明依据 `callmemory.ResolveAccess` 与 `records.go` 的敏感内容校验。
|
|||
|
|
- 记忆:查看普通记忆、修改记忆和查看敏感记忆分别管理;修改影响新增、编辑、删除、使用范围调整。只有家庭所有者可授予这些访问权限。
|
|||
|
|
- 录音:播放与下载分别授予,所有者也不自动拥有录音访问权。现有聊天录音提供“授权本账号播放/下载 24 小时”快捷按钮;指定其他成员由所有者或管理员在早期聊天详情的“聊天语音 → 显式授权”操作。
|
|||
|
|
- 家庭角色:成员管理、设备管理、审核故事、隐私请求依角色开放。权限对照明确区分管理能力、数据用途授权和具体内容访问权;个性化记忆授权不能替代家人的记忆访问授权。
|
|||
|
|
|
|||
|
|
## 页面行为
|
|||
|
|
|
|||
|
|
首页、聊天记录、故事与记忆和内容分享按功能显示缺失授权;长者资料和数据与授权显示完整五项状态、影响及依赖。创建长者的授权步骤使用相同说明。
|
|||
|
|
|
|||
|
|
有权管理的账号在提示旁点击“去授权…”打开当前长者与单项用途的确认窗口。必须勾选告知说明才能提交,取消不写入;提交包含现有隐私政策版本、告知摘要和用途范围。不会自动捎带开通文字保存等其他项目。
|
|||
|
|
|
|||
|
|
授权读取独立于故事、事实、隐私请求等数据读取。失败显示“状态未知”与重试,避免将请求失败显示为未授权;切换长者或登录身份立即屏蔽旧状态并关闭旧窗口。授权成功刷新状态与录音组件。
|
|||
|
|
|
|||
|
|
聊天记录的 `PARTIAL` 显示为“文字不完整或未保存”,避免零条文字时宣称“已保存部分文字”。当前授权状态不被当作某次历史通话缺失的已确认原因。无正文时分别提示当时可能未授权、文字未送达或数据已清理。
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
|
|||
|
|
- 网页 TypeScript 检查、生产构建通过;30 项既有单元回归与 2 项授权有效期、撤回和用途隔离检查通过。
|
|||
|
|
- `test/e2e/consent-guidance.mjs` 使用真实家庭工作台与合成响应,验证缺失权限说明、取消零写入、显式单项授权、依赖功能、长者切换隔离、读取失败重试、查看者限制、聊天和录音独立权限说明与手机布局。
|
|||
|
|
- 既有故事来源聊天分页与撤权清空正文、录音播放下载与撤权清空链接回归通过。
|
|||
|
|
- 记忆操作回归通过:编辑期间保持核对过的版本、删除范围确认、所有者访问权不可关闭、手机布局及撤权清空正文。旧测试的“修正/删除”按钮定位已按现有详情页的“编辑记忆/删除记忆”及折叠区域入口更新。
|
|||
|
|
- 截图保存在 `.design-evidence/consent-guidance/`,只包含合成资料。
|
|||
|
|
|
|||
|
|
本次仅部署网页。小程序未更新;历史未保存文字与未生成录音没有恢复。
|
|||
|
|
|
|||
|
|
## 发布验证
|
|||
|
|
|
|||
|
|
基于线上 `0.99.41-rc.consent-design1` 构建独立发布包,只叠加 7 个权限提示相关源文件,保留最新的长者创建授权样式。实际发布包重新通过生产构建、32 项单元检查和权限、录音、记忆三组界面回归。
|
|||
|
|
|
|||
|
|
线上逐一核对 126 个静态文件和入口路由,运行时配置哈希一致。API 与 worker 健康检查通过,其他服务容器与启动时间、数据库版本保持一致,没有执行迁移或业务数据写入。匿名浏览器检查确认新资源加载,桌面与手机入口正常,无脚本异常或静态资源失败。发布凭据与截图见 `../../.local-evidence/permission-impact-20261005/`(工作区证据目录)。
|