init
This commit is contained in:
+29
-12
@@ -1,8 +1,17 @@
|
||||
import asyncio
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
project_root = Path(__file__).parent.parent.parent
|
||||
src_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
sys.path.insert(0, str(src_root))
|
||||
|
||||
from sqlalchemy import select
|
||||
from database.database import db_manager
|
||||
from models.database import User
|
||||
from models.database import User, Role, UserRole
|
||||
from services.auth_service import get_password_hash
|
||||
from config.settings import settings
|
||||
from utils.logger import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
@@ -15,35 +24,43 @@ async def create_admin_user():
|
||||
|
||||
async with db_manager.session() as session:
|
||||
result = await session.execute(
|
||||
select(User).where(User.username == "admin")
|
||||
select(User).where(User.username == settings.ADMIN_USERNAME)
|
||||
)
|
||||
existing_admin = result.scalar_one_or_none()
|
||||
|
||||
if existing_admin:
|
||||
logger.info("管理员账户已存在")
|
||||
print("管理员账户已存在")
|
||||
print("用户名: admin")
|
||||
print(f"用户名: {settings.ADMIN_USERNAME}")
|
||||
return
|
||||
|
||||
admin = User(
|
||||
username="admin",
|
||||
email="admin@gemold.com",
|
||||
hashed_password=get_password_hash("admin123"),
|
||||
full_name="系统管理员",
|
||||
is_active=True,
|
||||
is_superuser=True
|
||||
username=settings.ADMIN_USERNAME,
|
||||
email=settings.ADMIN_EMAIL,
|
||||
hashed_password=get_password_hash(settings.ADMIN_PASSWORD),
|
||||
full_name=settings.ADMIN_FULL_NAME,
|
||||
is_active=True
|
||||
)
|
||||
|
||||
session.add(admin)
|
||||
await session.flush()
|
||||
|
||||
result = await session.execute(select(Role).where(Role.code == "admin"))
|
||||
admin_role = result.scalar_one_or_none()
|
||||
|
||||
if admin_role:
|
||||
user_role = UserRole(user_id=admin.id, role_id=admin_role.id)
|
||||
session.add(user_role)
|
||||
|
||||
await session.commit()
|
||||
|
||||
logger.info("管理员账户创建成功")
|
||||
print("=" * 50)
|
||||
print("管理员账户创建成功!")
|
||||
print("=" * 50)
|
||||
print("用户名: admin")
|
||||
print("密码: admin123")
|
||||
print("邮箱: admin@gemold.com")
|
||||
print(f"用户名: {settings.ADMIN_USERNAME}")
|
||||
print(f"密码: {settings.ADMIN_PASSWORD}")
|
||||
print(f"邮箱: {settings.ADMIN_EMAIL}")
|
||||
print("=" * 50)
|
||||
print("⚠️ 请登录后立即修改密码!")
|
||||
print("=" * 50)
|
||||
|
||||
Reference in New Issue
Block a user