triflix's picture
Upload 22 files
9173642 verified
raw
history blame contribute delete
951 Bytes
from fastapi import Depends, HTTPException, Request, status
from werkzeug.security import generate_password_hash, check_password_hash
import crud, database
# Password utils
def get_password_hash(pw): return generate_password_hash(pw)
def verify_password(pw, h): return check_password_hash(h, pw)
# Dependency to get current user
async def get_current_user(request: Request):
uid = request.session.get('user_id')
if not uid:
raise HTTPException(status_code=status.HTTP_302_FOUND, headers={'Location':'/user/login'})
user = crud.get_user_by_id(uid)
if not user:
raise HTTPException(status_code=status.HTTP_302_FOUND, headers={'Location':'/user/login'})
return user
# Admin dependency
async def get_current_admin(request: Request):
if not request.session.get('is_admin'):
raise HTTPException(status_code=status.HTTP_302_FOUND, headers={'Location':'/admin/login'})
return True