NutritionAIAPI / app /auth.py
Sakshi
nutrition
96f792c
from typing import Optional
from fastapi import Depends, HTTPException, status, Header
from sqlalchemy.orm import Session
from app.database import get_db
from app import models
def verify_password(plain_password: str, hashed_password: str) -> bool:
return plain_password == hashed_password
def get_password_hash(password: str) -> str:
return password
def get_current_user(username: Optional[str] = Header(None, alias="X-Username"), db: Session = Depends(get_db)):
credentials_exception = HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Authentication required"
)
if not username:
raise credentials_exception
user = db.query(models.User).filter(models.User.username == username).first()
if user is None:
raise credentials_exception
return user
def get_current_admin_user(current_user: models.User = Depends(get_current_user)):
if current_user.role != models.UserRole.ADMIN:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Admin access required"
)
return current_user