user-wsc/AppUser/Router/RoleRouter.py

34 lines
1.1 KiB
Python
Raw Normal View History

2022-11-08 09:46:44 +08:00
from typing import List
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from AppUser.Crud import RoleCrud
from AppUser.Model import RoleModel
from AppUser.Schemas import RoleSchema
2022-11-09 11:13:17 +08:00
from Utils.AccessControl import AccessUtil
2022-11-08 09:46:44 +08:00
from Utils.DataBase.SqlAlchemyUtils import get_db, engine
RoleModel.Base.metadata.create_all(bind=engine)
router = APIRouter(
tags=["角色"],
2022-11-08 10:25:46 +08:00
prefix="/api/user/role",
2022-11-09 11:13:17 +08:00
dependencies=[Depends(AccessUtil.ac)]
2022-11-08 09:46:44 +08:00
)
@router.post("/role_access_policy/view", summary="查看角色权限策略", response_model=List[RoleSchema.RoleAccessPolicyResBody])
def func02(name: str, db: Session = Depends(get_db)):
role_obj = RoleCrud.get_role_by_name(db=db, name=name)
if not role_obj:
raise HTTPException(status_code=202, detail="Role Not Found")
return [RoleSchema.RoleAccessPolicyResBody(**rap).dict() for rap in role_obj.to_dict().get("raps")]
@router.get("/list", summary="角色列表")
def func03(db: Session = Depends(get_db)):
role_list = RoleCrud.get_role_list(db=db)
return role_list