user-wsc/AppUser/Router/RoleAdminRouter.py

42 lines
1.3 KiB
Python

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from AppUser.Crud import RoleCrud
from AppUser.Model import RoleModel
from AppUser.Schemas import RoleSchema
from Utils.AccessControl.AccessUtil import ac_admin
from Utils.DataBase.SqlAlchemyUtils import get_db, engine
RoleModel.Base.metadata.create_all(bind=engine)
router = APIRouter(
tags=["角色管理"],
prefix="/api/user/role",
dependencies=[Depends(ac_admin)]
)
@router.post("/create", summary="新建角色")
def func01(name: str, db: Session = Depends(get_db)):
item = RoleCrud.create_role(db=db, name=name)
return item
@router.post("/{role_id}/policy/create", summary="新建角色权限", response_model=RoleSchema.RolePolicyResBody)
def func02(role_id: str, schema: RoleSchema.CreateRolePolicyReqBody, db: Session = Depends(get_db)):
rcp_obj = RoleCrud.create_role_policy(db=db, role_id=role_id, schema=schema)
return rcp_obj
@router.get("/view/{role_id}", summary="查看角色", response_model=RoleSchema.RoleFullResBody)
def func03(role_id: str, db: Session = Depends(get_db)):
role_obj = RoleCrud.get_role_by_id(db=db, role_id=role_id)
return role_obj.to_dict()
@router.get("/list", summary="角色列表")
def func04(db: Session = Depends(get_db)):
role_list = RoleCrud.get_role_list(db=db)
return role_list