feature/auth-one-time-password-r2
main
Why: 配合 Backend 一次性密码口径(用户 2026-10-19 决定):管理员可设/生成初始密码与一次性密码,初始/一次性密码登录后强制改密;登录页去掉一次性密钥登录,移除恢复提案界面与调用。
Evidence:
POST /api/admin/users/{owner}/one-time-password
oneTimePassword
grant_setup
current_required
one_time_password
src/recovery.ts
git diff --check
npx tsc --noEmit -p .
npx vitest run
Impact: 依赖 Backend 同名分支 PR 的新端点;Dev 改钉组合验证后部署(另行请示)。非阻塞后续:恢复全仓扫描护栏测试(防止恢复提案/登录 Key 调用回归);停用账号行仍显示发放按钮(后端 403)。
Refs: Dev 任务卡 feature/auth-one-time-password。
No dependencies set.
The note is not visible to the blocked user.
Why: 配合 Backend 一次性密码口径(用户 2026-10-19 决定):管理员可设/生成初始密码与一次性密码,初始/一次性密码登录后强制改密;登录页去掉一次性密钥登录,移除恢复提案界面与调用。
Evidence:
POST /api/admin/users/{owner}/one-time-password并展示oneTimePassword;受保护账号(超管)隐藏该操作并显示保护原因;强制改密页接受grant_setup/current_required/one_time_password,后者不显示当前密码框;登录页仅保留用户名+密码;删除src/recovery.ts与恢复提案调用。git diff --check通过,npx tsc --noEmit -p .退出 0,npx vitest run49 文件 571 项通过。Impact: 依赖 Backend 同名分支 PR 的新端点;Dev 改钉组合验证后部署(另行请示)。非阻塞后续:恢复全仓扫描护栏测试(防止恢复提案/登录 Key 调用回归);停用账号行仍显示发放按钮(后端 403)。
Refs: Dev 任务卡 feature/auth-one-time-password。