File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99from schemas .base import Success , SuccessExtra
1010from schemas .response import (
1111 ResponseBase ,
12+ RoleAuthorizedResponse ,
1213 RoleDetailResponse ,
1314 RoleListResponse ,
1415)
@@ -72,7 +73,7 @@ async def delete_role(
7273 return json .loads (result .body )
7374
7475
75- @router .get ("/authorized" , summary = "查看角色权限" , response_model = RoleDetailResponse )
76+ @router .get ("/authorized" , summary = "查看角色权限" , response_model = RoleAuthorizedResponse )
7677async def get_role_authorized (id : int = Query (..., description = "角色ID" )):
7778 role_obj = await role_repository .get (id = id )
7879 data = await role_obj .to_dict (m2m = True )
Original file line number Diff line number Diff line change @@ -171,6 +171,17 @@ class RoleListItem(BaseModel):
171171 created_at : datetime | None = Field (description = "创建时间" )
172172
173173
174+ class RoleAuthorizedInfo (BaseModel ):
175+ """角色权限详情(包含完整的菜单和API信息)"""
176+ id : int = Field (description = "角色ID" )
177+ name : str = Field (description = "角色名称" )
178+ desc : str | None = Field (description = "角色描述" )
179+ menus : list [MenuItem ] = Field (default_factory = list , description = "菜单列表" )
180+ apis : list ["ApiInfo" ] = Field (default_factory = list , description = "API权限列表" )
181+ created_at : datetime | None = Field (description = "创建时间" )
182+ updated_at : datetime | None = Field (description = "更新时间" )
183+
184+
174185# ============= 部门相关响应模型 =============
175186class DeptInfo (BaseModel ):
176187 """部门信息"""
@@ -212,6 +223,7 @@ class AuditLogItem(BaseModel):
212223# 递归模型更新
213224MenuItem .model_rebuild ()
214225DeptInfo .model_rebuild ()
226+ RoleAuthorizedInfo .model_rebuild ()
215227
216228
217229# ============= 类型别名(便于使用) =============
@@ -235,6 +247,7 @@ class AuditLogItem(BaseModel):
235247# 角色相关
236248RoleListResponse = PageResponse [list [RoleListItem ]]
237249RoleDetailResponse = ResponseBase [RoleInfo ]
250+ RoleAuthorizedResponse = ResponseBase [RoleAuthorizedInfo ]
238251
239252# 部门相关
240253DeptListResponse = ResponseBase [list [DeptInfo ]]
You can’t perform that action at this time.
0 commit comments