Spaces:
Sleeping
Sleeping
File size: 2,179 Bytes
e66bcc7 f5cf708 daa9d8a f5cf708 f807217 daa9d8a f5cf708 daa9d8a f5cf708 daa9d8a f5cf708 f807217 f5cf708 f807217 e66bcc7 f807217 daa9d8a f807217 f5cf708 daa9d8a f5cf708 daa9d8a f5cf708 f807217 f5cf708 daa9d8a f807217 e66bcc7 f5cf708 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
from fastapi import APIRouter, Depends, HTTPException, status
from pydantic import BaseModel
import uuid
from global_state import get
from db.tbs_db import TbsDb
from auth import get_current_user
from db_model.user import UserModel
router = APIRouter()
db_module_filename = f"{get('project_root')}/db/cloudflare.py"
class User(BaseModel):
id: int = 0
username: str
password: str
email: str
nikename: str = None
is_admin: int = 0
@router.get("/users")
# async def read_users(current_user_id: int = Depends(get_current_user_id)):
# query = "SELECT * FROM users"
# response = TbsDb(db_module_filename, "Cloudflare").get_list(query)
# return response
async def read_user(current_user: UserModel = Depends(get_current_user)):
if current_user.is_admin == 0:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Have no permission",
headers={"WWW-Authenticate": "Bearer"},
)
query = "SELECT * FROM users"
response = TbsDb(db_module_filename, "Cloudflare").get_list(query)
return response
@router.post("/users")
async def create_user(user: UserModel):
username = user.username
password = user.password
email = user.email
nikename = user.nikename
if nikename==None:
nikename = ''
api_key = f'airs-{uuid.uuid4()}'
query = f"INSERT INTO users (username, password, email, nikename, api_key) VALUES ('{username}', '{password}', '{email}', '{nikename}', '{api_key}')"
response = TbsDb(db_module_filename, "Cloudflare").add_item(query)
if response['success']==True:
response['api_key'] = api_key
return response
@router.get("/users/{id}")
async def read_user(id:int, current_user: UserModel = Depends(get_current_user)):
if (current_user.is_admin == 0) and (current_user.id != id):
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Have no permission",
headers={"WWW-Authenticate": "Bearer"},
)
query = f"SELECT * FROM users where id={id}"
response = TbsDb(db_module_filename, "Cloudflare").get_item(query)
return response
|