41 lines
3.9 KiB
Markdown
41 lines
3.9 KiB
Markdown
# 连接权限、账户还款与默认 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 改动保留。
|