mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-10-10 11:21:41 +00:00
* Refactor foreign keys and relationships to pure logic * Revert of some changes * More revert * Update the user paginate * Update user create and update * Update dept select and delete * Rename the join query functions * Update select_join_serialize doc and README * Fix typo in README * Update the user delete * Update the user social * Update the dict plugin crud * Update the dict plugin version * Bump dependencies and pre-commits * Update the code generator plugin crud * Update the menu crud * Update the role crud * Update the data scope and rule crud * Restore get_paginated to get_select * Update the code generator plugin version * Add the py version in pre-commit * Remove the plugin include parameter config * Add more cache cleaning TODO * Rename get_with_relation to get_join * Add the user cache clear * Fix known compatibility issues * Update the version number to 1.11.0 * Fix lint * Optimize select_join_serialize logic * Delete cache cleanup comments * Update the oauth2 plugin version * Fix user-role table cleanup when user update
75 lines
2.0 KiB
Python
75 lines
2.0 KiB
Python
from datetime import datetime
|
|
|
|
from pydantic import ConfigDict, Field
|
|
|
|
from backend.app.admin.schema.data_scope import GetDataScopeWithRelationDetail
|
|
from backend.app.admin.schema.menu import GetMenuDetail
|
|
from backend.common.enums import StatusType
|
|
from backend.common.schema import SchemaBase
|
|
|
|
|
|
class RoleSchemaBase(SchemaBase):
|
|
"""角色基础模型"""
|
|
|
|
name: str = Field(description='角色名称')
|
|
status: StatusType = Field(description='状态')
|
|
is_filter_scopes: bool = Field(True, description='过滤数据权限')
|
|
remark: str | None = Field(None, description='备注')
|
|
|
|
|
|
class CreateRoleParam(RoleSchemaBase):
|
|
"""创建角色参数"""
|
|
|
|
|
|
class UpdateRoleParam(RoleSchemaBase):
|
|
"""更新角色参数"""
|
|
|
|
|
|
class DeleteRoleParam(SchemaBase):
|
|
"""删除角色参数"""
|
|
|
|
pks: list[int] = Field(description='角色 ID 列表')
|
|
|
|
|
|
class CreateRoleMenuParam(SchemaBase):
|
|
"""创建角色菜单参数"""
|
|
|
|
role_id: int = Field(description='角色 ID')
|
|
menu_id: int = Field(description='菜单 ID')
|
|
|
|
|
|
class UpdateRoleMenuParam(SchemaBase):
|
|
"""更新角色菜单参数"""
|
|
|
|
menus: list[int] = Field(description='菜单 ID 列表')
|
|
|
|
|
|
class CreateRoleScopeParam(SchemaBase):
|
|
"""创建角色数据范围参数"""
|
|
|
|
role_id: int = Field(description='角色 ID')
|
|
data_scope_id: int = Field(description='数据范围 ID')
|
|
|
|
|
|
class UpdateRoleScopeParam(SchemaBase):
|
|
"""更新角色数据范围参数"""
|
|
|
|
scopes: list[int] = Field(description='数据范围 ID 列表')
|
|
|
|
|
|
class GetRoleDetail(RoleSchemaBase):
|
|
"""角色详情"""
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int = Field(description='角色 ID')
|
|
created_time: datetime = Field(description='创建时间')
|
|
updated_time: datetime | None = Field(None, description='更新时间')
|
|
|
|
|
|
class GetRoleWithRelationDetail(GetRoleDetail):
|
|
"""角色关联详情"""
|
|
|
|
menus: list[GetMenuDetail | None] = Field([], description='菜单详情列表')
|
|
scopes: list[GetDataScopeWithRelationDetail | None] = Field([], description='数据范围列表')
|