f7a720204a
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
121 lines
3.4 KiB
Bash
Executable File
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 "===================================" |