Files
WorthPath/docs/update-connections-repayment-users-2026-10-05.md

41 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 连接权限、账户还款与默认 admin 删除限制
完成时间:2026-10-05 20:23(UTC+8)。
## 已授权连接
在“设置与备份 → 连接 Agent → 我的连接”点击“修改权限”。OAuth 和个人令牌均可选择只读、草稿或直接写入,以及隐藏账户读写;需要验证当前密码。只能修改本人有效且未撤销的连接,授权期限保持不变。只读系统账号只能授予查询权限。
实际权限范围变化会取消本连接未确认草稿,助手需要重新生成,不会自动执行旧草稿。相同范围再次保存不取消草稿。每次认证读取最新权限,OAuth 刷新与权限编辑锁定同一授权记录,避免并发刷新覆盖新权限。OAuth 访问令牌过期、授权期限仍有效时也可以修改权限;客户端刷新时指定已移除的 scope 会被拒绝,需要使用允许范围或重新授权。
网站新增 `PATCH /api/agent/connections/:id`,参数为 `scopes` 和当前 `password`;OpenAPI 同步描述请求,不新增 MCP 管理工具。
## 负债账户还款
修复 MCP `movement_create(operation=repay)` 草稿确认拒绝信用卡等负债账户的问题。付款方必须是资产账户,收款方可以是借入债务或负债账户。保留 repay 记录类型,双边余额、历史和确认结果在同一事务提交;不把账户还款改成转账,也不创建债务关联。
amount/received 是各自原币本金,fee 为负表示优惠、为正表示手续费。同币种本金一致。负债账户超额还款保存为溢缴存款;独立债务仍禁止超额还款。配对还款记录可修改或删除,后续余额重放保持一致;隐藏权限、归属和账目状态检查仍生效。
## 仅默认 admin 可删除
按用户澄清后的规则,只有账号名为 admin 且角色为管理员的默认账号可删除,其他管理员、普通用户和只读用户都不能删除。前端仅为非当前登录的默认 admin 显示“删除默认 admin”;后端独立拒绝其他账号的删除请求。默认账号改名后不再符合删除条件。
删除默认 admin 需使用另一位已完成首次改密、未封禁的管理员登录,输入 admin 并验证当前管理员密码。不能删除当前登录账号,必须保留可用管理员。默认 admin 的私人数据和授权级联删除,共享图标保留。其他用户账号、会话、财务数据和授权不受被拒绝的删除请求影响。
## 余额颜色
账户卡片、详情、账户选择器、还款弹窗、历史余额和总览统一颜色:非负余额为绿色,欠款和透支为红色。负债账户存储的溢缴款转为正数显示绿色;显示符号继续使用十进制字符串,不改动数据库金额。
## 验证与清理
- 57 项单元测试通过;HTTP 测试显式设置并恢复网络开关,避免本地 .env 政策污染测试。
- 最终 8 项独立 MySQL/REST/官方 SDK 集成测试通过;另有正式数据库迁移回归通过。
- 新回归覆盖权限立即生效、范围不变保留草稿、变更取消草稿、OAuth 刷新与编辑并发、授权期限不延长、过期/撤销/跨用户/只读限制及 OpenAPI。
- 真正的账户还款草稿通过批量确认,优惠后的双方余额正确;修改、超额还款及撤销重算通过。
- 默认 admin 删除通过;普通用户、只读用户和非默认管理员删除均返回 403,保留账号与数据。
- 网页在独立临时库中验证权限表单、还款草稿预览、默认 admin 删除入口,以及余额绿色/欠款红色。未替用户确认真实 OAuth、草稿或删除账号。
- 前后端类型检查与生产构建通过。数据库表和字段缺失注释均为 0;本次无需新增迁移。
- 清理独立验收服务、测试数据库及一次性编辑/验收脚本;保留可重复运行的回归测试。截图仅保存在仓库外,不放入 docs。
未推送或部署。现有 compose.yaml 和 docker.md 改动保留。