- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
135 lines
4.4 KiB
Python
135 lines
4.4 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
为简化版API创建测试用户(使用SHA256加密)
|
||
"""
|
||
import mysql.connector
|
||
import hashlib
|
||
from datetime import datetime
|
||
|
||
# 数据库配置
|
||
DB_CONFIG = {
|
||
'host': '127.0.0.1',
|
||
'user': 'root',
|
||
'password': '',
|
||
'database': 'kaopeilian',
|
||
'charset': 'utf8mb4',
|
||
'autocommit': True
|
||
}
|
||
|
||
# 要创建的系统账户
|
||
SYSTEM_USERS = [
|
||
{
|
||
"username": "superadmin",
|
||
"password": "Superadmin123!",
|
||
"email": "superadmin@kaopeilian.com",
|
||
"full_name": "超级管理员",
|
||
"role": "admin",
|
||
"is_superuser": 1,
|
||
},
|
||
{
|
||
"username": "admin",
|
||
"password": "Admin123!",
|
||
"email": "admin@kaopeilian.com",
|
||
"full_name": "系统管理员",
|
||
"role": "admin",
|
||
"is_superuser": 0,
|
||
},
|
||
{
|
||
"username": "testuser",
|
||
"password": "TestPass123!",
|
||
"email": "testuser@kaopeilian.com",
|
||
"full_name": "测试学员",
|
||
"role": "trainee",
|
||
"is_superuser": 0,
|
||
},
|
||
]
|
||
|
||
def hash_password(password: str) -> str:
|
||
"""使用SHA256加密密码(与simple_main.py保持一致)"""
|
||
return hashlib.sha256(password.encode()).hexdigest()
|
||
|
||
def create_simple_users():
|
||
"""创建测试用户"""
|
||
try:
|
||
conn = mysql.connector.connect(**DB_CONFIG)
|
||
cursor = conn.cursor()
|
||
|
||
print("🔧 开始创建系统测试账户(SHA256版本)...\n")
|
||
|
||
created_count = 0
|
||
updated_count = 0
|
||
|
||
for user_data in SYSTEM_USERS:
|
||
username = user_data["username"]
|
||
password_hash = hash_password(user_data["password"])
|
||
|
||
# 检查用户是否存在
|
||
cursor.execute("SELECT id FROM users WHERE username = %s", (username,))
|
||
existing = cursor.fetchone()
|
||
|
||
if existing:
|
||
# 更新现有用户
|
||
cursor.execute("""
|
||
UPDATE users
|
||
SET hashed_password = %s,
|
||
email = %s,
|
||
full_name = %s,
|
||
role = %s,
|
||
is_active = 1,
|
||
updated_at = NOW()
|
||
WHERE username = %s
|
||
""", (
|
||
password_hash,
|
||
user_data["email"],
|
||
user_data["full_name"],
|
||
user_data["role"],
|
||
username
|
||
))
|
||
updated_count += 1
|
||
print(f"✓ 更新用户: {username} ({user_data['full_name']})")
|
||
else:
|
||
# 创建新用户
|
||
cursor.execute("""
|
||
INSERT INTO users (
|
||
username, email, hashed_password, role,
|
||
is_active, full_name,
|
||
created_at, updated_at
|
||
)
|
||
VALUES (%s, %s, %s, %s, 1, %s, NOW(), NOW())
|
||
""", (
|
||
username,
|
||
user_data["email"],
|
||
password_hash,
|
||
user_data["role"],
|
||
user_data["full_name"]
|
||
))
|
||
created_count += 1
|
||
print(f"✓ 创建用户: {username} ({user_data['full_name']})")
|
||
|
||
conn.commit()
|
||
|
||
# 打印总结
|
||
print("\n" + "="*50)
|
||
print("✅ 系统用户创建/更新完成!")
|
||
print(f"新创建用户数: {created_count}")
|
||
print(f"更新用户数: {updated_count}")
|
||
print("\n系统账户信息:")
|
||
print("-"*50)
|
||
print("| 角色 | 用户名 | 密码 | 权限说明 |")
|
||
print("| ---------- | ---------- | -------------- | ---------------------------- |")
|
||
print("| 超级管理员 | superadmin | Superadmin123! | 系统最高权限,可管理所有功能 |")
|
||
print("| 系统管理员 | admin | Admin123! | 可管理除“系统管理”模块外的全部功能(管理员仪表盘、用户管理、岗位管理、系统日志) |")
|
||
print("| 测试学员 | testuser | TestPass123! | 可学习课程、参加考试和训练 |")
|
||
print("-"*50)
|
||
|
||
except mysql.connector.Error as e:
|
||
print(f"❌ 数据库操作失败: {e}")
|
||
finally:
|
||
if 'cursor' in locals():
|
||
cursor.close()
|
||
if 'conn' in locals():
|
||
conn.close()
|
||
|
||
if __name__ == "__main__":
|
||
create_simple_users()
|