diff --git a/backend/main.py b/backend/main.py index 209738a..f2c4a26 100644 --- a/backend/main.py +++ b/backend/main.py @@ -27,6 +27,16 @@ def is_setup_required(db: Session) -> bool: admin = db.query(User).filter(User.is_admin == True).first() return admin is None +def get_current_user(request: Request, db: Session = Depends(get_db)): + """Extrait et vérifie l'utilisateur actuel via le token de session.""" + token = request.cookies.get("session_token") + if not token: raise HTTPException(status_code=401, detail="Non authentifié") + payload = verify_token(token) + if not payload: raise HTTPException(status_code=401, detail="Session expirée") + user = db.query(User).filter(User.username == payload.get("sub")).first() + if not user: raise HTTPException(status_code=401, detail="Utilisateur introuvable") + return user + @app.get("/") def read_root(db: Session = Depends(get_db)): if is_setup_required(db): @@ -107,15 +117,6 @@ def change_password(passwords: PasswordChange, db: Session = Depends(get_db), cu db.commit() return {"message": "Mot de passe mis à jour avec succès."} -def get_current_user(request: Request, db: Session = Depends(get_db)): - token = request.cookies.get("session_token") - if not token: raise HTTPException(status_code=401, detail="Non authentifié") - payload = verify_token(token) - if not payload: raise HTTPException(status_code=401, detail="Session expirée") - user = db.query(User).filter(User.username == payload.get("sub")).first() - if not user: raise HTTPException(status_code=401, detail="Utilisateur introuvable") - return user - # --- GESTION DES PROJETS --- @app.get("/api/projects", response_model=List[ProjectResponse]) def get_projects(db: Session = Depends(get_db), current_user: User = Depends(get_current_user)):