INNER CODE UNIT · Python
user_dependency
NextWeb4/lan-file-transfer · lan_transfer/api.py:136
def user_dependency(auth: AccountAuthManager):
current = principal_dependency(auth)
async def require_user(principal: Principal = Depends(current)) -> Principal:
if not principal.is_authenticated or principal.role != ROLE_USER:
raise HTTPException(status_code=403, detail="User login required.")
return principal
return require_user
def admin_dependency(auth: AccountAuthManager):
current = principal_dependency(auth)
async def require_admin(principal: Principal = Depends(current)) -> Principal:
if not principal.is_admin:
raise HTTPException(status_code=403, detail="Admin login required.")
return principal