edit | blame | history | raw

用户注册审批功能测试指南

功能概述

本系统实现了完整的用户注册审批流程,包括:

  1. 用户自主注册功能
  2. 管理员审批功能
  3. 登录状态检查
  4. 多管理员支持(一人审批即可)

数据库迁移

由于项目依赖问题,请手动执行以下SQL语句添加status字段:

ALTER TABLE lunaruser_myuser 
ADD COLUMN status VARCHAR(20) DEFAULT 'approved' 
COMMENT '用户状态';

或者运行以下Python脚本:

cd backend
python add_status_field.py

测试步骤

1. 用户注册测试

  1. 访问登录页面
  2. 点击"立即注册"链接
  3. 填写注册表单:
  • 用户名(必填)
  • 姓名(必填)
  • 手机号(必填)
  • 密码(必填,至少6位)
  • 确认密码(必填)
  • 所属分组(可选)
  1. 点击"注册账号"
  2. 预期结果:显示"你的注册申请已提交,待管理员审核中!"

2. 管理员审批测试

  1. 使用超级管理员账号登录
  2. 进入用户管理页面
  3. 点击"注册用户审批"按钮
  4. 查看待审批用户列表
  5. 对某个用户点击"通过"或"不通过"
  6. 预期结果:
  • 通过后,用户状态变为"已通过",is_active变为true
  • 不通过后,用户状态变为"未通过"

3. 登录状态检查测试

待审核状态登录

  1. 使用待审核的用户名和密码登录
  2. 预期结果:显示"你提交的注册还在审批中,暂时无法登录,可联系管理员确认!"

未通过状态登录

  1. 使用未通过的用户名和密码登录
  2. 预期结果:显示"你的注册申请未通过审核,无法登录!"

已通过状态登录

  1. 使用已通过的用户名和密码登录
  2. 预期结果:正常登录

API接口说明

注册接口

  • URL: POST /api/user/register
  • 参数:
    json { "username": "testuser", "name": "测试用户", "phone": "13800138000", "password": "123456", "confirm_password": "123456", "groups": [] }
  • 响应:
    json { "success": true, "msg": "你的注册申请已提交,待管理员审核中!", "data": { "id": 1, "username": "testuser" } }

审批列表接口

  • URL: GET /api/user/approval/
  • 响应:
    json { "success": true, "results": [...] }

审批操作接口

  • URL: POST /api/user/approval/{user_id}/approve/
  • 参数:
    json { "action": "approve" }
  • 响应:
    json { "success": true, "msg": "用户审批已通过" }

文件修改清单

后端文件

  1. backend/apps/lunaruser/models.py - 添加status字段
  2. backend/apps/lunaruser/serializers.py - 添加注册和审批序列化器
  3. backend/apps/lunaruser/views.py - 添加注册和审批视图
  4. backend/apps/lunaruser/urls.py - 添加注册和审批路由
  5. backend/apps/lunaruser/migrations/0003_myuser_status.py - 数据库迁移文件

前端文件

  1. frontend/src/pages/login/Login.vue - 添加注册表单
  2. frontend/src/pages/user/UserManagement.vue - 添加审批抽屉
  3. frontend/src/restful/api.js - 添加API接口
  4. frontend/src/api/user.js - 添加API接口

注意事项

  1. 所有现有用户的status默认为'approved',可以正常登录
  2. 新注册用户的status默认为'pending',需要管理员审批
  3. 审批通过后,status变为'approved',is_active变为true
  4. 审批不通过后,status变为'rejected',is_active保持false
  5. 多个超级管理员时,任何一人审批即可生效