Files
brewman/brewman/schemas/auth.py
T
tanshu 3cd7ff11f6 Added Alembic
Breaking: Changed a lot of column names
2020-05-10 20:36:19 +05:30

106 lines
1.8 KiB
Python

import uuid
from typing import List
from datetime import datetime
from pydantic import BaseModel
def to_camel(string: str) -> str:
first, *others = string.split('_')
return ''.join([first] + [word.capitalize() for word in others])
class Client(BaseModel):
id_: uuid.UUID
code: int
name: str
enabled: bool
otp: int
creation_date: datetime
class LoginHistory(BaseModel):
id_: uuid.UUID
user_id: uuid.UUID
client_id: uuid.UUID
date: datetime
class Config:
fields = {'id_': 'id'}
anystr_strip_whitespace = True
alias_generator = to_camel
class PermissionItem(BaseModel):
id_: uuid.UUID
name: str
enabled: bool
class Config:
fields = {'id_': 'id'}
class RoleIn(BaseModel):
name: str
permissions: List[PermissionItem]
class Config:
fields = {'id_': 'id'}
anystr_strip_whitespace = True
class Role(RoleIn):
id_: uuid.UUID
class RoleList(BaseModel):
id_: uuid.UUID
name: str
permissions: List[str]
class Config:
fields = {'id_': 'id'}
anystr_strip_whitespace = True
class RoleItem(BaseModel):
id_: uuid.UUID
name: str
enabled: bool
class Config:
fields = {'id_': 'id'}
class UserIn(BaseModel):
name: str
password: str
locked_out: bool
roles: List[RoleItem]
class Config:
fields = {'id_': 'id'}
anystr_strip_whitespace = True
alias_generator = to_camel
class User(UserIn):
id_: uuid.UUID
class UserList(BaseModel):
id_: uuid.UUID
name: str
roles: List[str]
class Config:
fields = {'id_': 'id'}
anystr_strip_whitespace = True
class UserToken(BaseModel):
id_: uuid.UUID
name: str
locked_out: bool = None
password: str
permissions: List[str]