from fastapi import Request, Depends from sqlalchemy.orm import Session from passlib.context import CryptContext from web.database import get_db from web.models import User pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") def hash_password(password: str) -> str: return pwd_context.hash(password) def verify_password(plain: str, hashed: str) -> bool: return pwd_context.verify(plain, hashed) def get_current_user(request: Request, db: Session = Depends(get_db)) -> User | None: user_id = request.session.get("user_id") if not user_id: return None return db.query(User).filter(User.id == user_id).first()