user-wsc/User/router_user_admin.py

69 lines
2.3 KiB
Python
Raw Normal View History

2022-10-20 16:29:54 +08:00
from typing import List
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from User import crud, models, schemas
2022-11-01 14:02:58 +08:00
from User.default import default_root, ROOT_USER
2022-11-01 01:56:57 +08:00
from Utils.DataBase.SqlAlchemyUtils import engine, get_db
from Utils.AccessControl.AccessUtil import ac_admin
2022-10-20 16:29:54 +08:00
models.Base.metadata.create_all(bind=engine)
2022-11-01 01:56:57 +08:00
default_root()
2022-10-20 16:29:54 +08:00
router = APIRouter(
tags=["用户管理"],
prefix="/api/user/admin",
dependencies=[
2022-11-01 01:56:57 +08:00
Depends(ac_admin)
2022-10-20 16:29:54 +08:00
]
)
2022-10-21 13:27:35 +08:00
@router.post("/create", summary="新建用户", response_model=schemas.InfoBase)
2022-10-20 16:29:54 +08:00
def create_user(body: schemas.UserCreate, db: Session = Depends(get_db)):
item = crud.get_user_by_email(db, email=body.email)
if item:
raise HTTPException(status_code=400, detail="Email already registered")
crud.create_user(db=db, body=body)
return {"info": "Success"}
2022-11-01 14:02:58 +08:00
@router.post("/delete/{uid}", summary="删除用户")
def delete_user(uid: str, db: Session = Depends(get_db)):
crud.delete_user(db=db, uid=uid)
2022-10-20 16:29:54 +08:00
return {"info": "Success"}
2022-11-01 14:02:58 +08:00
@router.post("/edit/{uid}", summary="编辑用户")
def user_edit(uid: str, body: schemas.UserEdit, db: Session = Depends(get_db)):
2022-10-20 16:29:54 +08:00
data = crud.get_user_by_id(db, uid)
if not data:
raise HTTPException(status_code=400, detail="User Not found")
crud.edit_user(db=db, body=body, uid=uid)
return {"info": "Success"}
2022-11-01 14:02:58 +08:00
@router.post("/reset_pwd/{uid}", summary="重置用户密码")
def user_reset_pwd(uid: str, db: Session = Depends(get_db)):
2022-10-20 16:29:54 +08:00
data = crud.get_user_by_id(db, uid)
if not data:
raise HTTPException(status_code=400, detail="User Not found")
2022-11-01 14:02:58 +08:00
passwd = ROOT_USER.get("passwd")
2022-10-20 16:29:54 +08:00
crud.reset_user_pwd(db=db, passwd=passwd, uid=uid)
return {"info": "Success"}
2022-11-01 14:02:58 +08:00
@router.get("/detail/{uid}", summary="用户信息")
def detail(uid: str, db: Session = Depends(get_db)):
data = crud.get_user_by_id(db=db, uid=uid)
if data is None:
raise HTTPException(status_code=404, detail="User Not found")
return data
2022-10-20 16:29:54 +08:00
@router.post("/search", summary="查询用户", response_model=List[schemas.User])
def search_users(body: schemas.UserSearch, skip: int = 0, limit: int = 20, db: Session = Depends(get_db)):
users = crud.get_users(db, body=body, skip=skip, limit=limit)
return users