Files
huang 4aab0bcbf2
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m39s
提案以及归档
2026-04-18 09:10:29 +08:00

2.6 KiB
Raw Permalink Blame History

Requirement: 超级管理员可设置和修改全局操作密码

系统 SHALL 提供 POST /api/admin/super-admin/operation-password 接口,仅允许 user_type=1(超级管理员)调用,用于设置或修改全局操作密码。密码以 bcrypt 哈希值存储于 Redis。

Scenario: 超级管理员首次设置操作密码

  • WHEN 超级管理员调用 POST /api/admin/super-admin/operation-password,传入合法的 passwordconfirm_password(两者一致)
  • THEN 系统将 bcrypt 哈希后的密码写入 Redis返回 200 成功

Scenario: 超级管理员修改已有操作密码

  • WHEN 操作密码已存在,超级管理员重新调用设置接口传入新密码
  • THEN 系统覆盖 Redis 中的旧哈希值,返回 200 成功

Scenario: 非超级管理员调用被拒绝

  • WHEN user_type != 1 的账号调用 POST /api/admin/super-admin/operation-password
  • THEN 系统返回 403错误消息"仅超级管理员可设置操作密码"

Scenario: 两次密码不一致

  • WHEN 超级管理员传入的 passwordconfirm_password 不一致
  • THEN 系统返回 400错误消息"两次输入的密码不一致"

Requirement: 可查询操作密码设置状态

系统 SHALL 提供 GET /api/admin/super-admin/operation-password/status 接口,返回操作密码是否已设置(布尔值),不返回密码本身,仅超级管理员可调用。

Scenario: 查询已设置状态

  • WHEN 操作密码已设置,超级管理员调用状态查询接口
  • THEN 返回 {"is_set": true}

Scenario: 查询未设置状态

  • WHEN 操作密码未设置Redis 中无对应 key超级管理员调用状态查询接口
  • THEN 返回 {"is_set": false}

Requirement: 操作密码验证使用全局操作密码

系统 SHALL 将所有需要操作密码验证的接口(目前为 agent-recharges 线下充值确认)改为验证全局操作密码,而非当前登录用户的登录密码。

Scenario: 操作密码正确时通过验证

  • WHEN 调用需要操作密码的接口,传入正确的全局操作密码
  • THEN 验证通过,接口正常执行后续业务逻辑

Scenario: 操作密码错误时拒绝

  • WHEN 调用需要操作密码的接口,传入错误的密码
  • THEN 系统返回 400错误消息"操作密码错误"

Scenario: 操作密码未设置时拒绝

  • WHEN Redis 中无操作密码,调用需要操作密码的接口
  • THEN 系统返回 400错误消息"操作密码未设置,请联系超级管理员"