user-wsc/AppUser/Schemas/RoleSchema.py

62 lines
1.2 KiB
Python

from typing import List, Optional
from pydantic import BaseModel, constr
RoleIDRegex = constr(regex=r"^ROLE\d{2}$")
PtypeRegex = constr(regex="p")
class CreateRolePolicyReqBody(BaseModel):
module: str = "模块"
ptype: PtypeRegex
sub: str = "sub 角色"
obj: str = "obj 资源"
act: str = "act 操作"
class Config:
use_enum_values = True
class EditRolePolicyReqBody(BaseModel):
obj: Optional[str] = None
act: Optional[str] = None
def del_null_value(self):
_dict = self.dict()
for key in list(_dict.keys()):
if not _dict.get(key):
del _dict[key]
return _dict
class RoleAccessPolicyResBody(BaseModel):
ptype: PtypeRegex
sub: str = "sub 角色"
obj: str = "obj 资源"
act: str = "act 操作"
class Config:
use_enum_values = True
class RolePolicyResBody(BaseModel):
id: str
module: str = "模块"
ptype: PtypeRegex
sub: str = "sub 角色"
obj: str = "obj 资源"
act: str = "act 操作"
class Config:
use_enum_values = True
class CreateReqBody(BaseModel):
name: str
class RoleFullResBody(BaseModel):
id: str
name: str
raps: List[RolePolicyResBody]