feat: role & menu api
This commit is contained in:
@@ -1,32 +1,26 @@
|
||||
from tortoise.contrib.pydantic import pydantic_model_creator
|
||||
from typing import Optional
|
||||
|
||||
from models import MenuModel
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
MenuRead = pydantic_model_creator(MenuModel, name="MenuOut")
|
||||
MenuIn = pydantic_model_creator(MenuModel, name="MenuIn", exclude_readonly=True)
|
||||
from schemas.common import ReadBase
|
||||
|
||||
|
||||
# from pydantic import BaseModel, Field
|
||||
# from typing import Optional
|
||||
# from core import ReadBase
|
||||
#
|
||||
#
|
||||
# class MenuBasic(BaseModel):
|
||||
# name: str
|
||||
# meta: Optional[str] = Field(default=None, description="元信息")
|
||||
# path: Optional[str] = Field(default=None, description="前端路由地址")
|
||||
# type: int = Field(description="0 目录 1 组件 2 按钮")
|
||||
# component: Optional[str] = Field(default=None, description="前端组件地址")
|
||||
# pid: int = Field(default=0, description="0 表示没有根节点")
|
||||
# identifier: Optional[str] = Field(default=None, description="权限标识符 -> 按钮显示")
|
||||
# api: Optional[str] = Field(default=None, description="后端接口地址")
|
||||
# method: Optional[str] = Field(default=None, description="接口请求方法")
|
||||
# regx: Optional[str] = Field(default=None, description="正则匹配")
|
||||
#
|
||||
#
|
||||
# class MenuIn(MenuBasic):
|
||||
# pass
|
||||
#
|
||||
#
|
||||
# class MenuRead(MenuBasic, ReadBase):
|
||||
# pass
|
||||
class MenuBasic(BaseModel):
|
||||
name: str
|
||||
meta: dict = Field(default=None, description="元信息")
|
||||
path: Optional[str] = Field(default=None, description="前端路由地址")
|
||||
type: int = Field(description="0 目录 1 组件 2 按钮")
|
||||
component: Optional[str] = Field(default=None, description="前端组件地址")
|
||||
pid: int = Field(default=0, description="0 表示没有根节点")
|
||||
identifier: Optional[str] = Field(default=None, description="权限标识符 -> 按钮显示")
|
||||
api: Optional[str] = Field(default=None, description="后端接口地址")
|
||||
method: Optional[str] = Field(default=None, description="接口请求方法")
|
||||
regx: Optional[str] = Field(default=None, description="正则匹配")
|
||||
|
||||
|
||||
class MenuIn(MenuBasic):
|
||||
pass
|
||||
|
||||
|
||||
class MenuRead(MenuBasic, ReadBase):
|
||||
pass
|
||||
|
@@ -1,10 +1,17 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from tortoise.contrib.pydantic import pydantic_model_creator
|
||||
|
||||
from models import RoleModel
|
||||
from schemas.common import ReadBase
|
||||
from schemas.common import QueryData, ReadBase
|
||||
|
||||
RoleRed = pydantic_model_creator(RoleModel, name="RoleOut")
|
||||
|
||||
class RoleMenuIn(BaseModel):
|
||||
"""角色 -分配菜单id"""
|
||||
|
||||
rid: int = Field(description="角色ID")
|
||||
menus: list[int] = Field(description="菜单ID 列表")
|
||||
|
||||
|
||||
class RoleMenuRead(RoleMenuIn, ReadBase):
|
||||
pass
|
||||
|
||||
|
||||
class RoleBasic(BaseModel):
|
||||
@@ -16,9 +23,15 @@ class RoleIn(RoleBasic):
|
||||
pass
|
||||
|
||||
|
||||
class RoleRed(RoleBasic, ReadBase):
|
||||
class RoleRead(RoleBasic, ReadBase):
|
||||
pass
|
||||
|
||||
|
||||
class RoleInfo(RoleRed):
|
||||
class RoleInfo(RoleRead):
|
||||
pass
|
||||
|
||||
|
||||
class RoleQuery(QueryData):
|
||||
"""查询模型"""
|
||||
|
||||
name: str = Field("", description="角色名")
|
||||
|
@@ -1,14 +1,19 @@
|
||||
from typing import List, Optional
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from tortoise.contrib.pydantic import pydantic_model_creator
|
||||
|
||||
from models import UserRoleModel
|
||||
from schemas.common import QueryData
|
||||
from schemas.common import QueryData, ReadBase
|
||||
|
||||
UserRole = pydantic_model_creator(UserRoleModel, name="UserRole", exclude_readonly=True)
|
||||
|
||||
from schemas.common import ReadBase
|
||||
class UserRole(BaseModel):
|
||||
uid: int = Field(description="用户id")
|
||||
rid: int = Field(description="角色id")
|
||||
|
||||
|
||||
class UserRoleRead(UserRole, ReadBase):
|
||||
"""用户 角色 读取模型"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class UserBasic(BaseModel):
|
||||
@@ -24,18 +29,41 @@ class UserRead(UserBasic, ReadBase):
|
||||
pass
|
||||
|
||||
|
||||
class UserHasRole(BaseModel):
|
||||
"""用户拥有角色"""
|
||||
|
||||
id: int
|
||||
name: str
|
||||
status: int = Field(default=1, description="激活角色 5 正常 1 删除 9")
|
||||
|
||||
|
||||
class UserInfo(UserRead):
|
||||
active_rid: int = Field(..., description="用户当前激活角色")
|
||||
rids: List[int] = Field(..., description="用户拥有角色")
|
||||
"""用户信息模型"""
|
||||
|
||||
roles: list[UserHasRole] = Field(..., description="用户拥有角色")
|
||||
|
||||
|
||||
class RoleActive(BaseModel):
|
||||
rid: int = Field(description="角色id")
|
||||
status: int = Field(default=1, description="激活角色 5 正常 1 删除 9")
|
||||
|
||||
|
||||
class UserAdd(UserIn):
|
||||
rids: List[int] = Field(..., description="用户角色列表")
|
||||
"""新增用户模型"""
|
||||
|
||||
rids: list[RoleActive] = Field(..., description="选择角色列表")
|
||||
|
||||
|
||||
class UserQuery(QueryData):
|
||||
"""查询模型"""
|
||||
|
||||
username: Optional[str] = Field("", description="用户名")
|
||||
nickname: Optional[str] = Field("", description="姓名")
|
||||
|
||||
|
||||
UserList = List[UserRead]
|
||||
class UserPut(BaseModel):
|
||||
"""用户更新模型"""
|
||||
|
||||
nickname: str = Field(..., description="用户昵称")
|
||||
password: str = Field(..., description="密码")
|
||||
rids: list[RoleActive] = Field(..., description="选择角色列表")
|
||||
|
Reference in New Issue
Block a user