diff --git a/docs/云端全项目测试报告.md b/docs/云端全项目测试报告.md index 632f62b..fa89a8f 100644 --- a/docs/云端全项目测试报告.md +++ b/docs/云端全项目测试报告.md @@ -1,5 +1,19 @@ # 云端全项目测试报告 +## MySQL 分组权限与通知授权实机复验(2026-10-04 07:35) + +- [x] 补录前段通过超管页面将 SQLite 迁移至 MySQL `smailaccept20261004`,任务 `dbmig-2d65a01e816f6dee982b696b5ecd900c` 完成后仅重启 Smail。此切换用于补测业务权限,不重复计入六向迁移覆盖。精确目标库权限仍供当前运行使用,历史库及迁移备份尚未清理。 +- [✓] 本段交互 SSH 只读核对:Smail、Nginx 均 active,主进程 `2022911`、`Result=success`、`NRestarts=0`;MySQL 活动连接显示 Smail 使用 `smailaccept20261004`。覆盖下方历史 SQLite 运行状态,不表示旧库已经删除。 +- [x] 补录前段通过超管页面新建 `dbreview`,名称“数据库权限验收”,管理员、甲乙两组;验证超管本人密码生成安全码,未绑定外部安全邮箱。本段实际登录成功,进入邮箱及用户管理。仅证明已开启安全码、未绑定外部邮箱时可正常密码登录,不代表安全码恢复全链路已验收。 +- [✓] 新管理员用户管理只列甲、乙两组,不显示默认分组、超管或组外 `testoutside`。展开后同级管理员编辑按钮禁用,同组普通用户编辑按钮可用;未据此宣称后端越权绕过测试通过,也未修改这些已有成员。 +- [✓] 超管把 `dbreview` 改为普通用户但保留两组时,点击确认被拒绝,提示“普通用户只能属于一个分组,请在分组管理中选择一个分组”。分组弹窗改为单选,手动选乙组并应用,验证超管本人密码后保存。超管列表确认其为乙组普通用户、安全码已开启、外部邮箱未绑定、状态正常。 +- [✓] 保留降级前管理员会话,点击用户管理“刷新列表”后跳转登录页。原密码重新登录成功,角色为普通用户;旧设置弹窗没有自动残留,重新打开设置后无用户管理、配置管理入口。这是下次受保护操作触发会话失效,不是实时推送踢出或所有协议旧连接撤权。 +- [✓] 超管仅为 `dbreview` 开启通知授权,二次确认后显示“待生成凭据”;生成并确认后显示已开启,管理弹窗关闭,列表下出现复制授权码、隐藏控件。`testadmin`、`testuser`、`testoutside` 的通知状态仍为未开启,超管原授权未改。本段未进行逐字符凭据比对。 +- [✓] 普通用户原会话刷新通知状态后显示本人已开启及掩码凭据,没有授权开关、限额编辑或重置按钮。点击安全验证、输入本人密码后出现复制凭据及隐藏控件;随后手动隐藏。未复制凭据到报告或 Git,未测试错误密码、显示超时、SMTP 登录与真实投递。 +- [✓] 超管再次关闭 `dbreview` 通知授权并二次确认;普通用户刷新后显示未开启,凭据查看入口消失,网页登录仍有效。只关闭网页授权状态闭环,不以页面撤销提示代替 SMTP 旧凭据、存量连接及配额实测。 +- [x] 保留临时账号 `dbreview` 为乙组普通用户,安全码已开启、外部邮箱未绑定、通知授权已关闭,供下一步复用。临时浏览器快照已在隐藏凭据后覆盖;未删文件、清库、修改源码、重新部署或操作其他项目。此前用户确认附件正常保存的证据保持原范围,不重复计数。 +- [!] MySQL 其他功能、PostgreSQL 对应权限链路、普通管理员实际授权操作、客户端协议、外部安全邮箱、Telegram、受保护恢复、完整续期及最终全新初始化与仅限 Smail 清理仍未闭合;全项目仍不放行。 + ## 名称边界与登录资源恢复实机复验(2026-10-04 06:55) - [✓] 接续部署 `review-20261004-2aa7e7f`,通过超管用户管理编辑 `testuser`:十一字名称“一二三四五六七八九十甲”提交后被拒绝,显示“显示名称须为 1–10 个字符,且不能包含控制字符”,编辑弹窗保留。改为十字名称“一二三四五六七八九十”后保存成功,普通用户刷新后在本人资料页读到该值。 diff --git a/docs/生产整改验收清单.md b/docs/生产整改验收清单.md index 662ff1e..8e13567 100644 --- a/docs/生产整改验收清单.md +++ b/docs/生产整改验收清单.md @@ -1,5 +1,14 @@ # 生产整改验收清单 +## MySQL 分组与通知权限复审(2026 年 10 月 4 日 07:35) + +- [x] 前段已通过网页切换 MySQL `smailaccept20261004`;本段只读核对当前运行库、主进程 `2022911`、自动重启零及 Smail、Nginx active。当前不是 SQLite,历史测试库和迁移备份仍待最终清理。 +- [✓] 新管理员 `dbreview` 仅开启安全码、未绑定外部邮箱可正常密码登录;用户管理只显示甲乙两组,默认组及组外账号不出现。只证明页面操作范围,不扩大为后端越权测试。 +- [✓] 多分组管理员降级时,未选择单组被明确拒绝;手动选择乙组并验证超管密码后保存,超管列表确认普通用户。旧管理员会话点击刷新列表返回登录页;重新登录为普通用户,没有用户管理、配置管理入口及旧管理弹窗残留。 +- [✓] 超管为该账号单独开启通知、生成凭据;普通用户刷新后可查看本人授权状态,验证本人密码后进入凭据查看状态,无自行授权或重置入口。随后超管关闭授权,用户刷新显示未开启且查看入口消失,原网页登录仍有效。 +- [x] 临时账号保留为乙组普通用户,安全码开启、外部邮箱未绑定、通知授权关闭;未改主要三账号配置,未删文件或清库。敏感凭据不进入报告及 Git。详细证据与限制见《云端全项目测试报告》同时间章节。 +- [!] 本节不代替安全码恢复、错误密码及凭据超时、通知 SMTP 真发信及旧连接撤权、配额、三库全功能、外部验证、完整恢复续期及最终清理初始化;全项目仍未放行。 + ## 名称提示与登录资源恢复复审(2026 年 10 月 4 日 06:55) - [✓] 云端新版 `2aa7e7f` 的新建账号、编辑账号和本人资料三个入口,十一字显示名称均明确提示“显示名称须为 1–10 个字符,且不能包含控制字符”。超管保存十字名称后,普通用户本人资料页实际读到;普通用户恢复原名后,超管刷新确认正常。未修改角色、分组及凭据。