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