fix: add rbac organization tree contracts

This commit is contained in:
wren
2026-05-11 02:17:50 +08:00
parent f753b8c6c3
commit 1a626a9020
2 changed files with 55 additions and 0 deletions
@@ -53,6 +53,7 @@ class UserVO(BaseModel):
roles: list[UserRoleVO] = Field(default_factory=list, description="角色列表")
tenant_name: str | None = Field(None, description="租户名称")
dep_name: str | None = Field(None, description="部门名称")
dep_short_name: str | None = Field(None, description="部门简称")
class UserListVO(BaseModel):
@@ -64,6 +65,53 @@ class UserListVO(BaseModel):
items: list[UserVO] = Field(default_factory=list, description="用户列表")
class OrganizationPathVO(BaseModel):
"""用户组织路径。"""
tenant_name: str = Field("", description="租户名称")
dep_name: str = Field("", description="部门名称")
dep_short_name: str = Field("", description="部门简称")
ou_name: str = Field("", description="组织名称")
class OrganizationTreeUserVO(BaseModel):
"""组织树节点中的用户。"""
id: int = Field(..., description="用户ID")
username: str = Field(..., description="用户名")
nick_name: str = Field(..., description="姓名")
area: str | None = Field(None, description="地区")
ou_id: str = Field("", description="组织ID")
ou_name: str = Field("", description="组织名称")
is_leader: bool = Field(False, description="是否负责人")
status: int = Field(0, description="状态")
tenant_name: str | None = Field(None, description="租户名称")
dep_name: str | None = Field(None, description="部门名称")
dep_short_name: str | None = Field(None, description="部门简称")
email: str | None = Field(None, description="邮箱")
phone_number: str | None = Field(None, description="手机号")
organization_path: OrganizationPathVO | None = Field(None, description="组织路径")
class OrganizationNodeVO(BaseModel):
"""组织树节点。"""
ou_id: str = Field(..., description="节点ID")
ou_name: str = Field(..., description="节点名称")
parent_ou_id: str | None = Field(None, description="父节点ID")
level: int = Field(1, description="层级")
children: list["OrganizationNodeVO"] = Field(default_factory=list, description="子节点")
users: list[OrganizationTreeUserVO] = Field(default_factory=list, description="节点用户")
class OrganizationTreeVO(BaseModel):
"""组织树响应。"""
organizations: list[OrganizationNodeVO] = Field(default_factory=list, description="组织树")
total_organizations: int = Field(0, description="组织节点总数")
total_users: int = Field(0, description="用户总数")
class RoutePermissionVO(BaseModel):
"""路由关联的 API 权限。"""
@@ -157,3 +205,4 @@ class RoutePermissionsVO(BaseModel):
RouteVO.model_rebuild()
OrganizationNodeVO.model_rebuild()
@@ -10,6 +10,7 @@ from fastapi_modules.fastapi_leaudit.domian.Dto.rbacAdminDto import (
RoleUpdateDTO,
)
from fastapi_modules.fastapi_leaudit.domian.vo.rbacAdminVo import (
OrganizationTreeVO,
RoleAccessSaveVO,
RoleListVO,
RolePermissionsVO,
@@ -51,6 +52,11 @@ class IRbacAdminService(ABC):
"""查询用户列表。"""
...
@abstractmethod
async def GetOrganizationTree(self, CurrentUserId: int, IncludeUsers: bool, RootUuid: str | None) -> OrganizationTreeVO:
"""查询组织树。"""
...
@abstractmethod
async def ListRoleUsers(self, CurrentUserId: int, RoleId: int, Page: int, PageSize: int, Area: str | None, UserName: str | None) -> UserListVO:
"""查询指定角色下的用户列表。"""