Files
MyAiDesk/nomifun-tauri/test_user_management.sh
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

121 lines
3.4 KiB
Bash
Executable File

#!/bin/bash
# 用户管理 API 测试脚本
BASE_URL="http://localhost:8787"
TOKEN=""
echo "==================================="
echo "用户管理 API 测试"
echo "==================================="
echo ""
# 1. 检查系统状态
echo "1. 检查系统状态..."
STATUS=$(curl -s "${BASE_URL}/api/auth/status")
echo "响应: $STATUS"
echo ""
# 2. Setup 初始管理员(如果需要)
NEEDS_SETUP=$(echo "$STATUS" | grep -o '"needs_setup":true' | wc -l)
if [ "$NEEDS_SETUP" -gt 0 ]; then
echo "2. 创建初始管理员账号..."
SETUP_RESULT=$(curl -s -X POST "${BASE_URL}/api/auth/setup" \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "Admin123456!"
}')
echo "响应: $SETUP_RESULT"
TOKEN=$(echo "$SETUP_RESULT" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
echo "Token: $TOKEN"
echo ""
else
echo "2. 系统已初始化,使用 admin 登录..."
LOGIN_RESULT=$(curl -s -X POST "${BASE_URL}/login" \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "Admin123456!"
}')
echo "响应: $LOGIN_RESULT"
TOKEN=$(echo "$LOGIN_RESULT" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
echo "Token: $TOKEN"
echo ""
fi
if [ -z "$TOKEN" ]; then
echo "错误: 未能获取 token,测试终止"
exit 1
fi
# 3. 列出所有用户
echo "3. 列出所有用户 (GET /api/users)..."
USERS=$(curl -s -X GET "${BASE_URL}/api/users" \
-H "Authorization: Bearer $TOKEN")
echo "响应: $USERS"
echo ""
# 4. 创建新用户
echo "4. 创建新用户 (POST /api/users)..."
CREATE_RESULT=$(curl -s -X POST "${BASE_URL}/api/users" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"password": "Test123456!",
"role": "user"
}')
echo "响应: $CREATE_RESULT"
USER_ID=$(echo "$CREATE_RESULT" | grep -o '"id":"[^"]*"' | head -1 | cut -d'"' -f4)
echo "新用户ID: $USER_ID"
echo ""
# 5. 获取单个用户
if [ -n "$USER_ID" ]; then
echo "5. 获取用户详情 (GET /api/users/$USER_ID)..."
USER_DETAIL=$(curl -s -X GET "${BASE_URL}/api/users/${USER_ID}" \
-H "Authorization: Bearer $TOKEN")
echo "响应: $USER_DETAIL"
echo ""
fi
# 6. 更新用户
if [ -n "$USER_ID" ]; then
echo "6. 更新用户角色为 admin (PUT /api/users/$USER_ID)..."
UPDATE_RESULT=$(curl -s -X PUT "${BASE_URL}/api/users/${USER_ID}" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"role": "admin"
}')
echo "响应: $UPDATE_RESULT"
echo ""
fi
# 7. 再次列出所有用户,验证更新
echo "7. 再次列出所有用户,验证更新..."
USERS=$(curl -s -X GET "${BASE_URL}/api/users" \
-H "Authorization: Bearer $TOKEN")
echo "响应: $USERS"
echo ""
# 8. 删除用户
if [ -n "$USER_ID" ]; then
echo "8. 删除测试用户 (DELETE /api/users/$USER_ID)..."
DELETE_RESULT=$(curl -s -X DELETE "${BASE_URL}/api/users/${USER_ID}" \
-H "Authorization: Bearer $TOKEN")
echo "响应: $DELETE_RESULT"
echo ""
fi
# 9. 最终用户列表
echo "9. 最终用户列表..."
USERS=$(curl -s -X GET "${BASE_URL}/api/users" \
-H "Authorization: Bearer $TOKEN")
echo "响应: $USERS"
echo ""
echo "==================================="
echo "测试完成"
echo "==================================="