feat: add rbac-backed settings modules
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
"""入口模块管理 DTO。"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class EntryModuleAreaDTO(BaseModel):
|
||||
"""入口模块地区配置。"""
|
||||
|
||||
area: str = Field(..., description="地区名称")
|
||||
enabled: bool = Field(True, description="是否启用")
|
||||
sort_order: int = Field(0, description="排序号")
|
||||
|
||||
|
||||
class EntryModuleCreateDTO(BaseModel):
|
||||
"""创建入口模块请求。"""
|
||||
|
||||
name: str = Field(..., description="模块名称")
|
||||
description: str | None = Field(None, description="模块描述")
|
||||
path: str | None = Field(None, description="前端路由路径")
|
||||
areas: list[EntryModuleAreaDTO] | None = Field(None, description="地区配置")
|
||||
|
||||
|
||||
class EntryModuleUpdateDTO(BaseModel):
|
||||
"""更新入口模块请求。"""
|
||||
|
||||
name: str | None = Field(None, description="模块名称")
|
||||
description: str | None = Field(None, description="模块描述")
|
||||
path: str | None = Field(None, description="前端路由路径")
|
||||
areas: list[EntryModuleAreaDTO] | None = Field(None, description="地区配置")
|
||||
@@ -0,0 +1,52 @@
|
||||
"""RBAC 管理 DTO。"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class RoleCreateDTO(BaseModel):
|
||||
"""创建角色请求。"""
|
||||
|
||||
role_key: str = Field(..., description="角色唯一标识")
|
||||
role_name: str = Field(..., description="角色名称")
|
||||
description: str | None = Field(None, description="角色描述")
|
||||
data_scope: str = Field("SELF", description="数据范围")
|
||||
metadata: dict | None = Field(None, description="扩展元数据")
|
||||
|
||||
|
||||
class RoleUpdateDTO(BaseModel):
|
||||
"""更新角色请求。"""
|
||||
|
||||
role_name: str | None = Field(None, description="角色名称")
|
||||
description: str | None = Field(None, description="角色描述")
|
||||
data_scope: str | None = Field(None, description="数据范围")
|
||||
priority: int | None = Field(None, description="优先级")
|
||||
parent_role_id: int | None = Field(None, description="父角色ID")
|
||||
|
||||
|
||||
class RoleRoutesUpdateDTO(BaseModel):
|
||||
"""更新角色路由授权请求。"""
|
||||
|
||||
route_ids: list[int] = Field(default_factory=list, description="启用路由ID列表")
|
||||
permission: str = Field("RW", description="路由授权类型")
|
||||
|
||||
|
||||
class RolePermissionConfigDTO(BaseModel):
|
||||
"""角色权限配置。"""
|
||||
|
||||
permission_id: int = Field(..., description="权限ID")
|
||||
grant_type: str = Field("GRANT", description="授权类型")
|
||||
data_scope: str | None = Field(None, description="数据范围")
|
||||
|
||||
|
||||
class RolePermissionsBatchDTO(BaseModel):
|
||||
"""批量写入角色权限请求。"""
|
||||
|
||||
role_id: int = Field(..., description="角色ID")
|
||||
permissions: list[RolePermissionConfigDTO] = Field(default_factory=list, description="权限列表")
|
||||
replace: bool = Field(False, description="是否替换当前角色已有权限")
|
||||
|
||||
|
||||
class UserRolesAssignDTO(BaseModel):
|
||||
"""用户角色分配请求。"""
|
||||
|
||||
role_ids: list[int] = Field(default_factory=list, description="角色ID列表")
|
||||
Reference in New Issue
Block a user