feat(auth): 实现禁用用户拦截机制防止禁用用户访问

- 新增工具函数 isUserDisabled 判断用户是否被禁用
- 新增 blockDisabledUser 函数拦截禁用用户,清除登录态弹窗提示并跳转登录页
- UserContext 启动时异步校验用户状态,禁用则拦截并退出
- UserContext 的 refreshUser、syncFromStorage、loginUser 接口均增加禁用检查
- 登录相关 API 登录前校验用户状态,禁用时拒绝登录
- 登录页面保存登录态前校验,禁用用户弹窗提示阻断登录流程
- 用户状态定义:status 0 为正常,1 为禁用
- 新增用户管理页支持查询和管理用户状态
- 文档中补充用户状态与禁用机制说明及拦截层级介绍
This commit is contained in:
2026-07-14 23:11:29 +08:00
parent dc123d79a2
commit c870e75b3b
8 changed files with 141 additions and 2 deletions

View File

@@ -7,6 +7,13 @@
- 门店店员身份判断:通过 `getMyClerk()` API (`/shop/shop-store-user/my`) 返回值判断
- VIP/分销商申请记录表:`ShopDealerApply`,状态码 10待审核/20通过/30驳回
## 用户状态与禁用机制
- 用户状态字段:`User.status``0` = 正常,`1` = 禁用
- 禁用接口:`updateUserStatus(userId, status)` → PUT `/system/user/status`
- 禁用拦截工具:`src/utils/auth.ts``isUserDisabled(user)``blockDisabledUser(user)`
- 拦截层级UserContext 启动异步校验 + refreshUser/syncFromStorage/loginUser 检查 + 登录 API 和登录页检查
- 用户管理页:`src/pages/store/users/index.tsx`(门店中心入口,支持搜索/筛选/查看详情/禁用启用)
## VIP 会员机制
- 用户在 `vip-upgrade` 页面提交门店名称和地址申请
- 门店店员在 `vip-review` 页面审核(通过/驳回)