auth.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import json
  2. from fastapi import Depends
  3. from fastapi.security import OAuth2PasswordBearer
  4. from app import schemas
  5. from app.utils.utils import decode_base64
  6. from configs.globals import g
  7. reuseable_oauth = OAuth2PasswordBearer(
  8. tokenUrl="/jpt/auth/login",
  9. scheme_name="JWT"
  10. )
  11. async def verify_super_admin(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  12. token_data_str = decode_base64(token)
  13. token_data_dict = json.loads(token_data_str)
  14. token_data = schemas.TokenData(**token_data_dict)
  15. if token_data.role_id != 1:
  16. raise Exception("暂无权限")
  17. g.user_id = token_data.user_id
  18. g.user_name = token_data.user_name
  19. g.project_id = token_data.project_id
  20. return token_data
  21. async def verify_special(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  22. token_data_str = decode_base64(token)
  23. token_data_dict = json.loads(token_data_str)
  24. token_data = schemas.TokenData(**token_data_dict)
  25. if not token_data.role_id in [1,2,3]:
  26. raise Exception("暂无权限")
  27. g.user_id = token_data.user_id
  28. g.user_name = token_data.user_name
  29. g.project_id = token_data.project_id
  30. return token_data
  31. async def verify_users(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  32. token_data_str = decode_base64(token)
  33. token_data_dict = json.loads(token_data_str)
  34. token_data = schemas.TokenData(**token_data_dict)
  35. g.user_id = token_data.user_id
  36. g.user_name = token_data.user_name
  37. g.project_id = token_data.project_id
  38. return token_data
  39. async def verify_project_admin(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  40. token_data_str = decode_base64(token)
  41. token_data_dict = json.loads(token_data_str)
  42. token_data = schemas.TokenData(**token_data_dict)
  43. if not token_data.role_id in [1,2,4]:
  44. raise Exception("暂无权限")
  45. g.user_id = token_data.user_id
  46. g.user_name = token_data.user_name
  47. g.project_id = token_data.project_id
  48. return token_data