init
This commit is contained in:
@@ -38,3 +38,6 @@ jinja2
|
|||||||
# JWT认证
|
# JWT认证
|
||||||
python-jose[cryptography]
|
python-jose[cryptography]
|
||||||
passlib[bcrypt]
|
passlib[bcrypt]
|
||||||
|
|
||||||
|
# 邮箱验证
|
||||||
|
email-validator
|
||||||
|
|||||||
+35
-4
@@ -2,18 +2,49 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
from database.database import db_manager
|
from database.database import db_manager
|
||||||
from utils.logger import get_logger
|
from utils.logger import get_logger
|
||||||
|
from sqlalchemy import select
|
||||||
|
from models.database import User
|
||||||
|
from services.auth_service import get_password_hash
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
async def create_default_admin():
|
||||||
|
"""创建默认管理员账户"""
|
||||||
|
try:
|
||||||
|
async with db_manager.session() as session:
|
||||||
|
result = await session.execute(
|
||||||
|
select(User).where(User.username == "admin")
|
||||||
|
)
|
||||||
|
existing_admin = result.scalar_one_or_none()
|
||||||
|
|
||||||
|
if existing_admin:
|
||||||
|
logger.info("管理员账户已存在")
|
||||||
|
return
|
||||||
|
|
||||||
|
admin = User(
|
||||||
|
username="admin",
|
||||||
|
email="admin@gemold.com",
|
||||||
|
hashed_password=get_password_hash("admin123"),
|
||||||
|
full_name="系统管理员",
|
||||||
|
is_active=True,
|
||||||
|
is_superuser=True
|
||||||
|
)
|
||||||
|
|
||||||
|
session.add(admin)
|
||||||
|
await session.commit()
|
||||||
|
logger.info("默认管理员账户创建成功 (用户名: admin, 密码: admin123)")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"创建默认管理员失败: {e}")
|
||||||
|
|
||||||
|
|
||||||
async def init_database():
|
async def init_database():
|
||||||
"""初始化数据库"""
|
"""初始化数据库"""
|
||||||
try:
|
try:
|
||||||
# 连接数据库
|
|
||||||
await db_manager.connect()
|
await db_manager.connect()
|
||||||
|
|
||||||
# 创建表
|
|
||||||
await db_manager.create_tables()
|
await db_manager.create_tables()
|
||||||
|
await create_default_admin()
|
||||||
logger.info("数据库初始化完成")
|
logger.info("数据库初始化完成")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
import asyncio
|
||||||
|
from sqlalchemy import select
|
||||||
|
from database.database import db_manager
|
||||||
|
from models.database import User
|
||||||
|
from services.auth_service import get_password_hash
|
||||||
|
from utils.logger import get_logger
|
||||||
|
|
||||||
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
async def create_admin_user():
|
||||||
|
"""创建默认管理员账户"""
|
||||||
|
try:
|
||||||
|
await db_manager.connect()
|
||||||
|
|
||||||
|
async with db_manager.session() as session:
|
||||||
|
result = await session.execute(
|
||||||
|
select(User).where(User.username == "admin")
|
||||||
|
)
|
||||||
|
existing_admin = result.scalar_one_or_none()
|
||||||
|
|
||||||
|
if existing_admin:
|
||||||
|
logger.info("管理员账户已存在")
|
||||||
|
print("管理员账户已存在")
|
||||||
|
print("用户名: admin")
|
||||||
|
return
|
||||||
|
|
||||||
|
admin = User(
|
||||||
|
username="admin",
|
||||||
|
email="admin@gemold.com",
|
||||||
|
hashed_password=get_password_hash("admin123"),
|
||||||
|
full_name="系统管理员",
|
||||||
|
is_active=True,
|
||||||
|
is_superuser=True
|
||||||
|
)
|
||||||
|
|
||||||
|
session.add(admin)
|
||||||
|
await session.commit()
|
||||||
|
|
||||||
|
logger.info("管理员账户创建成功")
|
||||||
|
print("=" * 50)
|
||||||
|
print("管理员账户创建成功!")
|
||||||
|
print("=" * 50)
|
||||||
|
print("用户名: admin")
|
||||||
|
print("密码: admin123")
|
||||||
|
print("邮箱: admin@gemold.com")
|
||||||
|
print("=" * 50)
|
||||||
|
print("⚠️ 请登录后立即修改密码!")
|
||||||
|
print("=" * 50)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"创建管理员账户失败: {e}")
|
||||||
|
print(f"创建管理员账户失败: {e}")
|
||||||
|
finally:
|
||||||
|
await db_manager.disconnect()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(create_admin_user())
|
||||||
Reference in New Issue
Block a user