修正了程序,优化了目录

This commit is contained in:
carry
2025-01-22 13:58:39 +08:00
parent bb314a2c6b
commit bf856af9f9
7 changed files with 26 additions and 20 deletions

View File

@@ -1,10 +1,10 @@
from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker
from ..models.user import Base, User, UserRole
from models.user import Base, User, UserRole
from sqlalchemy import select
from contextlib import asynccontextmanager
from config import SYSTEM_ADMIN_CONFIG, DATABASE_CONFIG
from user_services import get_password_hash
from services.user import get_password_hash
from typing import AsyncGenerator
# 全局数据库引擎实例
@@ -44,8 +44,9 @@ async def init_db(engine: AsyncEngine):
# 创建所有表
await conn.run_sync(Base.metadata.create_all)
async with AsyncSession(engine) as session:
# 检查系统管理员是否存在
result = await conn.execute(
result = await session.execute(
select(User).where(User.role == UserRole.SYSTEM_ADMIN)
)
if not result.scalars().first():
@@ -56,8 +57,8 @@ async def init_db(engine: AsyncEngine):
role=UserRole.SYSTEM_ADMIN,
description=SYSTEM_ADMIN_CONFIG['description']
)
conn.add(admin)
await conn.commit()
session.add(admin)
await session.commit()
async def close_db_connection():
"""关闭数据库连接"""

View File

@@ -7,7 +7,6 @@ from schemas.user import UserCreate, UserUpdate, UserResponse
# 创建一个密码上下文对象,指定使用 bcrypt 加密算法
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
async def create_user(session: AsyncSession, user_data: UserCreate) -> UserResponse:
"""创建用户"""
@@ -60,6 +59,9 @@ def verify_password(plain_password: str, hashed_password: str) -> bool:
"""验证输入的明文密码是否与存储的哈希密码匹配"""
return pwd_context.verify(plain_password, hashed_password)
def get_password_hash(password: str) -> str:
"""生成使用 bcrypt 的密码哈希"""
return pwd_context.hash(password)
async def authenticate_user(session: AsyncSession, username: str, password: str) -> Optional[UserResponse]:
"""验证用户登录"""