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 from Utils.AccessControl.AccessUtil import ac 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)] ) @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